Blog

How to build software and AI that holds up.

Guides from our engineers on custom systems, AI agents and private AI: what to build, what it costs, and what breaks once it’s live.

Building software · 14 Aug 2026 · 7 min read

Monitoring and Alerts for a Small SaaS

You do not need an observability stack. You need about six alerts that catch the failures that cost you money, and the discipline to keep the rest quiet.

Engineering and operations · 14 Aug 2026 · 8 min read

Load Testing Before You Get the Traffic You Wanted

A launch that works is the most expensive way to discover your connection pool holds twenty. Here is how to find your breaking point on purpose, first.

Engineering and operations · 14 Aug 2026 · 8 min read

Incident Response When You Are the Whole Team

Nobody to escalate to, no runbook, and the app is down. Here is the process that keeps a one-person outage from turning into a one-person disaster.

Engineering and operations · 14 Aug 2026 · 8 min read

Documenting a Codebase So the Next Engineer Can Take Over

Not a wiki nobody reads — the specific short documents that decide whether your next engineer ships in week one or spends a month reverse-engineering.

Building software · 13 Aug 2026 · 8 min read

Retrofitting Multi-Tenancy Into a Single-Tenant App

Your app assumes one company per account and a customer just asked for teams. Here is how to add tenancy to a live product without a rewrite or a data leak.

Engineering and operations · 13 Aug 2026 · 7 min read

Implementing Roles and Permissions Without Painting Yourself In

Most permission systems fail the first time a customer asks for something slightly unusual. Here is how to build one that bends instead of breaking.

Engineering and operations · 13 Aug 2026 · 8 min read

Versioning an API Before Anyone Depends On It

You do not need three API versions. You need one, plus the discipline and the mechanism to introduce a second the day you genuinely cannot avoid it.

Engineering and operations · 13 Aug 2026 · 8 min read

Logging You Can Actually Search at 2am

Most startup logging is a wall of text nobody can query during an incident. Here is the small set of rules that turns it into something you can answer questions with.

Building software · 12 Aug 2026 · 6 min read

Feature Flags for Teams of One to Five

Use a small, disciplined set of feature flags to separate deployment from release without creating a second configuration system nobody understands.

Engineering and operations · 12 Aug 2026 · 6 min read

Moving Slow Work Into Background Jobs

Move long AI calls, imports, email, and document processing out of web requests without creating duplicate work or invisible failures.

AI agents and automation · 12 Aug 2026 · 6 min read

A Caching Strategy That Cuts Your AI Bill

Cache the deterministic and reusable parts of your AI workflow without serving stale private data or pretending every model response is interchangeable.

Building software · 12 Aug 2026 · 7 min read

Scaling a Supabase App Past Its First Thousand Users

The specific things that break when a Supabase app goes from fifty users to a few thousand — and the fixes that work, in the order they are worth doing.

Engineering and operations · 11 Aug 2026 · 7 min read

Adding Observability to an App You Inherited

A pragmatic order of operations for instrumenting an inherited or AI-generated app — errors, logs, traces, and uptime — without drowning in tools or bills.

Engineering and operations · 11 Aug 2026 · 7 min read

Error Handling Beyond the Happy Path

Why generated code swallows errors, how to find every place it happens, and a practical taxonomy for deciding what to retry, surface, or refuse.

Engineering and operations · 11 Aug 2026 · 6 min read

Setting Up CI/CD for an App That Never Had Any

Turn an app that ships from one laptop into a repeatable release pipeline with automated checks, preview environments, and a rollback path.

Engineering and operations · 11 Aug 2026 · 6 min read

You Need a Staging Environment Before Your Next Release

Build a staging environment that catches deployment failures without becoming an expensive, stale imitation of production nobody trusts.

Engineering and operations · 10 Aug 2026 · 6 min read

Adding Tests to a Codebase You Did Not Write

You do not need full coverage. You need tests around the paths that lose money or data — here is the order to add them in when you did not write the code.

Engineering and operations · 10 Aug 2026 · 6 min read

Refactoring AI-Generated Code Without Breaking It

AI-generated code fails in predictable patterns. Here is the sequence for cleaning it up that keeps the app working the entire time.

Engineering and operations · 10 Aug 2026 · 7 min read

A Code Review Workflow for Teams Shipping AI-Written Code

How to run code review when most of the diff was written by a model — automation lanes, human-only checks, PR sizing rules, and a workflow that survives a one-person team.

Engineering and operations · 10 Aug 2026 · 7 min read

Fixing the Data Model an AI Gave You

The six schema mistakes AI builders make over and over — and a safe, ordered plan for repairing your data model while the app stays live.