Skip to content

A course marketplace where the instructor's side of the transaction is the product

A marketplace with two products in one codebase: the learner's catalog, cart and player, and the instructor's console for courses, bundles, associates and payouts.

March 2026 in the studio

Your courses and your associates' courses, read from the same ledger learners' orders write to

March 2026Thu 2 Apr 2026

Units sold · March

509

9 courses · 18 through a bundle

Gross · ex VAT

£25,015.00

Your courses and your associates'

Platform fee · 20%

£5,003.00

Computed on each entry

Owed to you · 7 Apr 2026

£14,850.85

Includes £955.65 associate commission

Units by day

509 in March 2026
SPRING10 from 16 Mar · 88 units at 10% off
1 Mar8 Mar16 Mar24 Mar31 Mar

Where March's gross went

£25,015.00
Platform fee · 20%Kept by Chalkyard£5,003.00
Commission to youFrom 3 associates' courses£955.65
Your courses' net4 courses£13,895.20
Associates' netPaid to them directly£5,161.15

Courses in March

Read from the ledger · 1–31 Mar 2026
CourseInstructorTermsUnitsGrossFeeCommissionNet
Loose Botanical WatercolourR. EstlinOwn course138£8,237.50£1,647.50—£6,590.00
Watercolour SkiesR. EstlinOwn course74£4,004.00£800.80—£3,203.20
Sketchbook HabitsR. EstlinOwn course61£2,096.50£419.30—£1,677.20
Ink & Wash BotanicalsR. EstlinOwn course44£3,031.00£606.20—£2,424.80
Colour TheoryT. Wren12% to you92£3,262.50£652.50£391.50£2,218.50
Mixing GreensT. Wren12% to you27£662.50£132.50£79.50£450.50
Brush Lettering BasicsP. Nandakumar15% to you36£1,416.00£283.20£212.40£920.40
Modern Calligraphy FlourishesP. Nandakumar15% to you17£835.00£167.00£125.25£542.75
Linocut Printing at HomeE. Marsh10% to you20£1,470.00£294.00£147.00£1,029.00
March totalYou + 3 associates509£25,015.00£5,003.00£955.65£19,056.35

How the work was scoped

Industry
Professional Services
Duration
26 weeks
Cooperation model
Dedicated team
Services
Platform engineeringMarketplace mechanicsLearning experience
Integrations
Stripe ConnectVideo hostingNextAuth providersTransactional emailSentry
Technologies
Next.jsTypeScriptRedux ToolkitTanStack TableNextAuthTailwind CSS
Team
1 Project lead3 Full-stack engineers1 Product designer1 QA engineer

Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.

The hard problem

A two-sided marketplace usually ships the buyer's side first and bolts the seller's on later, which is why so many of them have a beautiful catalog and an instructor experience that's a spreadsheet and an email address. Growth then stalls on supply, not demand.

The instructor experience was a spreadsheet and an email address. Payouts were computed monthly by hand against a sales export, which meant instructors couldn't see what they had earned until someone told them, and a disputed figure took days to answer. That's a bad experience and, more importantly, one that can't ship at four times the number of instructors.

One platform where the instructor console is a first-class surface: course authoring, bundles, an associates program with invites, and payouts reading the same ledger the learner's checkout writes to.

Introduction

The system we were asked to build

The course marketplace wanted instructors to onboard themselves instead of being recruited one at a time. We built both sides, the public marketplace and the instructor console, as one platform with one ledger underneath.

A course marketplace recruiting instructors one at a time, by phone, with each new one onboarded by a member of staff. That works to about eighty instructors and then stops. The engagement was commissioned because supply was the growth ceiling and everyone could see it: demand was ahead of catalog, and catalog was ahead of the team's capacity to add to it.

Platform & Product Engineering

The solution

