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.

Software development

TypeScript monorepo strategy: Turborepo vs Nx vs the workspace you already have

An opinionated, docs-grounded comparison of TypeScript monorepo tooling for small teams. What plain pnpm/npm workspaces already do, where Turborepo's caching earns its place, when Nx's architecture tooling pays off, and the team size where each starts helping instead of hurting.

Read note11 min read
Software development

The European Accessibility Act for B2B SaaS: what changed, what to ship, and how to audit

The European Accessibility Act applies from 28 June 2025. Here's an honest read on whether it touches your B2B SaaS, the WCAG 2.1-versus-2.2 gap you need to know, an audit playbook that goes past automated tools, and the fixes that actually move conformance in React apps.

Read note11 min read
Digital operations

An incident response runbook template for engineering teams under twenty

A minimum-viable incident response runbook for small engineering teams without a dedicated SRE. A copy-paste template, a three-level severity ladder, roles that work when you are five people, comms scripts, safe rollback, and a blameless postmortem loop.

Read note10 min read
Integrations

Webhook reliability: retries, idempotency, and the design choices that survive partner outages

A practitioner's guide to webhooks that survive partner outages. Retry budgets with backoff and jitter, consumer-side idempotency, HMAC signing with replay protection, dead-letter queues, and the observability that ends partner blame games fast.

Read note11 min read
Architecture

Custom software vs an internal developer platform: which problem are you actually solving?

Below 100 engineers, most teams reach for an internal developer platform when the real problem is undifferentiated toil and slow self-service. Here is how to tell the two apart, what the DORA data actually says about platforms at small scale, and what to build versus adopt.

Read note10 min read
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.