AI Codegen

A Quarter of Startups in YC's Current Cohort Have Codebases That Are Almost Entirely AI-Generated.

Slashdot

Prologue: I developed the Model-Driven Node (MDN) in 2013 as a Ruby Rails-style generator which creates a commercial scale (SAP size) NodeJS app from an XSD schema document. I wrote it in a few weeks and generated a 1,000 table application including an abstract Angular UI using directives, essentially 5,000 man-hours of work created in 3 minutes.

Javascript (and ergo NodeJS, TypeScript) have scalability issues due to the lack of compile-time type enforcement. Generated code like my MDN was one way to bypass that limitation. But the job market chose a different direction, TypeScript, probably due to Microsoft's influence as its creator. But gluing TypeScript onto JavaScript is still a flaky solution and it looks like TypeScript has peaked in adoption in 2025.

I believe TypeScript was a flawed solution. And I'm 95% sure now that NodeJS hit a scalability limit a few years ago which fueled the mergence of its "Next.js" successor.

Now we're in the Age of AI with a similar scalability issue due to the non-deterministic nature of AI code generation. We need an AI-specific methodology to create maintainable apps with 99.9999% uptime, ie, critical demand apps. I'd bet big money that most of these "95% AI generated" codebases referenced at the top are not maintainable and lack six "9"s of reliability. Most are probably generated as a monolithic codebase, same as I did with ChatGPT at first.

The non-deterministic nature of generative AI means repeatable process becomes an obstacle in software development. So this post is an evolutionary (for now) AI-specific methodology plus job skills criteria.

set static foundation to reference in GPT scripts
. external REST API (maybe GraphQL)
. internal JSON messages
. set naming convention

SOA design.

Shifts:
. More time spent on API and JSON design
. More abstract API design
. More thorough integration testing, less unit testing

tradeoffs: abstract API versus combinatorial explosion in testing
update code by regeneration or hand tweak?. Probably favor regeneration when feasible.