the opinions are in the process.

// language-agnostic · cloud-agnostic · process-opinionated

We don't sell a stack. We ship in whatever the engagement needs — the right language and cloud are chosen for the work, not the brochure. What stays constant is how the work gets done: AI-assisted, serverless-first, incremental, and reviewed by a senior engineer at every step.

// how the work gets done
ai-assisted

AI is the operating model, not a feature we bolt on. It drafts, explores, and accelerates — and a senior architect directs and reviews every consequential decision. You get the speed of AI with a human accountable for the result.

serverless-first

Fixed cost is the enemy of a lean build. We default to serverless — Aurora Serverless v2, Neon, Supabase, Lambda — so infrastructure scales to zero when idle and you don't pay for capacity you aren't using.

postgres-by-default

For greenfield work the answer is PostgreSQL until proven otherwise — pgvector for retrieval and similarity, one database instead of a sprawl of specialized stores. We're fluent in MSSQL, Oracle, and MySQL where an existing system dictates.

strangler-fig over rewrites

Big-bang rewrites fail loudly and expensively. We modernize incrementally — stand up the new alongside the old, route traffic across, and retire the legacy piece by piece. Value ships continuously; risk stays bounded.

mcp-driven workflow

Per-project MCP servers give the AI safe, structured access to the systems it works on. The tooling is part of the deliverable, not a one-off demo.

cite sources, don't guess

Every AI feature we ship returns its sources and is instructed to say "I don't have enough information" rather than invent one. Confident-sounding fabrication is a defect, and we treat it like one.

// own the seam, defer the platform

The temptation in AI work is to build an engine first and a product never. We do the opposite: build a focused product with one clean seam where the AI lives, and extract shared layers only after real duplication shows up across two real engagements. Platforms earn their existence; they don't get assumed into it.

// standing defaults

Sensible until a reason overrides them — per engagement, with the reason stated.

auth

Managed, never rolled

Clerk, Auth0, or Supabase Auth. We don't hand-roll authentication — the blast radius is too large and the prize too small.

payments

Stripe

Billing, subscriptions, and webhooks on Stripe. Boring, proven, auditable.

ai

Gateway + pgvector

A centralized AI gateway, pgvector for retrieval, Claude for reasoning, Voyage for embeddings. Citations on by default.

frontend

Next.js + Tailwind

Next.js / React with Tailwind and shadcn/ui when the work is web. Fast to build, easy for your team to maintain.

data

Postgres + pgvector

One database that does relational and vector work. Fewer moving parts, fewer failure modes.

delivery

Documented for handoff

Everything we build is meant to be owned by your team. Clear docs, clean seams, no lock-in to us.

Sound like the way you'd want it built?

If this is how you'd run the work, we'll probably get along. Start with a conversation about what you're building.

info@runthyme.com