How the pieces fit

  1. 01

    Built the learner catalog, cart, checkout and learning player as the public half

    The learner half (catalog, cart, checkout and the player) was built as a full product, never as the demo the console would later hang off.

  2. 02

    Built the instructor console (courses, bundles, associates, payouts) as the other half

    Building both halves in parallel was the structural decision of the engagement, and it's why the console shares its components instead of merely resembling them.

  3. 03

    Kept one ledger under both, so a sale and a payout are two views of one record

    One ledger was decided before either half was built, because two systems reconciled monthly is a person's job, not an architecture.

  4. 04

    Made instructor onboarding self-serve, with invites in place of recruitment

    Instructors arrive through an invite and an application reviewed against a stated bar, then publish without a call, with review applied per course instead of per person.

  5. 05

    Added forums, institutions and certificates once the two core sides were solid

    Forums, institutions and certificates came after both core sides were solid, because a marketplace with weak supply doesn't need a community feature.

Two products, one codebase

The public marketplace and the instructor console are both first-class. Neither is an admin afterthought.

The instructor console is built to the same standard as the learner-facing marketplace, not as an admin area behind a different door. Both share the component library, the auth model and the data layer, so a change to how a course is represented lands on both at once. Instructors are users of a product, not operators of a back office, and the retention numbers turned on that distinction.

What shipped
  • Instructor console and marketplace share components, auth and data
  • One representation of a course, used by both surfaces
  • Instructors treated as product users
ChalkyardSearch courses and instructorsTeach on ChalkyardHW

Browse / Craft

Craft courses
CraftLevelLengthPriceCertificate6 courses · Sort: Most popular

Beginner

Loose Botanical Watercolour

RE Rosa Estlin

8 lessons · 2h 40m

4.9 (412)

£75.00incl. VATIn a bundle

All levels

Colour Theory

TW Tomasz Wren

6 lessons · 1h 45m

4.8 (305)

£45.00incl. VATIn a bundle

Beginner

Brush Lettering Basics

PN Priya Nandakumar

7 lessons · 2h 15m

4.8 (173)

£48.00incl. VAT

Beginner

Linocut Printing at Home

EM Elin Marsh

8 lessons · 2h 55m

4.9 (57)

£90.00incl. VAT

Improver

Ink & Wash Botanicals

RE Rosa Estlin

9 lessons · 3h 10m

4.9 (121)

£84.00incl. VAT

Beginner

Sketchbook Habits

RE Rosa Estlin

6 lessons · 1h 30m

4.7 (198)

£42.00incl. VAT

Best-selling in March 2026

Across the marketplace · all categories
1

Loose Botanical Watercolour

R. Estlin

4.9

2

Colour Theory

T. Wren

4.8

3

Window-Light Portraits

I. Kane

4.8

4

Watercolour Skies

R. Estlin

4.8

5

Logo Design Fundamentals

M. Quist

4.7

6

Writing Short Memoir

N. Farrant

4.9

7

Sketchbook Habits

R. Estlin

4.7

On screen

The learner's half of the same product: the catalog filtered to craft, six courses priced with VAT and rated, above the month's seven best-selling titles across the marketplace.

Payout run · March 2026

The same ledger learners' orders wrote to, read from the instructors' side

Group: R. Estlin & associatesApprove run

PR-2026-03-ESTLIN

Ledger period 1–31 Mar · pays 7 Apr 2026

Units read

509

Instructors

4

To pay out

£20,012.00

Reconciles with sales · £0.00 differenceReady to pay · not yet paid

Gross sales · ex VAT

£25,015.00

=

Platform fee · 20%

£5,003.00

+

Associate commission

£955.65

+

Instructor net

£19,056.35

Owed = net + commission

£20,012.00

What each instructor is owed

Pays 7 Apr 2026
InstructorNetComm.Owed
RER. EstlinLead · 4 courses£13,895.20£955.65£14,850.85
TWT. Wren12% to R. Estlin · 2 courses£2,669.00—£2,669.00
PNP. Nandakumar15% to R. Estlin · 2 courses£1,463.15—£1,463.15
EME. Marsh10% to R. Estlin · 1 course£1,029.00—£1,029.00
Run total£19,056.35£955.65£20,012.00

Balances are derived: each figure is a sum of the month’s ledger entries. Nothing here was typed in, and every amount opens to the orders behind it.

Fee and net per course

