Notes on shipping software — .NET, TypeScript, multi-tenant SaaS, and the boring parts that make systems last.
The three things people call 'a website' are really three different products with different costs and timelines. Here's how to tell which one you need before anyone quotes you.
A realistic timeline for landing pages, marketing sites, web apps and SaaS — what actually eats the weeks, and why the same brief can take days or months.
Both ship great products. The honest differences are about team, type safety, and the shape of your problem — not raw speed. Here's how to choose without the tribalism.
Why quotes for the same site swing so wildly, what you're really paying for, and how to tell a fair price from a bad one — without needing to be technical.
Throwing for a not-found or a validation error turns your happy path into a minefield of invisible exits. Return the failure instead, and the compiler starts working for you.
If your SaaS could ever onboard a second customer, every table needs a tenant column from the first migration. Bolting it on later is a rewrite, not a refactor.