
Micro-Frontends Are an Org Chart Decision, Not a Technical One
Every micro-frontends pitch I've seen leads with the technical benefits — independent deploys, framework isolation, smaller bundles per team. Almost none of it holds up unless the real problem was organizational to begin with. Conway's Law isn't a fun fact here. It's the actual justification.
Read full article →
Layered vs Feature-Sliced: Two Ways to Cut the Same App
Every frontend architecture is really just a decision about which axis you slice the app along — by technical kind, or by feature. Both are correct. Both eventually hurt. The question worth asking isn't which one is better, it's which one is cheaper to be wrong about later.
Read full article →
Nivra: Turning a Hackathon Idea into a WebMCP Architecture Workspace
How Nivra went from a vague hackathon direction to a tested WebMCP workspace: choosing the right idea, making architecture the shared context, and proving that human UI, agent tools, and deterministic validation could work from the same model.
Read full article →
What FSD Actually Fixed (and What It Didn't)
Feature-Sliced Design got popular because frontend spent years being treated as the part of the codebase that didn't need real architecture. It fixed that perception. It did not fix cohesion, and pretending it did is how you end up with a button smeared across ten folders.
Read full article →
Checkout Isn't a Form. It's the Only Part of the App Where Architecture Has a Stopwatch on It
Most of an app can afford to be a little slow, a little clunky, and still get forgiven. Checkout can't. What you're actually selling in that flow isn't a UI — it's time-to-goal. Every architectural choice in there either protects that number or quietly taxes it.
Read full article →
Most Advanced TypeScript Isn't Worth What It Costs
There's a point where a type stops protecting you and starts being a puzzle you have to solve again every time you touch it. I'm not a type wizard and I've stopped trying to be one — because on real React codebases, the complexity that pays for itself is a much shorter list than the internet suggests.
Read full article →
Your Agent Instructions Are Rotting Right Now
Nobody writes agent rules once and walks away — they write them, then keep adding. A line here after a bad run, a paragraph there after a near-miss. Six months later the file contradicts itself, and the agent is following the version of your project that stopped existing in March.
Read full article →
They Asked Me to Build a Slider. It Was a Much Better Question Than I Thought.
A carousel with next, previous, and a row of dots. No animation. I remember thinking: is this it? Then I watched my own first thirty seconds of typing and realized the task wasn't measuring whether I could build a slider. It was measuring the order I do things in.
Read full article →
React Gives You the Loading State. It Does Not Give You Cancellation.
React 19 hands you pending state for free, and that's genuinely nice. But a finished spinner is not a finished request. AbortController is the piece almost nobody reaches for — not because it's hard, but because it looks scarier than it is. Here's the small, boring version that covers most of what you need.
Read full article →
Evaluation Is the Missing Loop in Agent Workflows
An agent that feels better after a prompt change may still be getting worse. Without a small set of realistic tasks, explicit expectations, and recorded failures, agent improvement is just a sequence of impressions.
Read full article →