Blog

What replaces code review when an agent writes the code

An agent writes most of the code here and no second engineer reads it before it ships, so a standard that depends on someone noticing does not survive. There are three ways to hold one in place and they are not equivalent. Turn the strict ones on at the first commit.

Replacing ESLint with oxlint

On a codebase an agent writes and nobody else reviews, the lint gate is the code review. For nine months it was green, running a preset with the rules that mattered switched off, and slow enough that it only ever ran in CI. The swap to oxlint dropped nothing, took the lint step from 46 seconds to 9 in CI and to one second locally, and turned the coding standards written in January into rules a file cannot be saved against.

I built a marketing platform artificial intelligence runs

I built a marketing platform artificial intelligence runs

Giant Context is a marketing platform where the intelligence is the operator. A model reads what a business is, works out what its marketing is missing, and makes it. Seven apps on one dataset, nine months, one person. It runs two ways, autonomously or driven in conversation over MCP, and both use the surface a customer's own integration uses. This blog is the proof.

Cutting the homepage from 5.7MB to 217KB

Ten days of frontend performance work on the public site, including the four hypotheses that turned out to be wrong. Images were served raw because a transform that already existed was never being requested. A one-line bundle fix produced zero change. Fixing the paint delay took layout shift from 0 to 1.011, because the score had only been zero while the content was invisible. What each metric actually measures, how to diagnose a layout shift properly, and what to check on your own site.

Adopting the TypeScript 7 preview for typecheck only

The Go port of the TypeScript compiler promises full builds eight to twelve times faster. Whether a codebase can adopt it before the release settles depends on whether anything it ships is emitted by tsc. Here nothing is, so the typecheck job across twenty-six packages moved to the preview and went from seven and a half minutes to under five. That is 35 percent, not eight times, and the missing multiplier is in the monorepo loop rather than the engine. What to establish about a repository before doing the same, and the 294 lines it cost.

Compute gets cheaper per request at scale

Compute gets cheaper per request at scale

I price Giant Context at $25 per million tokens and had no defensible answer to what it costs to serve a thousand customers. Four of the five cost classes on a cloud invoice are linear and multiply fine. The fifth is a queueing problem with a closed-form answer, and it says unit compute cost falls as traffic grows, by up to the concurrency setting. Derived, checked against simulation, and run against thirty days of real usage.

Removing the test cache halved CI time

The test cache made the suite fast by replaying old results instead of running the tests. Deleting it was correct and it made everything slower. Then the slowness was real, so it got measured, and the eighteen-minute floor turned out to be a memory limit nobody had looked for. A week later the pipeline was honest and roughly twice as fast as the version that was cheating.

Auditing an MCP server with an agent

The API doubles as tools an agent can call, opt in per route from the same description that generates the SDK. I tested it like an API and everything passed. Then an agent spent two days doing real editorial work through it. A person routes around a gap and never reports it. An agent names the call, the parameter and the wrong behaviour, and keeps going.

Object-level authorization in the OpenAPI spec

Part one fixed which permissions a role holds. It never checked that the thing you asked for was yours. About thirty-two routes had a hand-written check and the rest had none, because a convention an agent copies drifts as the codebase grows. The fix declares what each identifier points at, on the route, and the build refuses to produce anything until every one is answered.

Rebuilding RBAC on GCP notation

I hire a web designer who edits the website. Do they now have my customer list? Four places each claimed to answer that, they disagreed, and the test suite reported everything was fine. Standardising 179 permissions on Google's notation is what made the tests possible. The drift that let four vocabularies accumulate is the part still unsolved.