Back to work

Acorn Hand Therapy

A course platform of its own for hand therapists: a protected video library, free sample lessons and payment by membership or per video, on its own domain.

Acorn Hand Therapy

The challenge

A certified hand therapist teaches splint and orthosis fabrication. The material already existed: hours of video filmed up close from several angles, put together on a design site. What did not exist was a way to sell it. Anyone with the link could watch everything, there were no payments and no way to know who was learning what.

The audience is students and therapists starting out, not patients. And there was one condition from day one: running the platform had to cost close to nothing per month, without paying a subscription or a cut to a course platform.

What we built

A library only paying students can watch. The videos live in private storage and only leave through the server, which checks on every request what that person is allowed to see. No video has a public address.

Free lessons to try it out. They play without an account. And each lesson decides, from the dashboard, which kind of purchase unlocks it.

Two ways to pay. A membership that renews every six months and can be cancelled from the account itself, or a 72 hour pass for a single lesson that expires on its own and never renews. Payment runs through a live payment gateway, and once it clears a branded email goes out.

A player of its own. No browser controls, so no download button. It tracks each student's progress, and a lesson only counts as complete once 90% of it has actually been watched, not by dragging the bar to the end.

A dashboard for the owner. Upload videos, order lessons, see purchases and progress, and edit the homepage copy and the prices with drafts, preview and history. Without asking a developer for anything.

Ready for search engines, and for AI. Library and lessons are indexable, with structured data for the course and each video, and open to AI crawlers.

Why access is enforced on the server

The quick way out is to hide the play button from anyone who has not paid. It looks right, but the video is still there: any video downloader extension finds it on the page.

So the server that delivers the file makes the call, not the page that shows it. To someone who has not bought yet, the server only hands over the start of the video, just enough for the preview. The rest of the file never leaves, so there is no way to turn the preview into a full download.

That was checked the way a user would: with a download extension installed and a real customer account. The first version let it download five videos it should not have. It was fixed and measured again.

Why its own platform and not a course platform

A course platform is up and running on day one, but it charges every month and keeps a share of every sale, and the course lives on someone else's domain under someone else's brand.

This one runs on Cloudflare's network. Month to month it costs next to nothing, and each sale only pays the payment gateway's fee. The platform, the domain, the students and the data are theirs.