iamwithtrees
A solo-built microservices SaaS platform — one identity unlocks many services: a full online-exam LMS, a real-time notification backbone, and an ML content-moderation engine.
The problem
Most 'all-in-one' platforms are one giant app that gets slower and harder to change with every feature. I wanted the opposite: a platform where a user has one identity and the product grows by adding independent services — education today, marketplace/social/payments tomorrow — each with its own database and deploy, none able to take the others down. And I wanted to build it the way a real company would (microservices, inter-service messaging, real-time infra, ML, mobile) — but solo, and cheap enough to run on a single VPS.
What I built
A microservices platform with a shared identity core and independent domain services: an account service (identity, auth, profiles, roles, admin), a study service (full exam LMS), a notification service (Socket.IO + push + email), and ModeraStack (multi-tenant ML moderation) — plus a Next.js web app and two Expo mobile apps (student + teacher). Every service is the same Express + TypeScript + Prisma stack with a per-service Postgres DB and a role-scoped API convention.
Engineering highlights
Microservices that stay in sync without shared databases
Services communicate over Redis Streams with consumer groups, so events are delivered persistently with no message loss even if a consumer is down. Each service keeps a local replica of the users it cares about, synced from the account service's USER_SYNC events — so services never reach into each other's database.
An exam engine with 24 real-world scoring systems
The LMS computes results the way 24 different real exams do — IELTS bands, SAT scaled scores, JEE percentile, NEET ranking — with sectional breakdowns and pass/fail logic, wrapped in a timed exam hall with auto-submit, recovery, and anti-cheat.
A real-time backbone built to scale horizontally
Notifications run on Socket.IO with the Redis adapter so connections spread across processes/instances; push goes through Expo Push (no Firebase, no cost); email is processed async through BullMQ with a dead-letter queue — designed to grow into WebRTC calling and live streaming.
ModeraStack — a two-level ML moderation pipeline on a budget
All user content flows through one /check API: L1 is a synchronous in-process engine (normalization, Aho-Corasick blocklists, magic-byte + perceptual-hash media checks) answering in milliseconds; L2 is an async Python ML worker (15+ transformer models + faster-whisper) handling text, images, URLs, files, video, and PDFs, returning one signed webhook verdict — multi-tenant from day one and tuned for a 4-core CPU VPS.
A growth engine baked into the architecture
The public exam section (no login, 99 exam types) is a deliberate SEO acquisition channel of free practice tests that rank for high-volume keywords, plus gamified virality (shareable score cards, challenge-a-friend deep links, streaks, leaderboards) — the product and the go-to-market were designed together.
Results
- ✓A working multi-service platform: shared identity, a full exam LMS, a real-time notification backbone, and an ML moderation engine — plus a Next.js web app and two Expo mobile apps.
- ✓Genuinely microservice-grade infrastructure (per-service DBs, Redis Streams messaging, horizontally scalable real-time, containerized ML) that still deploys to a single VPS.
- ✓A product designed to grow by adding services, with a documented roadmap and go-to-market — all architected and built solo.
Full tech stack
This is a personal project — the source lives in a private repository, so it isn't publicly available. A live screen-share demo and code walkthrough are available on request for hiring managers.