509 units · 9 courses
CourseUnitsGrossFeeComm.Net
RELoose Botanical Watercolour138£8,237.50£1,647.50—£6,590.00
REWatercolour Skies74£4,004.00£800.80—£3,203.20
RESketchbook Habits61£2,096.50£419.30—£1,677.20
REInk & Wash Botanicals44£3,031.00£606.20—£2,424.80
TWColour Theory92£3,262.50£652.50£391.50£2,218.50
TWMixing Greens27£662.50£132.50£79.50£450.50
PNBrush Lettering Basics36£1,416.00£283.20£212.40£920.40
PNModern Calligraphy Flourishes17£835.00£167.00£125.25£542.75
EMLinocut Printing at Home20£1,470.00£294.00£147.00£1,029.00
Total509£25,015.00£5,003.00£955.65£19,056.35
Bundle units split per included course (18 each on Loose Botanical Watercolour and Colour Theory), never at a flat rate.
On screen

The payout run: the same ledger read from the other side, gross split into platform fee, associate commission and instructor net, with fee and net per course and what each of four instructors is owed.

One ledger

A learner's payment and an instructor's payout are two readings of the same record, with nothing to reconcile later.

A learner's payment and an instructor's payout are two readings of one ledger entry, so nothing waits for a month-end reconciliation. Revenue share, platform fee and associate commission are computed on the entry itself, so an instructor's balance is derived, never accumulated, and a refund reverses the specific entry, adjusting every downstream share without anyone recalculating anything.

What shipped
  • Payment and payout are two readings of one ledger entry
  • Shares computed on the entry; balances derived, never accumulated
  • A refund reverses the entry and every share with it

Self-serve supply

Instructors onboard themselves through an invite and an application.

Supply scales by instructors bringing themselves. An invite carries its inviter, an application is reviewed against a stated bar, and an approved instructor is publishing without a single call. Course authoring, pricing and publishing are self-serve, with review applied at the course, not the person, so the marketplace grows without the team growing with it.

What shipped
  • Invite plus application, with no individual recruitment call
  • Self-serve authoring, pricing and publishing
  • Review applied at the course, once, instead of repeatedly at the person
Instructor applications

Instructors arrive by invite or open application, reviewed against one stated bar

3 in review
InviteCarries its inviter
ApplicationAgainst a stated bar
ApprovedWithout a call
First courseAuthored and priced by them
PublishedReviewed at the course
No onboarding call

Applications

March · newest decisions first
ApplicantInvited byReceivedStatus
Hollis GrantGouache still lifeRER. Estlin14 MarApproved
Ada MensahPressed flower artTWT. Wren31 MarIn review
Kit LaurierBookbinding by handOpen application30 MarNeeds samples
Maren LuskPen and ink cityscapesEME. Marsh29 MarIn review
Sunniva HoltBotanical embroideryPNP. Nandakumar11 MarApproved
Rufus TannerCarving wooden spoonsOpen application28 MarIn review
Bea OkonjoNatural dyes from the kitchenRER. Estlin6 MarApproved
Joel FarrisPottery without a wheelOpen application4 MarDeclined
Lina VargaPunch needleTWT. Wren2 MarApproved
6 of 9 arrived through an existing instructor’s invite

Hollis Grant

Gouache still life · applied 14 Mar
RE

The invite carries its inviter

Invited by Rosa Estlin · 12 Mar 2026

INV-RE-0412 · offered as an associate on 12% commission terms

The stated bar · the same for every applicant

5 of 5 met
A sample lesson, filmed and captioned12 min · captions on
A course outline with outcomes per lesson5 lessons
Audio clear at normal volumeChecked
Work shown is the applicant's ownPortfolio linked
Teaches something the catalog lacksGouache: 0 courses

Approved 20 Mar by Dami Osei · publishing without a call

Studio opened 20 Mar

Review applied at the course, not again at the person

Gouache Still Life in Five ColoursHollis Grant · Submitted 30 MarCourse in review
Punch Needle CushionsLina Varga · Submitted 29 MarCourse in review
Natural Dyes from the KitchenBea Okonjo · Published 27 MarPublished
Embroidered BotanicalsSunniva Holt · Published 24 MarPublished
On screen

