SHT-02 · Independent SaaS · 2026
Semblia
A testimonial platform for small teams — built alone, from database schema to sign-up form.
The surface
Semblia collects and shows customer testimonials: hosted collection forms, moderation, embeddable walls and widgets, analytics. The pitch is simple. The engineering isn't — it's multi-tenant SaaS, so every table, query and queue has to answer one question before anything else: whose data is this?
It runs as a TypeScript monorepo with five runtimes — product, admin, API, background worker, and hosted forms — all reading the same Prisma models and the same OpenAPI contracts. When the schema changes, everything learns about it at compile time, not in production.
Why it exists
I wanted a project where I couldn't hand the hard part to someone else. Billing, background jobs, tenant isolation, contracts — if any of it breaks, it's mine to fix. That's the point.
The system
- Five runtimes, one contract — product, admin, API, worker and forms share Prisma models and OpenAPI definitions from a single package.
- Tenant isolation decided at the schema, not filtered in application code and hoped for.
- Queue-backed workers for everything that must outlive a request — exports, notifications, webhook fan-out.
- Billing webhooks written to be replayed: idempotent handlers, no double-charging on retry.
- An MCP adapter, so AI agents read the same contracts the humans do.
Where it stands
Still in development, deliberately — it's where I practice being the whole engineering team, not just a member of one.