SMF·THINKIFIC
Can a prompt replace Thinkific?
Online stores & courses — digital products, courses and memberships
Exhibit tracking slip
Verdict
A course player is a lesson list, a video embed and a progress table, and that much is a weekend. The scope creeps fast once you take it seriously: drip release by enrolment date, quizzes with a pass threshold that gates the next module, certificates with a verifiable number, and video hosting that does not let a paying student hand the file to a friend. Each is small; together they are a fortnight, and the tax position sits on top of all of it.
Exhibit A — The prompt
Received on31.07.2026Build a self-hosted course platform focused on delivery: curriculum, drip, quizzes, progress and certificates.
Structure: a course holds modules, a module holds lessons. A lesson is video, text, a downloadable file, or a quiz. Order is explicit and reorderable.
Enrolment and payment: Stripe hosted Checkout for a one-off purchase. Grant enrolment only in the webhook handler, after signature verification and an idempotency check. Revoke on refund or chargeback. Keep this half deliberately minimal.
Drip release, computed per student: each module carries an offset in days from the student's own enrolment date, or an absolute date for a cohort run. A locked module shows its unlock date rather than disappearing, because a student who cannot see what is coming assumes the course is broken.
Progress: mark a lesson complete on explicit click, and for video also when playback passes a configurable percentage. Store completion per student per lesson with a timestamp. Show a course-level progress bar and a resume-where-you-left-off action, which is the single feature students use most.
Quizzes: multiple choice and multiple select, with a pass threshold per quiz. A failed quiz can be retaken after a configurable delay. A module can require its quiz to be passed before the next unlocks. Store every attempt, not only the best one.
Certificates: on completion of all required lessons and quizzes, generate a PDF certificate with the student's name, the course, the completion date and a unique verification code. Serve a public verification page that confirms a code is valid and shows only the course name and date — never the student's email or any other personal data.
Video: store files in S3-compatible storage and serve them through signed, short-lived, single-use URLs. Do not attempt DRM; note in the README that signed URLs stop casual sharing and nothing more.
Operator views: student list with progress, per-lesson completion rates (which is how you find the lesson where everybody stops), quiz question difficulty, and CSV export.
Tax: do not calculate, collect or remit VAT. State that the operator is the seller of record and that courses sold to EU buyers carry a VAT obligation.
Out of scope: a community or discussion layer, affiliate tracking, live cohort sessions, mobile apps, and a public course marketplace.
Opening prefills the prompt — press enter to run it.
Exhibit B — What you lose
- B.1 VAT collected and remitted on sales into the EU and UK
- B.2 video hosting with signed playback and bandwidth included
- B.3 the community and discussion features around each cohort
- B.4 the app ecosystem — email tools, affiliates, upsells wired in already
Prior art
Exhibit C — Why people still pay: payments, tax, distribution, and operations
Because a course is a product people paid for, and if playback fails or a certificate does not arrive, that is a refund. Platforms sell the absence of those failures more than they sell features.
Questions
Can I move a Thinkific course across?
Content moves by hand: Thinkific has no full course export, so lessons, videos and quiz questions are copied one at a time. Student progress and completion history do not export at all, which means an in-flight cohort should finish where it is.
Where do I host the video?
Object storage plus signed URLs is the cheap answer and works well for courses of modest size. It gives you no adaptive bitrate, so a student on a poor connection gets buffering rather than a lower resolution — that is the visible difference from a platform with proper video infrastructure.
What does it cost to run?
A small VPS with PostgreSQL, plus storage and egress for video, which is the term that actually matters. A gigabyte of video watched a hundred times is a hundred gigabytes of egress; price that before assuming self-hosting is cheaper than the Basic plan.
What is the one thing that does not survive the rebuild?
Confidence on launch day. A hundred people buying at once exposes every rough edge in payment, playback and email, and Thinkific has already found those edges. A first self-hosted launch finds them in front of paying customers.
Related tools
Receipt