Instructor applications: each invite carrying its inviter, one applicant checked against the stated bar and approved without a call, and review then applied to courses, not to the person again.

ChalkyardSearch courses and instructorsTeach on ChalkyardHW

Craft / Watercolour · Beginner

Loose Botanical Watercolour

Paint flowers that look alive with fewer strokes, less water and no mud.

RE Rosa Estlin·4.9 (412 reviews)

8 lessons 2h 40m Certificate on completion

£75.00incl. VATPreview lesson 1Add to basket

Lessons

8 lessons · 2h 40m in total
1Paper, pans and two brushesFree preview14 min
2Water control on a scrap sheet18 min
3Wet-in-wet petals22 min
4Leaves with a single stroke25 min
5Layering without mud21 min
6Stems, veins and negative space19 min
7Composing a loose bouquet24 min
8A finished spray, start to end17 min
RE

Taught by

Rosa Estlin

Botanical painter in Bristol. Teaches with associates who bring their own courses to her studio.

TWPNEMWith T. Wren, P. Nandakumar, E. Marsh

View all courses

Pairs with Colour Theory

Botanical Painter's Pair
Loose Botanical WatercolourRosa Estlin · 8 lessons£75.00
Colour TheoryTomasz Wren · 6 lessons£45.00
£96.00£120.00Save £24.00
Add both courses

What learners said

412 reviews
4.9543

Imogen R.5.02 weeks ago

The water-control lesson alone was worth it. I finally stopped scrubbing the paper and my petals look loose instead of laboured.

Declan M.5.0March 2026

Clear, calm and exactly the right length per lesson. Took the bundle with Colour Theory and they reference each other nicely.

Sophie A.5.0February 2026

Lesson four's single-stroke leaves changed how I hold a brush. Notes on the player make rewatching the tricky bits easy.

Bundles and associates

On screen

A course page: eight lessons totalling 2h 40m, the bundle that pairs it with Colour Theory at one price, the instructor and her associates, and what learners said.

Instructors package courses and bring in associates, which is how supply compounds.

Bundles let an instructor package their own courses or courses across associates at a combined price, with the ledger splitting the revenue per included course instead of at a flat rate. Associates are modeled as a relationship with its own commission terms, so an instructor who brings in three others earns from that arrangement. That's what makes supply compound instead of growing one instructor at a time.

What shipped
  • Bundles priced together, revenue split per included course
  • Associate relationships carry their own commission terms
  • Supply compounds through instructors, not through hiring

Certificates and institutions

Completion produces something a learner can show, and institutions can hold seats for their own people.

Completion issues a verifiable certificate with its own URL, so a learner has something to put on a profile, more than a row in an account page. Institutions buy seats they assign and reassign themselves, with progress reporting across their cohort. That turned a consumer product into something a training budget can be spent on without a procurement conversation about individual licenses.

What shipped
  • Verifiable certificates with their own public URL
  • Institutions hold, assign and reassign seats themselves
  • Cohort progress reporting for the budget holder
ChalkyardSearch courses and instructorsTeach on ChalkyardOP
Lesson 4 of 8 · Leaves with a single stroke Captions on
11:42 / 25:00 3 notes1×
Leaves with a single stroke

Loose Botanical Watercolour · Rosa Estlin · 25 min

Mark completeNext lesson

Your notes

Timestamped · only you can see these
03:12Load the brush fully, then touch the rim once
07:45Press, pull, lift: the leaf is one gesture
11:30Leave a white vein by skipping the middle

Transcript

Follows the playhead
10:21Rinse, then take the green straight from the pan without thinning it.
10:48You want the brush loaded right up to the ferrule.
11:05Touch the tip down where the stem will meet the leaf.
11:30Now skip the middle. That white line is your vein.
11:42Press, pull, and lift in one movement. Don't go back in.
12:10If it bleeds a little, leave it. That softness is the look.
12:36Turn the paper rather than your wrist for the next one.
13:02Three leaves on this stem, each slightly smaller.
13:31Let that dry fully before we layer anything over it.

