A Quarter of Startups in YC's Current Cohort Have Codebases That Are Almost Entirely AI-Generated.
Prologue: I developed the Model-Driven Node (MDN) in 2013 as a Ruby Rails-style framework generator which creates a complete, commercial scale (SAP size) NodeJS app from an XSD schema document. I got it working after several weeks and successfully 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 always felt TypeScript was a flawed solution. And I'm 95% sure now that NodeJS hit the same scalability limit a few years ago i.e. the emergence of its "Next.js" successor.
Now we're into the Age of AI with its 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, a financial app. I'd bet big money that most of these "95% startup" codebases referenced at the top are not maintainable and not six "9"s of reliability. Most are probably being generated as a monolithic codebase, same as I did with ChatGPT at first.
And of course, 95% of the "upcoming geniuses" have no idea of what I'm talking about. Depressing but not unusual.
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.
Comments