Notesfromthework

An occasional set of notes on software delivery, architecture decisions, and the operational detail that does not usually make it into marketing pages. Written by the people doing the work.

Architecture

Designing a multi-tenant B2B SaaS data model when you have ten customers, not ten thousand

A pragmatic decision guide for early-stage B2B SaaS teams choosing between shared-schema, schema-per-tenant, and database-per-tenant data models. Includes a default that survives the first hundred customers, the five markers that should push you to isolate, and how to design today so the migration is cheap when it comes.

Read note12 min read
Integrations

How to write an integration spec a vendor cannot misinterpret

A practitioner template for integration specs that force decisions before code is written — idempotency, retry semantics, payload contracts, error taxonomy, and the observability hooks that make partner blame games short.

Read note10 min read
Software development

Fixing INP in a real React app: a teardown of the slow interactions we found and what we changed

A walkthrough of an INP rescue on a production B2B dashboard. The profiling we used, the four interactions that were dragging the 75th percentile into the red, and the React 18 and architectural fixes — useDeferredValue, transitions, event delegation, virtualisation, hydration boundaries — that moved the app from failing to passing.

Read note11 min read
Software development

Server Components in production: data-fetching patterns that hold up under real load in Next.js 15

Production-tested data-fetching patterns for React Server Components in Next.js 15: request memoization, parallel awaits, streaming with Suspense, the new `use cache` directive, and where Server Actions actually beat Route Handlers.

Read note13 min read
Delivery

Build vs buy software in 2026: a decision framework for CTOs

An opinionated build vs buy decision framework for CTOs at 50-300 person B2B companies. Score strategic importance, differentiation, five-year total cost, and team capacity, with a worked example for a 120-person operations system.

Read note12 min read
Architecture

Why web apps get slower over time, and what actually fixes it

Slowness is usually one of three problems, and teams misdiagnose the expensive one. A diagnostic framework for web applications that have quietly decayed.

Read note9 min read
Software development

Software Development in 2026: Faster, Smarter, and Harder to Trust

AI writes a large share of new code in 2026, but developer trust has dropped to 29%. The real shift is not speed, it is verification. What the data says.

Read note10 min read
Technology strategy

Build vs. buy vs. integrate: a decision framework for growing teams

Build-vs-buy is the wrong question for most growing teams. Here is the decision framework we use, and when custom is honestly the right call.

Read note10 min read

More notes are on the way. If you would like them in your inbox, let us know.

Start a conversation

Want to talk about something we have written?

We are always happy to discuss the ideas in these notes — or where you disagree with them.