Your progress

3 of 8 complete
1. Paper, pans and two brushes14m
2. Water control on a scrap sheet18m
3. Wet-in-wet petals22m
4. Leaves with a single stroke25m
5. Layering without mud21m
6. Stems, veins and negative space19m
7. Composing a loose bouquet24m
8. A finished spray, start to end17m
Certificate at lesson 8 · verifiable at its own URL Seat assigned by Harbourside College
On screen

The learning player: lesson four of eight, the transcript tracking the playhead, the learner's own timestamped notes, and progress toward a certificate on a seat assigned by an institution.

Process

Phase by phase

  1. Phase 1: The Learner's Half

    Catalogue To Completion

    Built browse, course pages, cart and checkout, then the learning player and its content view, so the path from finding a course to finishing it is unbroken.

    • Catalogue
    • Cart & Checkout
    • Learning Player
  2. Phase 2: The Instructor's Half

    A Console, Not A Spreadsheet

    Built course authoring, bundle creation and the associates program as real product surfaces, because supply is what a marketplace actually runs out of.

    • Course Authoring
    • Bundles
    • Associates & Invites
  3. Phase 3: One Ledger

    A Sale And A Payout Are One Record

    Put a single ledger under both halves, so what the learner paid and what the instructor is owed are two readings of the same entry. No two systems reconciled monthly.

    • Shared Ledger
    • Payout Model
    • Reconciliation Views
  4. Phase 4: The Community Layer

    Forums, Institutions, Certificates

    Added the surfaces that keep a marketplace sticky once transactions work: discussion, institutional accounts, and certificates on completion.

    • Forums
    • Institution Accounts
    • Certificates
ChalkyardSearch courses and instructorsTeach on Chalkyard3HW

Your basket

3 courses
Loose Botanical WatercolourRosa Estlin · 8 lessons · 2h 40m£75.00−£7.50 with SPRING10
Colour TheoryTomasz Wren · 6 lessons · 1h 45m£45.00−£4.50 with SPRING10
Brush Lettering BasicsPriya Nandakumar · 7 lessons · 2h 15m£48.00−£4.80 with SPRING10
SPRING10Applied · 10% off each courseRemove

Earlier orders

Hana Whitlock
OrderDateItemsTotalStatus
CY-382152 Mar 2026Botanical Painter's Pair (bundle)£96.00Paid
CY-3550214 Feb 2026Sketchbook Habits£42.00Paid
CY-311489 Jan 2026Mixing Greens£30.00Refunded
CY-2773028 Nov 2025Watercolour Skies£66.00Paid
CY-240193 Nov 2025Linocut Printing at Home£90.00Paid
CY-2064412 Oct 2025Ink & Wash Botanicals£84.00Paid

Order summary

CY-40971
Loose Botanical Watercolour£75.00
Colour Theory£45.00
Brush Lettering Basics£48.00
Subtotal£168.00
SPRING10 · 10% off−£16.80
Total to pay£151.20

Includes VAT at 20%: £25.20

Visa ending 2208Hana Whitlock · expires 09/28Change
Pay £151.20

One order, one ledger entry: LE-2026-03-18427

After you pay

18 Mar 2026, 20:14
VAT receipt for £151.20 by email
All three courses in your library straight away
A certificate as you finish each one
Every order kept in your account
On screen

Checkout: three courses, the SPRING10 discount and VAT resolved to a single figure, the ledger entry the order writes, and the learner's earlier orders beside it.

What it carries now

Self-serve

Instructor onboarding

1

Ledgers under the platform

12+

Surfaces in the console

−76%

Time to publish a course

Self-serve onboarding is a state, not a measurement. One ledger is architectural. Surfaces in the console is a count. Time to publish a course compares instructors onboarded after launch, from account creation to first published course, against the staff-mediated process before it.

Client name withheld under NDA. Figures are approximate, drawn from the engagement’s own reporting.

