Live in production · 2026

Online course platform

A complete system for selling online courses, which I built from scratch in about six weeks, working with AI coding agents. The customer goes from an ad through a quiz and a basket to payment, the invoice issues itself, and lesson access follows immediately. The owner handles courses, prices, offers, coupons and refunds in a panel.

How the platform works: ad, quiz, basket, payment and course access, with invoices, emails, ad events and the panel alongside.

The brief

The goal was to sell courses without a course platform’s subscription or revenue cut (ordinary payment fees remain), on a purchase path of its own: ad, quiz, a full-package offer, a basket with an add-on, payment, invoice and instant course access.

Most traffic comes from ads on phones, inside the in-app browsers of Facebook and Instagram. The site has to behave there as in a normal browser, and a customer must not lose quiz progress or the basket.

What I built

The diagram, step by step

The five steps of the diagram: what the customer sees and what the system does in the meantime.

  1. Ad or linkThe sales page opens at once because its content is built into the site, and the system fetches the current offer and prices in the background. The terms and privacy policy open in a panel on the same page, so in the Facebook and Instagram in-app browsers the customer stays in the purchase, and “back” simply closes the panel.
  2. Quiz and resultSix questions with four answers each, a progress bar and a way back to the previous question. Once the customer enters an email, the system saves the answers and shows one of three profiles: its description and an exercise for today matched to that profile. The result and the exercise also arrive by email, with a link that opens the result on another device too.
  3. Offer and basketAfter a click below the result, the customer first sees the full package with its price and a link comparing all three packages. With the cheaper packages, the add-on is a single tick box in the basket. Anyone who buys a cheaper package is offered an upgrade to the full one after payment for just the difference, and the system shows that offer only when the amount matches to the penny, so it never charges a wrong sum.
  4. PaymentThe customer accepts the terms, and the consent is stored with the order, together with the date, time and version of the terms. They pay by BLIK, card, Apple Pay or Google Pay on Stripe’s secure page, which asks for an address and an optional VAT number. The system recalculates the total itself and never charges more than the customer saw: if the price has gone up in the meantime, it stops the payment and asks them to confirm again.
  5. Instant accessOnce payment is confirmed, the customer immediately has access to every course in the order and receives a welcome email. A new customer finds a link in it to set a password. Videos pick up where the customer left off, and a lesson counts as done once playback reaches 90% of the recording, or with one button. The customer downloads materials through a link valid for 10 minutes.

What runs in the background

The four items along the bottom of the diagram, which work alongside the main purchase path.

When something goes wrong

I built a separate safeguard for each of these situations: the system resolves it by itself or flags it to the owner in the panel, instead of losing the order.

In numbers

Technology

I do not name the courses or the brand the platform sells under. Instead of screenshots I show how it works, because the screens hold real customers’ data.

Selling courses
or services online?

Describe what you sell and how buying works today. I will reply with which part of a path like this would help you most and what it costs.

Jonasz Jankowski · Direct collaboration · Mikołów (Silesia), remote across Poland

WHAT HAPPENS NEXT
  1. I reply myself within one working day.
  2. A short call about the goal, features, materials and integrations.
  3. You get the scope in stages and a fixed amount before any work starts.

Fields marked optional can be skipped. Every message gets a reply.

At least 20 characters. The seed of an idea is enough.0/5000

You'll receive a confirmation with a copy of your message at the e-mail you provide. I reply within one business day. We can continue the conversation in that same thread.