← Index

SHT-02 · Independent SaaS · 2026

Semblia

A testimonial platform for small teams — built alone, from database schema to sign-up form.

In development

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.


Next sheet · SHT-03Specord