Build web apps with Claude Code
How Claude Code builds the screens and the routes together, publishes the app at its own address, and how you manage its versions.
On this page
Kareenos can be the backend, the automation layer and the host of a web application you build with Claude Code. You describe the application, Claude Code writes both the screens and the server logic that serves them, and Kareenos publishes the result at its own address: https://<app name>.kareenos.com.
Where to find it
Press Open in Kareenos above, or open Settings and choose the Apps & K-APIs tab. Every application your account publishes appears there with its address, its routes, its users and its versions. Registering an application needs an account administrator. Claude Code needs the connector from Connect Claude Code.
How the pieces fit
An application on Kareenos has two layers, and Claude Code builds them together, feature by feature:
- The screens. A single-page web application (Vue 3 with Quasar is the recommended stack). It runs in your users' browsers and is served by Kareenos.
- The routes. Each thing a screen needs to do (sign up, sign in, list my orders, place an order) is a route. A route runs an automated job you own, and that job is the door to everything in your account: it reads and writes your sheets, sends a WhatsApp message or an email, asks one of your agents a question, raises an event other agents react to, records a location, and more. The screens never touch any of that directly.
Because the routes are yours, the application's data lives in your Live Workbooks, next to everything else. Your dashboards, reports and agents see the same rows the application writes, and the in-app Super Agent can extend the application later. Claude Code is told, in the connector's own guide, never to keep application data anywhere else.
Step by step: from an empty folder to a live address
- Tell Claude Code what the application is for and who its users are. Ask it to read the connector's guide first (it does this on its own with
kareenos_context). - Claude Code registers the application. The name becomes the address: lowercase letters, digits and hyphens only, and it must be free across the whole platform.
acme-shopbecomeshttps://acme-shop.kareenos.com. - Claude Code builds each feature in order: the sheet, the route and its job, then the screen, then a test call of the route. Review the plan it proposes before it starts.
- Claude Code builds the screens into a bundle and pushes it as a version. The push goes live right away unless it was asked to stage it.
- Open the address in a browser and try the real flows: sign up, sign in, the business screens. Report what to change and let Claude Code push the next version.
Managing versions yourself
From Settings, Apps & K-APIs, press Versions on an application to see every pushed version, which one is live, who pushed it and when. From there you can:
- Activate an older version to roll back, or a staged one to go live.
- Redeploy the current version if the address is not serving what you expect.
- Upload a bundle by hand (a zip of the build output with
index.htmlat its top level). - Probe the address to confirm it serves the current version.
Disabling Hosting on an application takes the address down while keeping its routes and users; disabling the application takes both down. Deleting an application removes its versions and its users. Prefer disabling when in doubt.
Note
The address serves the application's screens only. The routes run on Kareenos, and the application's secret key never leaves Kareenos: only the public application key and each user's own session travel to the browser.
Common mistakes
- A name that is taken or invalid. The address must be a free, valid label. Claude Code gets a clear message and picks another.
- Zipping the wrong folder. The bundle must contain
index.htmlat its top level. Claude Code zips the build output folder, not the project folder. - Expecting the address to change instantly. A new version is picked up on the next page load, within seconds. Press Probe in Versions to confirm.
- Keeping data in the browser or in a private table. Application data belongs in sheets. If a screen needs data, it needs a route.