Skip to content

Blog

Notes from the build

Long pieces on the web platform, engineering and machine learning. Plus The Wire, short briefs on the news as it lands.

RSS
ML for Web Devs5 min read

Machine learning for web developers: the only mental model you need

You do not need calculus to work with models. You need one idea — that a model is a function you fit instead of write — and the rest follows from things you already know.

Shipping4 min read

What a small product actually costs to run

The hosting bill is the cheapest part and everyone budgets for it anyway. Here is the whole list, including the lines that only appear after you have customers.

Web3 min read

How :has() changed the way I write components

The parent selector we asked for since 2003 has been shipping for years now. It does not just save a class name — it moves state out of JavaScript entirely.

Engineering3 min read

The N+1 you cannot see

Everyone knows to eager load. The queries that actually take sites down are the ones hiding in an accessor, a Blade partial, or a policy — and there is a one-line switch that finds all of them.

ML for Web Devs4 min read

What an embedding actually is

An embedding is a list of numbers that puts similar things near each other. That one sentence is enough to build search, recommendations and retrieval — here is how.

Web2 min read

Container queries killed my breakpoints

Media queries ask how big the window is. That was never the question. Components care about the space they are given, and now they can ask.

ML for Web Devs4 min read

Tokens, context windows, and why your bill is what it is

The unit of billing for language models is not the request or the word. Once you understand tokens and how a context window fills up, the invoice stops being a surprise.

Engineering3 min read

Queues are not optional

If your request handler calls somebody else’s API, you have already built a distributed system. The queue is how you stop their bad day from becoming your bad day.

ML for Web Devs4 min read

RAG is just search with extra steps

Retrieval-augmented generation gets written up like an architecture. It is a search query, a string concatenation and one API call — and the search query is the part that decides whether it works.