What the architecture settled

  1. 01

    A two-sided marketplace that ships one side first stalls on supply, not demand.

    Shipping the buyer's side first is the standard order, and it produces a beautiful catalog with nothing new in it. The ceiling is always supply.

  2. 02

    If a sale and a payout live in two systems, someone spends every month reconciling them.

    Two systems means someone reconciles them every month, and that person becomes the answer to every disputed figure, which doesn't scale past a few hundred instructors.

  3. 03

    Self-serve onboarding is the difference between supply that grows linearly and supply that compounds.

    Self-serve is what turns supply from a hiring problem into a compounding one, because instructors bring associates and associates bring courses.

  4. 04

    The instructor console isn't admin. On a marketplace it's half the product.

    Treating the console as admin is what produces the spreadsheet-and-email experience. On a marketplace it's half the product and deserves the same standard.

How the work was run

We built the instructor console in parallel with the learner marketplace, not after it, which is the decision the whole engagement turned on: supply stopped being the constraint the month it shipped. Forums, institutions and certificates followed once both halves were transacting reliably.

A dedicated team for twenty-six weeks, building both sides in parallel instead of shipping the learner half first. That was the structural decision the whole engagement turned on: the console shares the component library, the auth model and the data layer with the marketplace, so a change to how a course is represented lands on both at once, with nothing to port.

One checkout, one record

A sale and a payout are one record, read from two sides.

A learner buys three courses with a spring coupon. The same ledger entry is the order she sees, the shares three instructors are owed and, if one course is refunded, the reversal of exactly that line. Switch tabs, or use the arrow keys once one is focused.

One record: LE-2026-03-18427

Three courses, one coupon, VAT included, one figure to pay. Placing the order writes a single ledger entry with a line per course, and nothing else is written anywhere.

Basket · CY-40971

  • Loose Botanical WatercolourRosa Estlin£75.00£67.50
  • Colour TheoryTomasz Wren£45.00£40.50
  • Brush Lettering BasicsPriya Nandakumar£48.00£43.20

What the learner sees

Subtotal
£168.00
SPRING10 · 10% off
−£16.80
Total
£151.20
Includes VAT
£25.20

Writes LE-2026-03-18427 · 18 Mar 2026, 20:14

Amounts in pounds sterling. The 20% platform fee and associate terms are illustrative; the refund is an example, not an event from the engagement.

Architecture

From a learner’s payment to an instructor’s payout, through one record

The single ledger was decided before either half was built, because two systems reconciled monthly is a person’s job, not an architecture. Everything downstream is a reading of what checkout wrote.

  1. 01 · Trigger
    Learner checkoutCatalog, cart and checkout built as a full product: a paid order is what starts money moving.
  2. 02 · Write
    One ledger entryThe order writes a single entry under both halves. A bundle's revenue is split per included course, never at a flat rate.
  3. 03 · Engine
    Shares on the entryRevenue share, platform fee and associate commission are computed on the entry itself, each associate relationship with its own terms.
  4. 04 · State
    Derived balancesAn instructor's balance is derived from entries, never accumulated. A refund reverses the specific entry and every share on it.
  5. 05 · Delivery
    Two readings, one codebaseThe marketplace and the instructor console share components, auth and the data layer, so both halves read the same record.

When the money has to be right

Payout accuracy & reconciliation

Nothing to reconcile, because there is one record

What the learner paid and what the instructor is owed are two readings of the same ledger entry, so there's no month-end reconciliation. A payout can't drift from the sales it came from.

Balances are derived, never keyed in

Fee, revenue share and associate commission are computed on each entry, and a balance is derived from entries, never accumulated. Instructors see what they've earned without waiting for someone to tell them.

A refund reverses its own entry

Refunding a course reverses that specific entry, so every downstream share adjusts with it: the instructor's net, the associate commission and the fee. Nobody recalculates anything.

Running a marketplace where sellers wait to be told what they’ve earned? Scope your build in 3 minutes.

Scope your build
Have a project?

Let's talk

Running a large platform, shaping a first MVP, or getting a product ready for a funding round? Tell us where you are. We'll shape the process around it, and stay with you after launch.