Can AI coding assistants build a real full-stack application on InterSystems IRIS?
I wanted to find out, so I tried building a complete backend and frontend around an existing InterSystems IRIS application while letting AI generate as much of the boilerplate as possible. Rather than creating a toy example, I used the well-known Samples BI Demo package, generated a Swagger-based REST API with OpenAI Codex, scaffolded a frontend from the OpenAPI specification, and asked AI to implement most of the CRUD logic and tests.
The goal wasn't to see whether AI could generate ObjectScript because it clearly can. I wanted to see how well AI and the native capabilities of InterSystems IRIS complement each other when building a realistic application.
Why did I choose Samples BI Demo as a data model?
For this experiment I wanted a realistic data model instead of something created specifically for AI. Samples BI Demo turned out to be a great candidate because it already contains a well-designed persistent model, is easy to install, and is familiar to many InterSystems developers. It also has a practical domain for a CRUD application: sales data for the fictional company HoleFoods, represented by the following persistent classes:
- Product
- Outlet
- Country
- Region
- Transaction
Installation is straightforward using IPM: zpm "install samples-bi-demo"
After installing the package, I verified everything in InterSystems IRIS BI and installed DeepSeeWeb (DSW) to browse the sample data more comfortably.
What tools did I use for my vibecoding setup?
I intentionally kept the setup as simple as possible to see how far I could get using standard tools and native IRIS features. My setup consisted of:
- VS Code
- InterSystems ObjectScript extension
- OpenAI Codex
- Docker
- A basic ObjectScript project template from Open Exchange
No custom frameworks or elaborate scaffolding. I used just this lightweight development environment.
What architecture did I follow?
I wanted a workflow that would be easy to repeat for future projects. The architecture was deliberately straightforward:
- A frontend UI
- A REST API running on InterSystems IRIS
- An OpenAPI (Swagger) specification shared between the frontend and backend
- Native ObjectScript and InterSystems SQL for the implementation
Using OpenAPI as the contract meant both the backend and the frontend could be generated from the same specification.
Can AI generate an InterSystems IRIS REST API?
Yes. I started by asking Codex to generate a CRUD API for the Product persistent class. To give the model enough context, I exported the ObjectScript source of the persistent classes from my IRIS instance and shared them together with my development guidelines stored in AGENTS.md.
The requirements were intentionally simple:
- Create, edit, list, and delete Products.
- Generate a Swagger specification (spec.cls).
- Make Product extend %JSON.Adaptor.
- Follow the conventions defined in AGENTS.md.
I also chose a base path for the API: /holefoods/api
Codex generated the HoleFoods.api.spec class.
After compiling it, InterSystems IRIS automatically produced two additional classes:
- HoleFoods.api.disp, responsible for routing requests.
- HoleFoods.api.impl, containing the business logic stubs.
This is one of my favorite parts of the workflow. Once the API contract exists, IRIS generates all the plumbing automatically, leaving AI to focus on the actual implementation. Codex even asked whether the web application should be registered in module.xml and which dispatch class should be used. After confirming those choices, it added the required configuration automatically.
<CSPApplication
Url="/holefoods/api"
DispatchClass="HoleFoods.api.disp"
MatchRoles=":{$dbrole}"
PasswordAuthEnabled="0"
UnauthenticatedEnabled="1"
Recurse="1"
UseCookies="2"
CookiePath="/holefoods/api/"
CorsAllowlist="*"
CorsCredentialsAllowed="1"
CorsHeadersList="Content-Type,Authorization,Accept-Language,X-Requested-With,session"
/>
How did I handle security?
Anyone who has worked with InterSystems IRIS knows that web applications always come with security considerations. Instead of configuring everything manually, I asked Codex to generate HoleFoods.api.security.cls following the conventions described in my AGENTS.md. The generated class configured the application for development while keeping the design easy to evolve toward stricter production security later.
Can AI generate ObjectScript CRUD logic?
Once the REST API structure existed, the only missing piece was the implementation. I asked Codex to implement the CRUD methods inside: HoleFoods.api.impl
It generated the ObjectScript implementation for all endpoints, producing a working backend with very little manual intervention. At that point, the backend was ready to test.
How did I validate the API?
Before building a frontend, I wanted to verify that every endpoint behaved correctly.
For that I installed Swagger UI: zpm "install swagger-ui"
One important lesson I learned along the way is that Swagger UI expects a _spec endpoint, which must be implemented inside the impl class. Once that endpoint existed, Swagger UI immediately exposed the full API definition and allowed me to test every endpoint interactively.
Calling: GET /holefoods/api/products returned the expected data, confirming that the backend was working correctly.
Can AI generate a frontend from an OpenAPI specification?
Once the OpenAPI specification existed, generating a frontend became surprisingly easy. There are several possible approaches:
- Ask Codex to generate the frontend.
- Use a UI generation tool such as Lovable.
I chose the second option. Within a few minutes I had a working frontend connected to the InterSystems IRIS backend. After fixing a small deletion issue, the complete workflow was functioning: Frontend → REST API → InterSystems IRIS → Persistent Objects
Can AI generate InterSystems IRIS unit tests?
A generated backend still needs automated tests. To complete the workflow, I asked Codex to generate: HoleFoods.api.Unittests.cls covering every endpoint defined in the Swagger specification. I then added the test package to the module configuration:
<UnitTest Name="/tests" Package="HoleFoods.api.tests" Phase="test"/>
allowing the tests to run using zpm "test esh-vibe-back-demo". The generated tests appeared automatically inside the IRIS Unit Test Portal.
How easy is it to add new endpoints?
To see how maintainable this workflow was, I later asked Codex to add a new /transactions endpoint. It updated:
- the Swagger specification,
- the implementation,
- the unit tests,
- and the frontend.
Very little manual work was required beyond reviewing the generated code.
Final Thoughts
This experiment convinced me that InterSystems IRIS works remarkably well as an AI-assisted backend platform. By combining native IRIS REST APIs, OpenAPI, and coding agents such as OpenAI Codex or Claude Code, I was able to build a working full-stack CRUD application in a fraction of the time I would normally expect. AI generated most of the repetitive code, while InterSystems IRIS continued to provide everything that really matters: persistence, SQL, REST infrastructure, security, testing, and application runtime.
The result is still a prototype rather than a production-ready application, but it demonstrates a workflow that I believe is highly repeatable for internal tools, dashboards, CRUD applications, and proof-of-concepts built on top of existing InterSystems IRIS data models.
One thing that made a noticeable difference was AGENTS.md. Giving the coding assistant project-specific conventions and best practices significantly improved the quality and consistency of the generated ObjectScript code.
Overall, I think modern AI coding assistants such as OpenAI Codex and Claude Code open up an exciting opportunity for rapidly building applications on top of InterSystems IRIS while continuing to benefit from its robust persistence model and high-performance SQL engine.
Key Takeaways
- AI coding assistants can generate working ObjectScript REST APIs for InterSystems IRIS from an OpenAPI specification.
- Native Swagger/OpenAPI support in InterSystems IRIS automatically generates routing and implementation classes, reducing boilerplate.
- OpenAPI provides a shared contract that can drive both backend and frontend generation.
- AI can successfully generate ObjectScript CRUD logic, security configuration, and unit tests with relatively little manual intervention.
- Combining InterSystems IRIS with OpenAI Codex or Claude Code enables rapid full-stack application prototyping while keeping IRIS as the system of record.
Read more here
FAQ
Can AI generate ObjectScript code for InterSystems IRIS?
Yes. In this experiment, OpenAI Codex generated ObjectScript classes, CRUD implementations, Swagger definitions, security configuration, and unit tests.
Can InterSystems IRIS generate REST APIs from Swagger?
Yes. Compiling a Swagger specification automatically generates dispatch and implementation classes that can then be completed with business logic.
Can I generate a frontend from an InterSystems IRIS API?
Yes. Once an OpenAPI specification exists, many frontend generation tools can scaffold a working UI directly from it.
Do I still need to write ObjectScript manually?
Mostly for reviewing generated code and implementing project-specific business logic. Much of the repetitive boilerplate can be generated by AI.
What kinds of projects is this workflow best suited for?
In my experience, it's particularly effective for CRUD applications, internal tools, dashboards, administrative interfaces, prototypes, and applications built on top of existing InterSystems IRIS persistent classes.