A store for one course and a few downloads is a Stripe Checkout button, a webhook that unlocks files and a lesson player, and an agent builds that in a weekend. Podia is more than that: a site builder, email marketing, a community, affiliates, and sales tax calculated in 230 countries. Tax is a legal duty rather than a feature, since a DIY store has to add Stripe Tax or a merchant of record and you still register and file. A growing audience watching video also needs object storage and a CDN rather than a small VPS.
Before you buildPodia has no free plan, but its 14-day trial has full access and needs no card. If you only sell a few downloads, a pay-per-sale marketplace may cost less than $49 a month, so compare before you build.
Build me a personal store to replace Podia for selling one course and a few downloads. Requirements: - Node.js 22 + TypeScript: a Fastify server with server-rendered pages (Eta) and a little vanilla JS. `npm start` serves http://localhost:4900: the shop at /, the buyer library at /library, the admin at /admin. - Storage: better-sqlite3 in ./data/shop.db for products (download or course), lessons (title, position, video file or text), customers, purchases and lesson progress. Uploaded files live in ./data/files, outside any public folder. - Payments: Stripe Checkout (`stripe`) with STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET in .env. Grant access only from the verified `checkout.session.completed` webhook, idempotent on the session id. Start in test mode and say so at the top of the admin page. - Delivery: after a purchase, email a magic login link (nodemailer, SMTP in .env). Downloads and videos are served through HMAC-signed links that expire after 10 minutes; video supports HTTP range requests. - Course player: lessons in order, a mark-complete button, a progress bar and a link to continue where the buyer stopped. - Admin behind one password in .env (signed cookie): create products, upload files and lessons, see sales and buyers, export buyers as CSV and revoke one buyer's access. - Tax: turn on Stripe's automatic tax when STRIPE_TAX=1, and have the README state that registering and filing VAT or sales tax stays my job. - Single seller. No accounts beyond buyers' email links, no telemetry, local-first. Outbound calls: Stripe and SMTP only. - Out of scope: community, newsletters and automations, affiliates, upsells, coupons, drip schedules, quizzes and certificates. - README: `stripe listen` for local webhooks, exposing the shop through a tunnel or a VPS with HTTPS, and a note that refunds are issued in the Stripe dashboard.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Podia.
Add a Podia importer to the store in this folder. Requirements: - A command `shop import-podia --contacts contacts.csv --sales sales.csv` for the audience export and the sales or invoices export from Podia. - Print the columns found and a mapping file for product names to my products; stop if any name is unmapped. - Create customers by email and grant access for every sales row that maps to a product, keeping the original purchase date; skip refunded rows. - Warn that the per-product customer export leaves out expired customers, and that tags are not in the contacts file. - Safe to run twice. Update the README.
Add subscriptions to the store in this folder. Requirements: - A product type "membership" with a Stripe recurring price and a members-only set of lessons and downloads. - Handle `invoice.paid`, `invoice.payment_failed` and `customer.subscription.deleted` webhooks (verified, idempotent); access runs until the end of the paid period. - A "manage billing" link in the library that opens Stripe's customer portal. - Show active, past-due and cancelled members in the admin. - Update the README with the webhook events to enable.
Add drip scheduling to the store in this folder. Requirements: - Each lesson gets "available N days after purchase" (0 means immediately). - The library and the player show locked lessons with their unlock date and refuse signed video links for them. - A daily job emails buyers when a new lesson unlocks, with an unsubscribe link. - The admin previews what a buyer sees on day 0, 7 and 30. - Update the README.
Add promotion codes to the store in this folder. Requirements: - Create codes in the admin as Stripe promotion codes through the API: percent or fixed amount, an expiry date and a redemption limit, optionally for one product. - Checkout shows the code box; the admin lists each code with redemptions and revenue. - Deactivating a code also deactivates it in Stripe. - Update the README.
A creator wants checkout, tax, video, an email list and a members area to work on launch day under one login. Podia sells that peace of mind, and a failed launch costs more than a month of the plan.
Estimate · A small VPS or Node host, SMTP on a free tier and some video storage. Stripe's per-sale fees apply here as they do on Podia, and a tax tool or merchant of record is extra. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Mover | $49 | $42 | 50 products, 500 videos, 25 community spaces, unlimited customers, 100 email subscribers, migration help for up to 50 products. |
| Shaker | $98 | $84 | 150 products, 1,000 videos, 100 community spaces, 500 email subscribers, no Podia transaction fee, affiliates, upsells, PayPal, Zapier and one Podia Agent assistant. |
| Earthquaker | $178 | $150 | Unlimited products, videos and community spaces, 1,000 email subscribers, unlimited Podia Agent assistants, migration help for up to 150 products. |
No free plan: a 14-day trial gives full access without a card.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Community spaces, a blog and a site builder in the same login, Built-in email marketing with automations and deliverability handled for you.
About $49 a month on the Mover plan, $588 a year (checked 2026-10-19).
Community spaces, a blog and a site builder in the same login; Built-in email marketing with automations and deliverability handled for you; Affiliate programs, upsells and PayPal checkout; Sales tax and VAT calculation across 230 countries; Podia's migration help and email and chat support. If any of those matter to you, keep paying.
Yes: CourseLit (open source), Frappe LMS (open source), LearnHouse (open source).