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
- 01
Next.js app
React, TypeScript, installable PWA
- 02
API routes
22 endpoints, own JWT auth
- 03
Supabase self-hosted
Postgres with RLS, Storage, on my VPS
- 04
n8n engine
Exercises, feedback, audio
- 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