Blog

Real Talk on Websites & Engineering

Practical advice for business owners who need a working website, and deep-dives for developers who need to know why things break.

For Business OwnersFor Developers & CTOs
For Business Owners

Is Your Website Actually Working for You?

Plain-English articles on the most common problems that cost small businesses real money — and what to do about them.

For Business Owners4 min read#01

Your Contact Form Is Broken and You Have No Idea

The form shows a green tick. You think leads are coming in. They're not. Broken contact forms are the most common — and most expensive — silent failure on small business websites. Here's how to find out if yours is one of them.

Most business owners haven't tested their own contact form in over a year.
Lead GenerationContact FormsQuick Fix
Read
For Business Owners5 min read#02

5 Signs Your Website Is Turning Away Customers Right Now

Loads slow on mobile. Browser says 'Not Secure'. Looks broken on a phone. Last updated in 2021. Any one of these is enough to make a potential customer close the tab and call your competitor instead. Here's the checklist I run on every site I audit.

53% of mobile visitors leave a page that takes longer than 3 seconds to load.
Website AuditMobileSpeedConversions
Read
For Business Owners5 min read#03

No Website in 2026? Here's What That's Costing You Every Month

A Facebook page is not a website. It doesn't rank on Google, it doesn't build trust the same way, and you don't own it. If even one customer per week finds your competitor online instead of you, do the maths — a proper website pays for itself in the first month.

97% of people search online before visiting or contacting a local business.
Local BusinessGoogleROIGetting Started
Read
For Developers & CTOs

Architecture & Engineering Deep-Dives

System design decisions, production post-mortems, and the trade-offs nobody puts in the docs.

System Design8 min read#01

How to Architect a Multi-Tenant SaaS Platform That Scales Without Rewriting Everything

Most developers bolt on multi-tenancy after the fact — and pay for it in production. Here's the decision framework I use upfront: shared schema vs. schema-per-tenant, row-level security in Postgres, and why your auth layer is the load-bearing wall.

The schema decision you make on day one will constrain your architecture for years.
PostgreSQLNode.jsAuthScaling
Read
Architecture6 min read#02

WebSockets vs. Server-Sent Events: The Decision You're Probably Getting Wrong

SSE handles 80% of real-time use cases with a fraction of the infrastructure complexity — yet teams default to WebSockets out of habit. I break down exactly when bidirectional sockets are worth the cost, and when a simple event stream leaves your backend cleaner and more observable.

If your server only pushes data and the client only reads it, you don't need a WebSocket.
Real-TimeWebSocketsSSENode.js
Read
Engineering Deep-Dive7 min read#03

The Hidden Cost of Missing Indexes: A Production Post-Mortem

A missing compound index on a 2M-row collection caused a 4-second API response on a route that should have taken 40ms. Walk through the full post-mortem: how we diagnosed it with the MongoDB profiler, what the query plan revealed, and the indexing strategy we now enforce on every project.

COLLSCAN on a 2M-document collection is a 4-second response waiting to happen.
MongoDBPerformanceIndexingDevOps
Read

Ready to fix it?

Whether you need a new site or a better one

Describe what you need and I'll come back with a clear plan and honest pricing within 24 hours.

Get a Free Audit