What an"AI-Native" Platform Really Means
When founders or salespeople say their platform is "AI-Native" how can you tell the true from the BS?
Everybody at the last startup pitch night said that their company, product, or platform is “AI Native.” And just like if you say “milk” 100 times, after the third pitch the term lost its tether to reality. I am, however, one to talk: my company Workmind is, in fact, an “AI-Native” platform. So before I throw too many stones, let me shore up my glass house my defining what that means, for both internal developers and external users.
“AI Native” for different audiences
Workmind is not an open source project, and I do not expect it to be used by technical people; however is built by technical people who use AI in their development process. Just as my finished product is consumed and used by people around the world, my source code and tool chain are consumed by various large language models and harnesses. To me, an “AI-Native” platform appeals to large language models at all stages of the software lifecycleld :
- AI-Native DevelopmentLocal files and scripts
The source code and tools are easy for the AI to discover and use, and they promote fast iteration.
- AI-Native TestingHosted content and processes
Candidate versions of the product are easy for the AI to deploy and verify.
- AI-Native ProductSpecial interfaces for AI
The final product is easy for commercial AI applications to use.
Each of these audiences have different requirements, but – good news! – they are mutually exclusive. This means that you can have AI-Native testing within your dev or QA teams, without having to stop and set up production-level AI interfaces for your product.
AI-Native Development
This is all about organizing your source code. There has been, and will continue to be, a preponderance of ridiculous claims about the best way to optimize your code for a particular harness or LLM. Codex vs Claude will become this generation’s emacs vs vim flame war.
The nice thing is that the “solutions” touted are nothing new, and you can make your source code easy for an AI to work with in the same way that you can make your code easy for humans to work with. Broadly, this means making decisions like:
Naming things appropriately and consistently
“Things” does a lot of heavy lifting here, and applies equally to:
- Packages / Modules / Directories
- Files
- Variables / Objects
- Functions / Methods / Interfaces
- Processes
- Error messages
Ideally these names are self-describing, unique, and memorable. They do not need to be short. Not only are modern computers capable of handling longer names for items, but large language models can generate tokens far faster than humans can type. Thusly, a function called CreateNewHashMapFromUserDefaults() is less onerous for an LLM to “type” than a human.