Product

Reynt — a booking platform, built by one person.

A production multi-tenant SaaS, GDPR-compliant and hosted in the EU. Thirteen packages, four APIs, three frontends, roughly 480,000 lines and 3,800 commits in about eleven months — architected, written and operated by one architect working with AI coding agents.

Reynt is a pnpm + Nx monorepo of thirteen packages: four Hono APIs on Bun with end-to-end typed clients, three Nuxt 4 frontends, an Astro marketing and documentation site, and a headless SDK for operators who want to build their own storefront.

Tenant isolation is enforced by construction rather than by convention. Business logic lives in factory-created services that receive their tenant at construction time, and every tenant-scoped table carries PostgreSQL row-level security with FORCE ROW LEVEL SECURITY. Personal data is encrypted at rest under a per-tenant X25519 keypair, stays searchable through keyed blind indexes, and is erasable by discarding the key.

The HTTP framework is deliberately confined to the transport layer — the domain packages contain zero framework imports, and static guard tests keep it that way. That insurance paid out when all four APIs migrated from Elysia to Hono: a wide but shallow rewrite of route files, with the domain untouched.

What it does

Four things it has to get right.

Booking & offers

The full lifecycle — availability, pricing rules, multi-option offers, modifications and cancellations — with a CMS storefront builder on top and localized SEO across languages.

Money

An append-only payment ledger over Stripe, Stripe Connect and PayPal, with invoices, settlements and payouts. Nothing is mutated after the fact; the ledger is the record.

Privacy by construction

Row-level security on every tenant-scoped table. PII encrypted at rest under a per-tenant X25519 keypair, searchable through keyed blind indexes, erasable by discarding the key.

AI where it earns its place

A tool-calling agent behind an operator approval workflow, an MCP server, RAG-backed in-app help, and AI-assisted guest communication — each one gated, none of them autonomous.

The stack

What it runs on.

  • TypeScript
  • Bun
  • Hono
  • Nuxt 4
  • Vue 3
  • Astro
  • Tailwind CSS 4
  • PostgreSQL (RLS)
  • Drizzle ORM
  • Zod
  • Zitadel (OIDC)
  • Stripe Connect
  • PayPal
  • Kubernetes
  • Vitest

Downstream

What came out of it.

Building one large system honestly produces reusable parts. Those parts were extracted into their own repositories and published — not as a side project, but because maintaining them in the open is the cheapest way to keep them clean.