The 2nd Phase of Agentic Development
Yesterday we talked about how cheap code is fueling an era of idiosyncratic tooling, and previously we’ve talked about the rise of spec driven development. In that second piece, we ran through some of the initial examples of spec driven development with agents:
By far, the hardest part of starting a SDD project is creating the tests. Which is why many developers are opting for borrowing existing test sets or deriving by referencing a source of truth.
- Anthropic wrote a C compiler in Rust. They used existing test suites and used GCC as a source of truth for validation and generating new tests.
- Vercel created a bash emulator in TypeScript. They created and curated an amazing set of shell script spec tests and have been feeding these to Ralph. (To make this even more meta, I’ve been following their commits and Clauding them into Python).
- Pydantic created a Python emulator…in Python. This sounds silly, but it’s useful in the same way Vercel’s
just-bashis: it’s a super lightweight sandbox for AI agents. (In fact, I’ve already wrapped it in aCodeInterpreterfor use with DSPy’s RLM module)
The first wave of agentic development brought us clones and ports. When code is incredibly cheap, and you want the code to flow, you can either rely on your own fast feedback or leverage existing test suites. These early projects opted for the latter, as did many tokenmaxxers who are rebuilding their dependencies in Rust or Go.
Two releases this week, however, suggest we’re starting to enter a second phase of open source agentic coding projects. The first brought us clones, this next phase brings us reimaginings. Consider the following two projects:
- Cheng Lou created a TypeScript library for laying out text on web pages: Pretext measures and lays out paragraphs, without using CSS while bypassing DOM measurements and reflow. In a nutshell, this makes tricky things involving text layout dramatically faster and much simpler to implement (Cheng provides many demos in his thread).
- Cloudflare Launched EmDash, a modern CMS: EmDash is described as, “the spiritual successor to WordPress.” It’s written in TypeScript, serverless, sandboxes plugins for security, and uses Astro, a fast modern web framework.
The Cloudflare post really spells out the pattern we’re seeing here: the team looked at all the jobs people hire WordPress to perform and asked, how would we solve those if we started today?
WordPress powers over 40% of the Internet. It is a massive success that has enabled anyone to be a publisher, and created a global community of WordPress developers. But the WordPress open source project will be 24 years old this year. Hosting a website has changed dramatically during that time. When WordPress was born, AWS EC2 didn’t exist. In the intervening years, that task has gone from renting virtual private servers, to uploading a JavaScript bundle to a globally distributed network at virtually no cost. It’s time to upgrade the most popular CMS on the Internet to take advantage of this change.
What they ended up with is something fast, serverless, and secure. They didn’t clone WordPress, they reimagined it by focusing on the job to be done.
Cheng Lou took the same route: he didn’t port CSS to Go or Rust to get his speed gains. Rather, he focused on one hard, important job to be done that CSS doesn’t do very well and reimagined it with everything we’ve learned and built, unhindered by the baggage of CSS.
Now what does this have to do with coding agents? Isn’t this something we could have done (and did) before?
Previously, the built up ecosystems and mature code of existing software projects made reimagining foolish. Teams did create modern CMS projects, but WordPress’ massive size and momentum meant newcomers could only carve out small niches of adoption, if they didn’t fail entirely. The odds weren’t good and the costs of trying were high, so most people sighed and moved on.
Coding agents make reimagining practical because the cost to perform them is so, so much lower. Code is cheap. We can take more shots, more often, to counter the embedded standards.
Further, reimagining a new standard was a long road. If you survived the initial build and executed a good launch, picking up a small core of users, you earned the job of writing countless bugfixes, optimizations, and security patches. Mature software like WordPress is battle tested; it’s had decades of feedback and found flaws. How can a newcomer compete?
Well, Cheng Lou demonstrates an interesting approach, again using agents:
The engine’s tiny (few kbs), aware of browser quirks, supports all the languages you’ll need, including Korean mixed with RTL Arabic and platform-specific emojis.
This was achieved through showing Claude Code and Codex the browsers ground truth, and have them measure & iterate against those at every significant container width, running over weeks.
With agents and LLMs, we can synthetically test our new tools, patching them as we challenge them.
I think we’re going to see a lot more reimaginings, where people attack old problems with modern tactics. Coding agents lower the costs of taking on stalwarts and raise our ability to rapidly harden our software. I can think of many software tools that people rely on but don’t like. Those are the prime targets for reimagining.