Back to Work

Mori – A Modular Platform for Creators

A multi-tenant platform where creators sell courses and digital products on their own domain. A creator dashboard, a student space, and a public storefront on one module kernel, with Stripe Connect settling every sale directly into the creator's own account.

BunHonoReact 19PostgreSQLStripe ConnectDrizzle ORM

Live Project

View site →

Year

2026

Role

Design & Development

🖼️

Hero image – Add screenshot or mockup

01

Problem Statement

  • A rented storefront: courses live at the platform's address under the platform's branding, so the audience a creator builds never quite belongs to them.
  • Someone else's customer relationship: the platform holds the payment account, the customer list, and the records, so leaving means starting over from nothing.
  • Money on someone else's schedule: sales settle into a platform balance behind thresholds and transfer windows instead of reaching the creator's own account when the sale happens.
  • Closed by design: platforms ship a fixed feature set, so anything they did not anticipate means duct tape across three more subscriptions.
🖼️

Research & exploration visuals

02

Goals & Objectives

  • Build everything as a module on one contract, so first-party features and future third-party plugins are the same kind of thing.
  • Give creators, students, and buyers each a real product rather than three views of the same admin panel.
  • Route every payment through Stripe Connect direct charges into the creator's own account, never a platform balance.
  • Isolate every tenant per request from the hostname, host in the EU, and make GDPR export and deletion product features rather than a support ticket.
🖼️

Solution screenshots or diagrams

03

The Solution

  • A kernel with a module registry, a tenant-aware event bus, capability permissions, and a two-layer lifecycle, carrying twelve first-party modules.
  • Three front ends on one backend: a creator dashboard, a student space with an authenticated HLS course player, and a storefront renderer driven by a block-based page editor.
  • Stripe Connect checkout that grants entitlements, and entitlement events that unlock access and sync Discord roles without any module calling another.
  • A per-tenant theme system and full English and French localisation across every surface.
🖼️

Architecture diagram or system overview

04

Results

Mori is live and in open beta at usemori.app, in English and French. Creators run their whole business behind one login: build a course, upload and process video, price offers and bundles, publish a storefront on their own domain, and follow members and sales in one place. Students get a real learning space with a course player and progress tracking instead of a folder of files. Every sale settles into the creator's own Stripe account, and a purchase unlocks access and Discord roles within seconds. Adding a capability to the platform means writing a new module.

Hi there, I'm an AI assistant.

Ask me anything about Nicolas Laforet.