Eight years of wanting, three months of building with AI

Simon Willison's Blog / 4/6/2026

💬 OpinionSignals & Early TrendsTools & Practical Usage

Key Points

  • The article highlights Lalit Maganti’s long effort—eight years of thinking and three months of building—to create syntaqlite, AI-assisted devtools for SQLite including parsing, formatting, linting, and verification.
  • It frames syntaqlite as “high-fidelity devtools that SQLite deserves,” aimed at being fast and robust enough for language servers and other developer tooling.
  • A key motivation was the tedium of implementing and working through hundreds of SQLite grammar rules, which the author argues is well-suited to agentic coding assistance.
  • Claude Code is credited with overcoming the initial build hump by turning vague architecture concerns into concrete, prototype-driven tasks that accelerated early iteration.
  • Despite early success with an AI-generated prototype, the project ultimately chose to discard that prototype and restart from scratch, emphasizing that AI helps but does not remove the need for coherent engineering decisions.
Sponsored by: WorkOS — Production-ready APIs for auth and access control, so you can ship faster.

5th April 2026 - Link Blog

Eight years of wanting, three months of building with AI (via) Lalit Maganti provides one of my favorite pieces of long-form writing on agentic engineering I've seen in ages.

They spent eight years thinking about and then three months building syntaqlite, which they describe as "high-fidelity devtools that SQLite deserves".

The goal was to provide fast, robust and comprehensive linting and verifying tools for SQLite, suitable for use in language servers and other development tools - a parser, formatter, and verifier for SQLite queries. I've found myself wanting this kind of thing in the past myself, hence my (far less production-ready) sqlite-ast project from a few months ago.

Lalit had been procrastinating on this project for years, because of the inevitable tedium of needing to work through 400+ grammar rules to help build a parser. That's exactly the kind of tedious work that coding agents excel at!

Claude Code helped get over that initial hump and build the first prototype:

AI basically let me put aside all my doubts on technical calls, my uncertainty of building the right thing and my reluctance to get started by giving me very concrete problems to work on. Instead of “I need to understand how SQLite’s parsing works”, it was “I need to get AI to suggest an approach for me so I can tear it up and build something better". I work so much better with concrete prototypes to play with and code to look at than endlessly thinking about designs in my head, and AI lets me get to that point at a pace I could not have dreamed about before. Once I took the first step, every step after that was so much easier.

That first vibe-coded prototype worked great as a proof of concept, but they eventually made the decision to throw it away and start again from scratch. AI worked great for the low level details but did not produce a coherent high-level architecture:

I found that AI made me procrastinate on key design decisions. Because refactoring was cheap, I could always say “I’ll deal with this later.” And because AI could refactor at the same industrial scale it generated code, the cost of deferring felt low. But it wasn’t: deferring decisions corroded my ability to think clearly because the codebase stayed confusing in the meantime.

The second attempt took a lot longer and involved a great deal more human-in-the-loop decision making, but the result is a robust library that can stand the test of time.

It's worth setting aside some time to read this whole thing - it's full of non-obvious downsides to working heavily with AI, as well as a detailed explanation of how they overcame those hurdles.

The key idea I took away from this concerns AI's weakness in terms of design and architecture:

When I was working on something where I didn’t even know what I wanted, AI was somewhere between unhelpful and harmful. The architecture of the project was the clearest case: I spent weeks in the early days following AI down dead ends, exploring designs that felt productive in the moment but collapsed under scrutiny. In hindsight, I have to wonder if it would have been faster just thinking it through without AI in the loop at all.

But expertise alone isn’t enough. Even when I understood a problem deeply, AI still struggled if the task had no objectively checkable answer. Implementation has a right answer, at least at a local level: the code compiles, the tests pass, the output matches what you asked for. Design doesn’t. We’re still arguing about OOP decades after it first took off.

Posted 5th April 2026 at 11:54 pm

This is a link post by Simon Willison, posted on 5th April 2026.

sqlite 456 ai 1950 generative-ai 1731 llms 1698 ai-assisted-programming 373 vibe-coding 82 agentic-engineering 41

Monthly briefing

Sponsor me for $10/month and get a curated email digest of the month's most important LLM developments.

Pay me to send you less!

Sponsor & subscribe