Skip to main content
Building a Fairer Online Course Platform: Why We Built Achene on Cloudflare

Building a Fairer Online Course Platform: Why We Built Achene on Cloudflare

How we built Achene, an online course platform for independent teachers, on Cloudflare Workers, R2 and Containers, with a custom FFmpeg video pipeline, free automatic transcription and pricing based on real costs.

Pete Stewart

The technology behind a teaching platform built for independent teachers, not shareholders.

Achene did not start with a grand plan to reinvent online education. It started much closer to home.

People close to me wanted to teach online. They had knowledge and experience worth sharing, but the cost of the available platforms made getting started harder than it needed to be. The more I looked at the options, the more I wondered why a teacher should have to pay so much, accept limits on their students, or move to a more expensive plan to unlock basic teaching tools.

I wanted to build something I would be happy to recommend to those friends and family members. That became Achene: an online course platform for independent teachers who want to create courses, host lessons, build a community and get paid directly by their students.

The principles are straightforward:

  • No commission on course sales.
  • No caps on students or courses.
  • No core features held back for higher-priced plans.
  • Plans based on resources that have a real cost to us: storage, email and live-class usage.

Those principles sound simple. Delivering them has taken a lot of engineering.

Why build another online course platform?

There are already plenty of ways to create and sell online courses. Teachable, Thinkific, Kajabi and Circle have all helped make online teaching more accessible, and they serve different audiences in different ways.

But smaller independent teachers hit a recurring problem: the price on the entry-level plan rarely tells the whole story. Transaction fees, student or contact limits, email allowances and features reserved for higher tiers all change the real cost of running a course business.

A low starting price is not the same as a low-cost way to teach.

A teacher can publish a course on an entry-level plan, then find that the email tools, automation or community features they need sit behind an upgrade. As their audience grows, a student limit turns success into a bigger software bill.

I don’t think useful teaching features should be luxury upgrades. A teacher starting with ten students deserves the same core tools as a teacher with a thousand. They’ll need different amounts of storage and send different volumes of email, but they shouldn’t pay extra for permission to teach properly.

That is the product principle. The engineering challenge is making the economics work.

Cloudflare has become a serious application platform

Cloudflare is best known for its CDN, DNS and security services. Its developer platform now goes much further, with building blocks for application compute, databases, object storage, stateful coordination, containers, AI inference and real-time media.

For a small team, that matters. We can build a sophisticated application on one coherent platform instead of assembling and operating a pile of separate infrastructure services.

Here is how Achene uses it:

  • Workers run the application code, close to users around the world.
  • D1 is the relational database.
  • R2 stores files and video.
  • Durable Objects handle the stateful, coordinated parts of the application.
  • Workflows run teachers’ automations: multi-step processes that can pause for days and pick up exactly where they left off.
  • Containers run conventional workloads that don’t fit in a Worker, such as video processing.
  • Workers AI powers transcription.
  • RealtimeKit powers live classrooms.

Email is handled by Resend and payments by Stripe. There is no prize for rebuilding a good specialist service just to say everything is in-house. The skill is choosing the right tool for each job.

It also means we can take on work ourselves where that gives teachers a better result or a better cost structure.

The hard way: building our own video pipeline

Video is one of the most important parts of a teaching platform, and one of the most expensive.

A course platform has to accept uploaded lesson videos, process them into formats that play well on any device, store them reliably and deliver them to students worldwide. It is tempting to hand all of that to a third-party video service. That can be a sensible choice, but it means accepting the provider’s pricing model, which usually charges for the viewing itself.

We built our own recorded-video pipeline instead.

Processing runs in Cloudflare Containers using FFmpeg. We spent a long time on the encoding settings, testing and tuning for speed, quality and compression. The aim wasn’t just a file that plays. It was a balance: good visual quality, sensible file sizes, and processing times that make uploading a whole batch of lessons practical.

That work happens once, up front. A video is uploaded, encoded into the formats and qualities we need, and stored in Cloudflare R2.

After that, the economics change. R2 does not charge for egress bandwidth, which is the fee most storage providers add every time data leaves their network. Storage and operations still cost money, and encoding uses compute, but we aren’t billed each time a student watches a lesson. That is why we can offer unlimited bandwidth for recorded lesson playback.

In other words, we spent engineering effort and some compute on processing video efficiently so that we never have to meter a student’s viewing. A teacher can build a video course without worrying that a popular lesson or a growing audience will produce a surprise bandwidth bill.

This is the philosophy behind Achene. We’ll solve a hard technical problem ourselves when the result is a simpler, fairer experience for the people using the platform.

Transcription without another paid add-on

We took the same approach to automatic video transcription.

Transcripts help with accessibility, and they let students search a lesson, skim it or revisit it later. But on many platforms transcription is a metered feature or a paid add-on.

Instead of outsourcing it to a separate provider, we built our own pipeline on Cloudflare Containers and Workers AI, using Whisper for speech recognition. It extracts the audio from an uploaded lesson and generates a transcript as part of the same media workflow. We’ve kept it efficient enough that we can include transcription without charging teachers per video.

A transcript isn’t an obscure extra. It’s part of making a teaching platform work for different learners, so the right question is what the feature actually costs to provide, not how much we could charge for it.

Automations built on Cloudflare Workflows

Automation is another feature that often sits behind a higher-priced plan. In Achene it’s on every plan, like everything else. Inside the platform we call them workflows, and they run on Cloudflare Workflows.

