Once TanstackStart v1 launches, Next.js is going extinct 💯
Its just a better stack, with well designed API's.
The developer experience is unmatched and the creator understands what Developers need to build and ship with no hassle 🤌
Migrate now or face redundancy 😑
AI can generate a login system.
Software engineering is deciding:
how identities are modeled
how permissions work
how auditing works
how recovery works
how it scales
One is implementation.
The other is design.
While doing Spec Driven Development, I find myself in a situation again and again.
I create (or generate) a Spec, review it, if it looks good, I ask AI to implement it.
Once AI is done, when I take a look at the code, I realize I missed a couple of small things.
They are not too big to update the spec and ask AI to check for delta and patch the implementation.
So, I quickly make changes, but am too lazy to update the spec knowing there is less likely I will take a look at the already implemented spec in future. When in doubt I check the code.
Now there is drift in the spec and implementation.
Is this what some people are referring to when they say SDD doesn't work because we can't write a complete spec ahead of time?
protip: use a different favicon in dev, preview and prod
this makes it really easy to distinguish your tabs from each other, so you don't accidentally look at prod and wonder why your code changes didn't apply
The more complex the agents I build, the more state machines (statecharts) feel like the right artifact.
Run the same inputs through different machines & compare. Keep the winner, or eval at transition level & combine the good parts.
Feels like building agents w/LEGO.
Prompt, context, harness & loop engineering, clearly explained!
An agent is a while loop with four layers of engineering wrapped around it:
- Prompt engineering
- Context engineering
- Harness engineering
- Loop engineering
Each one wraps the last, and the model sits in the middle, so none of them compete with the others. Instead, they just zoom one level further out.
> Prompt engineering:
This defines the input the model sees on one call, often composed of a role, instructions, examples, and an output format.
The techniques here alter the internal computation and reasoning the model goes through due to the wording it sees:
- Chain-of-thought makes it work in steps before answering
- Few-shot examples define the format and the edge cases
- A JSON schema or XML tags make the output parseable by code
- Self-consistency samples a few chains and takes the majority
> Context engineering:
It's everything the model sees on a turn, not just the prompt. That includes the query, retrieved docs, memory, prior turns, and tool outputs from earlier steps.
The window is finite and fills up fast, so the engineering work is to rank inputs and cut everything that isn't pulling weight.
You do this by:
- Retrieving only the chunks relevant to the query, then reranking them
- Keeping key facts out of the middle, where accuracy drops
- Summarizing old turns, evict stale outputs, push big blobs to files
> Harness engineering:
It's the code around the model that defines the tools, parses the calls, retries on failure, and can route work to sub-agents so one handles retrieval and another handles code.
A verifier then grades the result by running tests, validating a schema, etc.
Prompt and context involve getting one call right. The harness involves everything that has to happen around that call for it to run in a real system.
> Loop engineering:
In the usual setup, you manage the outer loop, i.e, you write a prompt, read the turns the agent runs, write the next prompt, and repeat, while catching failures.
This layer hands that job to the agent itself. It kicks off on a schedule or an event, and runs many turns with no prompt in between.
A loop inherently doesn't know when it's finished. An agent can report that it's done and halt while the tests still fail. So the stop can't be the agent's word, but rather it has to be a real signal, like:
- A turn and token cap to stop stuck runs
- A no-progress detector to catch repeated calls
- A completion check to verify the goal with a separate model or a deterministic test
By this layer, you're operating on the whole run, so the engineering moves from writing each prompt to setting the goal and the stop conditions up front and letting it run.
If you want to dive deeper into loop engineering, my co-founder wrote a full breakdown of that outer loop.
It goes from the basic while loop to a run that finishes on its own, with the code behind each part, and the parts that are hard to get right, like knowing when to stop, context rot over a long run, and keeping the checker separate from the maker.
Read it below.
CHINESE CHRISTIANS SEEING BIBLE FOR THE FIRST TIME... Oh, Father forgive me if I have taken the gospel for granted and haven't made full proof of it... Oh. 🥹🙌
Border beam effect somehow reached 180k+ installs
New version is out: dynamic colors, 5 types, playground, dark & light mode, zero dependencies
https://t.co/DXXKEm9Gf1
Design Engineering Tip:
One CSS property is responsible for most ugly expand animations.
It’s height: auto.
Replace it with: grid-template-rows: 0fr → 1fr;
Design Engineering 101:
Make your number steppers feel awesome.
A number stepper that only bumps once per click makes you click twenty times. Reward the hold. Animate it nicely with rolling digits, blur on transitions and gradient masks to avoid abrupt cuts.
My take:
TanStack Router is the most compelling routing ecosystem for modern React today.
- End-to-end type safety.
- First-class search params.
- Built-in data loading & prefetching.
- Excellent DX.
- And it fits naturally with the rest of the TanStack ecosystem. 💯
Adding a set of Martin Fowler's code smells from Refactoring into my /review skill
Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Repeated Switches, Shotgun Surgery, Divergent Change...
This stuff is catnip for LLMs
https://t.co/g0fpl9x09Q
Open source models are probably going to win eventually. But not on hardware sitting in your house; they'll run on GPU slices you're renting in the cloud.
Having a massive GPU rig that you use 10% of the time is a bad unit economics argument for most people, and the cloud solved that problem 15 years ago.