SaaS · EdTech

A full learning platform, from the database to the app icon

The school depended on a rented platform. I built its own product: lessons, AI practice tools, progress, gamification and payments, on infrastructure it controls.

Animated recreation

The problem

The content lived on a third-party platform with no AI, no progress data and no control over the experience. Every new idea depended on someone else's roadmap.

What I built

  • 68 recorded lessons with progress tracking and a quiz for each one.
  • 10 interactive tools (sentence building, cloze, find and fix, word search, pronunciation and more) fed by an n8n content engine.
  • Adaptive level engine: a composite readiness score over 14 days and a 12-question placement test across 4 CEFR bands.
  • 171 badges unlocked on the server, daily streaks, points and a 30-day study plan per student.
  • Stripe in live mode with 29 price IDs and an idempotent webhook. Own JWT auth with httpOnly cookies.
  • Runs in 5 contexts: desktop, Android Chrome, iPhone Safari, the installed iPhone app and inside a partner iframe.
  • Voice layer: the teacher's voice cloned with ElevenLabs for feedback and for an AI teacher you can talk to, plus a voice studio I built to record 2,714 unique lines with her real voice.

Architecture

  1. 01

    Next.js app

    React, TypeScript, installable PWA

  2. 02

    API routes

    22 endpoints, own JWT auth

  3. 03

    Supabase self-hosted

    Postgres with RLS, Storage, on my VPS

  4. 04

    n8n engine

    Exercises, feedback, audio

  5. 05

    Stripe

    Live billing, idempotent webhook

Results

lessons, each with its own quiz
68lessons, each with its own quiz
interactive practice tools
10interactive practice tools
database tables, all with RLS
37database tables, all with RLS
paying students in the closed beta
16 to 20paying students in the closed beta

Stack

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind
  • Supabase (self-hosted)
  • Stripe
  • OpenAI
  • Gemini
  • ElevenLabs
  • Vercel

My role

Product, architecture and code are mine: around 180 TypeScript files and 15,000 to 18,000 lines, database design, auth, billing, deployment and the VPS. I use AI-assisted development: I direct coding agents in parallel and review every change before it ships.

Why there is no public access

This is a paid product with real students. Their progress, answers and voice recordings are personal data protected under GDPR and LGPD, so the app sits behind a login. The animation above recreates the real screens with fictional data.

I can show it running live on a call.

I open the real system, with personal data protected, and answer anything you want to know about how it is built.

mirandamauro93@gmail.com

Next projectAI learning content engine