A teacher can set up simple rules that react to what students do:

  • Send a “well done” email when a student completes a lesson or a section.
  • Email a student who hasn’t been into a course for a couple of weeks, wait a few days, then send a follow-up if they still haven’t returned.
  • Trigger other actions when something happens in a course.

Cloudflare Workflows suits this well. Each automation is a series of steps that can pause for days or weeks and then carry on from where it stopped, and a step that fails is retried automatically. For teachers, that means CRM-style automation as part of the platform, not a separate tool to connect up. For us, it means the waiting and retrying is handled by the platform, so we don’t have to build and run our own scheduler.

Live classrooms are a different problem

Recorded playback and live teaching both involve video, but technically they are very different.

For recorded lessons we control the whole pipeline: upload, encoding, storage and playback. Live classrooms need real-time audio and video between participants, with low latency and all the complexity of interactive sessions.

For that we use Cloudflare RealtimeKit, and we’ve built the live-classroom experience in Achene around it instead of building real-time media infrastructure from scratch. We add the teaching features on top, such as interactive whiteboards and recording a session straight into the teacher’s own platform. A live lesson then feels like part of the teacher’s school, not a trip to a separate meeting service that leaves them managing recordings elsewhere.

Live video has a real usage cost, so we treat it differently from recorded playback. Every Achene plan includes an allowance of live-class minutes, which varies by plan. Current allowances are on the pricing page.

I think this distinction matters. We aren’t claiming every part of a video platform can be free to run. We pick the right approach for each workload:

  • Recorded video: a custom pipeline plus R2, which allows unlimited playback bandwidth.
  • Live classrooms: RealtimeKit, a service that would be a huge undertaking to reproduce, with included usage priced openly.

Build where it makes sense. Integrate where it makes sense. Be honest about what has a real cost.

Charge for resources, not permission

This brings us back to pricing.

Every plan includes the same core features: course creation, student management, community, email tools, video, transcription and the rest. Nothing is split into basic and premium feature sets.

Plans differ only by the resources that cost us something to provide: storage, email volume and live-class minutes. Students, courses and recorded-video bandwidth are unlimited.

We also take no platform commission. Students pay the teacher through the teacher’s own Stripe account. Stripe’s payment-processing fees still apply, but Achene doesn’t take an extra percentage of each sale. If a teacher sells more, the platform shouldn’t take a bigger cut for the privilege of their success.

The model is simple: pay for the capacity you use, not for permission to use the tools you need. Current plans are on the Achene pricing page.

The idea of an incorruptible business

There’s a wider reason for these choices, which I wrote about in Why I’m building Achene to be incorruptible.

Reading Eric Ries’s Incorruptible made me think about how a company’s incentives change as it grows. A business rarely becomes less fair because someone decides to make it worse. More often the pressure comes from targets, investors, growth expectations and the steady search for more revenue from existing customers.

A feature moves to a pricier plan. A limit appears. A fee is added. Each decision can be justified on its own, but over time the product drifts away from the people it was built for.

I want Achene to resist that drift, which means designing incentives and structure, not just writing down good intentions. The architecture is part of that. If we run the platform efficiently, we have more freedom to keep prices fair. If we avoid costs that don’t need to exist, we don’t have to recover them from teachers. And if our revenue comes from simple subscriptions rather than a cut of every sale, our interests line up with the people building teaching businesses on the platform.

Technology alone doesn’t make a company incorruptible. But engineering decisions can support a business model, and a business model can support a mission.

A small team can build ambitious things

I’ve been impressed by how much of the modern application stack Cloudflare now provides. It isn’t just a place to run lightweight functions. There are trade-offs and constraints, and plenty of engineering decisions to get right, but the range of what we can build on it is remarkable.

For Achene, that meant taking on some hard problems ourselves: a bespoke video encoding pipeline, efficient transcription, and an architecture that doesn’t charge teachers for every gigabyte their students watch. It also meant knowing when not to build, as with RealtimeKit for live classes, and Resend and Stripe for email and payments.

The friends and family I first built Achene for are now among its first users, and when I make a product or business decision, I still ask myself whether it would be good for them. Would this make it easier for them to get started? Would it grow with them as they find more students? Would they have everything a proper teaching platform should offer, from day one?

Those questions keep the work grounded in the people Achene is for: independent teachers with something worth teaching, who want to build their own courses, communities and businesses. The technology matters because it lets us give them a better deal.

That is why we built Achene on Cloudflare. Not because the technology is fashionable, but because it gives us the tools to build the kind of teaching platform that should exist.

If you’re looking for an online course platform for independent teachers, take a look at Achene and see what we’re building.

Get in touch

If you want to get in touch about a project, please send us an email.

Address
Tinkr Creative Dyfi Eco Parc Unit 1
Forestry Hub
Machynlleth
SY20 8AX
United Kingdom
Code Review and Audit

If you have a live project that isn't quite performing as expected, we offer remote code review and audit, and can then advise on performance optimisations.

Learn more

Mobile App Development

Cross-platform React Native apps for iOS and Android, built from one shared, accessible codebase.

Learn more

Website Performance Consultancy

Advice on tools, planning and performance budgets, from the early stages of a project through to established websites.

Learn more

Website Performance Optimisation

Many websites struggle with performance, so our tailored website performance optimisation is one of our most valued services.

Learn more

Website Development

Bilingual, accessible websites built mobile-first, with UX and performance at the core of every decision.

Learn more