|
| 1 | +--- |
| 2 | +tags: |
| 3 | + - article |
| 4 | + - link |
| 5 | +author: eric |
| 6 | +linkTitle: Eight years of wanting, three months of building with AI |
| 7 | +date: 2026-04-07 21:10:01 -07:00 |
| 8 | +linkUrl: https://lalitm.com/post/building-syntaqlite-ai/ |
| 9 | +viaUrl: https://simonwillison.net/2026/Apr/5/building-with-ai/ |
| 10 | +teaser: >- |
| 11 | + Lalit Maganti and I have a similar experience with the need to constantly refactor when |
| 12 | + building a project with a coding agent. |
| 13 | +--- |
| 14 | + |
| 15 | +Lalit Maganti wrote a [remarkable account][link] of building [syntaqlite] using Claude Code: |
| 16 | + |
| 17 | +> If you’re using AI to generate code at industrial scale, you _have_ to refactor constantly |
| 18 | +> and continuously. If you don’t, things immediately get out of hand. This was the central |
| 19 | +> lesson of the vibe-coding month: I didn’t refactor enough, the codebase became something I |
| 20 | +> couldn’t reason about, and I had to throw it all away. In the rewrite, refactoring became |
| 21 | +> the core of my workflow. After every large batch of generated code, I’d step back and ask |
| 22 | +> “is this ugly?” Sometimes AI could clean it up. Other times there was a large-scale |
| 23 | +> abstraction that AI couldn’t see but I could; I’d give it the direction and let it |
| 24 | +> execute. |
| 25 | +
|
| 26 | +The whole post is worth reading. With the project I have been working on I have been having |
| 27 | +similar experiences. Especially the need to always prioritize refactoring. |
| 28 | + |
| 29 | +My current project recently reached the point where it was getting hard to reason about |
| 30 | +areas of responsibility, so I decided it needed to be refactored into a monorepo. In non-AI |
| 31 | +time, this is something I would have sat on for a while longer before begrudgingly taking it |
| 32 | +on. But in AI-time, delaying this refactor would mean compounded deterioration of my |
| 33 | +understanding of how the pieces of the codebase are interconnected. |
| 34 | + |
| 35 | +Currently, I’m keeping a `BACKLOG.md` file in my project. It’s just a handful of sections |
| 36 | +with bullet lists of to-dos. Right at the top is a section for refactors. If I think of a |
| 37 | +refactor it becomes the very next thing to work on. I have yet to regret doing a refactor |
| 38 | +before doing more feature work. |
| 39 | + |
| 40 | +[syntaqlite]: https://lalitm.com/post/syntaqlite/ |
0 commit comments