One-time Stripe, not subscriptions
Products run through Stripe Checkout in payment mode, not recurring billing. Each price lives in app/products.php; buyers pay once and own it. No plans, no renewals, no dunning to babysit.
Digital product starter
One-time Stripe payments, downloads gated by purchase ownership, and a buyer library in a left-sidebar member app — passwordless auth and a dedicated admin app already wired, on plain PHP and SQLite.
No subscription, no seats, no expiry. One Stripe charge unlocks the file on the account — and it stays unlocked, through every future update.
One-time Stripe payments for ZIPs, themes, templates, datasets — paid files served from outside the web root, never a public URL, every download logged.
Products run through Stripe Checkout in payment mode, not recurring billing. Each price lives in app/products.php; buyers pay once and own it. No plans, no renewals, no dunning to babysit.
Paid files sit in PROTECTED_DOWNLOADS_DIR, never under the web root, so there is no guessable link to scrape. PHP streams the bytes only after checking the buyer has a paid purchases row.
Stripe collects the email at checkout. The webhook creates the purchase and emails a sign-in link — buyers pay first and land in their library, no account up front.
Paid files live outside the web root and are streamed by PHP only to the signed-in buyer who owns the purchase. No public URLs, no shareable bearer links — every fetch is checked and logged.
Purchases stay pinned to the account, so buyers re-download the version they bought any time from the /downloads page in their member sidebar app — access gated by who owns the purchase. The webhook backfills the row if the Stripe redirect is missed.
Manage product files in the Products section of the admin app — its own left-sidebar console, DB-backed, swap the ZIP without a deploy. Shipped a new version? One button emails everyone who bought that product that it is ready. Two-click armed confirm so you don't blast the list by accident.
Paid files never sit under the web root, every fetch is checked against a paid purchase, and every fetch lands in an audit row you can quote back at a chargeback.
| Where files live | Outside public/ — never the web root |
|---|---|
| Delivery | PHP byte-stream, correct filename, no shareable link |
| Access gate | The signed-in buyer who owns the purchase |
| Audit trail | One download_events row per fetch |
One-time Stripe Checkout in, a protected byte-stream out — and a row you can quote at a chargeback in between.
You're in one now. Hop straight to any other site type — same tab, still a demo: no card needed, no payment is real, and nothing you do is saved.
Each site-type demo is one of the seven ready-to-run profiles in the download — copy the folder, add your keys, ship.
Most SaaS dies of complexity, not competition.
| daily_hits | 100,000+ |
| cost / 10k logins | $1 |
| whole_stack / month | < $10 |
| reads_block_writes | never · WAL mode |
copy a template folder
composer install · Stripe + SES
rebrand · plans · run doctor
NGINX + PHP-FPM · take cards
unzip → live on a VPS — one afternoon.
Try all 7 live demos first — no card, nothing saved.
Checkout is handled by Stripe with no account needed up front. The moment payment clears, a sign-in link is emailed to the buyer and the download is waiting in their dashboard.
Yes — purchases stay in their account for lifetime re-download, and files are served from outside the web root behind a paid-access check.
Yes — the admin Products tab emails everyone who bought a product that a new version is available.
Yes — parameterised SQL throughout, signed Stripe webhooks, CSRF, rate limiting and session hardening, all security-reviewed. Real plumbing, not a toy.
One small VPS runs the whole stack for a few dollars a month, and passwordless login emails on Amazon SES are about $1 per 10,000 sign-ins. Prefer Apple or Google sign-in? Both are built in with no per-login cost — Google's is free, and Apple's only needs an Apple Developer account ($99/yr) you likely already have to ship an app — so you can skip login emails entirely. No per-seat platform bills.
This is a live, fully interactive demo — explore every screen. Nothing you do is saved and no payments are real.