Teachable takes 7.5% of every sale on its cheapest plan. Thinkific caps video at 100–400 GB/month. Vimeo hard-stops at 2 TB. Meanwhile, the same course on Cloudflare R2 costs about $0.08 in a month when 100 students watch a 5 GB course — and delivery is free. This kit converts the mp4 files you already have into a branded course player with chapters, playlist, resume, and embed pages — running on infrastructure you own. One payment of ฿1,490 — then your hosting bill is cents, not a platform rent.
Get the kit — ฿1,490One zip, no npm install, no database, no vendor login. A zero-dependency Node generator turns two JSON files into a complete, self-contained course player site — your brand on every pixel.
The generator builds one self-contained index.html: playlist, clickable chapters, resume-where-you-left progress, keyboard shortcuts, next-lesson autoplay. Inline CSS/JS only — no frameworks, no analytics, nothing phoning home.
A ready script uploads your files with the right content-type and cache headers, and skips anything already uploaded — re-run it after every recording session. Real cost tables (verified 2026-09-19) included.
Write chapters as plain "0:00 Title" lines — the player turns them into clickable seek markers. Every lesson also gets a bare embed page you can iframe into blog posts and sales pages.
A small Cloudflare Worker serves your videos only through expiring HMAC-signed links — a shared link stops working on its expiry date. Plus a one-line CLI to issue links per buyer. Honest scope: it stops casual resharing, not screen recording.
Two honest gating models (static gated link, or per-buyer expiring links), price anchors against Teachable/Thinkific/Vimeo, and the exact list of things never to claim — so your copy stays true as you scale.
A single-creator commercial license: build and sell unlimited courses of your own. A short README takes you from unzip to a working demo player in about ten minutes.
Official prices, checked 2026-09-19 — re-check them before you quote them in your own launch copy.
| Option | What it costs you | The catch |
|---|---|---|
| Teachable | $29/mo (billed yearly) + 7.5% transaction fee on the cheapest plan | Every $100 course sale loses $7.50 — forever |
| Thinkific | $40–219/mo plans | Video bandwidth capped at 100–400 GB/month by tier |
| Vimeo | $12–65 per seat/mo | 2 TB/month delivery hard stop |
| Your R2 bucket (this kit) | $0.015/GB-month storage · delivery free · a 5 GB course ≈ $0.08/mo after the free tier | You run checkout and access yourself — the playbook shows the simple way |
Three steps from zip to a course player on your own domain.
Put each video's URL, title, and chapter lines into videos.json. The demo entries use public sample videos, so the player works before you upload anything.
Run the upload script once per recording session, then node generator/build_site.mjs. Out comes a single-file player plus one embed page per lesson — deterministic, rebuild any time.
Deploy the folder to any static host (Cloudflare Pages is free), gate the path your way, and keep 100% of every sale — the pricing playbook shows both gating models.
Expiring signed links stop casual resharing. A buyer who posts their link somewhere finds it dead on the expiry date, and edited links fail the signature check. That is the honest protection level of this kit.
It is not DRM. Nothing stops a determined viewer from recording their screen — no mp4-based system can. The kit also does no transcoding: R2 serves your mp4 as-is, so export web-ready files. If you need adaptive HLS, SETUP.md compares Cloudflare Stream and Bunny Stream with real prices — everything else in the kit still applies.
You bring the accounts. You need a Cloudflare account (R2 has a free tier) and your own checkout. The kit ships the video layer: player, chapters, embeds, upload, links — not a hosted service.
No monthly plan, no per-student fee, no transaction cut on your course sales.
≈ US$42
Secure checkout via Stripe · card payments · taxes calculated at checkout
A zip with a zero-dependency Node generator (course player + embed pages), the R2 upload script, the optional signed-link Worker and its CLI, cost tables, a customization guide, a pricing playbook, and a single-creator license. You need Node 18+, a Cloudflare account with R2 enabled (free tier covers a small course), and your own mp4 files that you have full rights to.
Cloudflare R2 official prices (checked 2026-09-19): $0.015 per GB-month of storage, Class B reads $0.36 per million, and egress — delivery to your viewers — is free. The free tier includes 10 GB-month storage and 10 million reads monthly. Worked example from the kit: 100 students fully watching a 5 GB course in a month ≈ $0.08. Cloudflare rounds usage up and prices can change — verify on the official R2 pricing page before you publish numbers of your own.
Honestly: it stops casual link-sharing, not downloads. The optional signed-link Worker makes links expire and rejects edited URLs, so a link pasted into a group chat dies on its expiry date. It is not DRM — a determined viewer can screen-record, and any mp4 system shares that limit. We would rather tell you this now than have you find out after buying.
Free embeds are fine until you sell a course: the player shows ads and recommended videos next to your paid content, YouTube is blocked entirely in some countries (and face age-restriction waves elsewhere), EU visitors get a consent wall from third-party tracking, and you cannot make a video private to buyers. This kit puts the same file on your own domain with none of those layers — you own the player around it.
If the kit doesn't fit how you work, email [email protected] within 14 days of purchase and we'll refund you in full — the zip is yours to keep or delete. One refund per purchase; we only ask for optional feedback.
฿1,490 one-time · ≈ US$42 · free updates v1.x · instant download
Get the Video Hosting Kit — ฿1,490