← Back to work
🔒 Personal · Private repoSolo Founder & Engineer · Personal Project · 2026

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

1

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.

2

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.

3

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.

4

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.

5

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

TypeScript (services + web + mobile)Python (ML worker)ExpressPrismaPostgreSQL (database-per-service)Redis (sessions, cache, rate-limit, locks, pub/sub, Streams)BullMQSocket.IO (Redis adapter)15+ transformer modelsfaster-whisperffmpegClamAVMinIONext.js (App Router)React Native/Expo ×2NginxPM2Docker ComposeCloudflaresingle-VPS deployable

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.