Platform
The architecture is already there.
AppMaker is an opinionated platform for structured, data-driven business applications. Forms, data, server logic, users, workflows and deployment each have a defined place. The AI concentrates on your app's functionality instead of reinventing infrastructure, and you always know where to look.
- FormsScreens the user sees
- ControlsGrids, inputs, charts, maps, tabs
- Client JavaScriptBehaviour in the browser
- Server JavaScriptLogic next to the data
- DatabaseBuilt in. Tables, SQL, seed rows
- APIsEndpoints you expose, services you call
- Sign-in and rolesUsers, roles, access to menus and APIs
- Workflows and jobsLong-running, scheduled and background work
- Secrets and filesEncrypted keys, uploads and downloads
One project, the whole application
An AppMaker application is not a folder of arbitrary files. It is a structured model that the designer, the runtime and the AI all understand. Every project has the same shape, so the next person, or the next AI task, can find their way around.
Less boilerplate by construction
There is no database to provision, no sign-in to wire up and no data layer to write before the first screen works. A server function returns rows, a grid binds to it, and that is the whole path.
What the platform provides
Forms and UI
32 ready-made widgets, from inputs and data grids to charts, maps and tree views. Six app shells for menus and navigation, and layouts that grow and scroll on phones.
Responsive web apps; no native app-store builds.
Database and data models
Every project has its own SQLite database. Design tables, relationships and indexes in the Data view, add seed rows, and query with SQL.
Schema changes are applied additively rather than by dropping tables.
Business logic and SQL
Server scripts in JavaScript run next to the data. Query with dbQuery and dbRun, or the sql tag that binds values as parameters. Forms call server functions with server.callFunction.
Sign-in, users and roles
Turn on sign-in for your app with email and password, open registration or invitation only, and manage users from a built-in page.
Roles control which menu items and APIs a user can reach. Rules about data are checks you write in server scripts.
Workflows, jobs and background work
Model long-running processes in a visual workflow editor, schedule scripts to run at intervals or daily, and move slow work to background runs with progress and cancelling.
Secrets and integrations
Keep API keys, tokens and passwords in the Secrets panel, stored encrypted and read from scripts with getSecret, instead of in your code. Call external services from server scripts.
APIs and files
Expose server functions as REST endpoints with routes, access rules and API keys. Store uploads and serve downloads from the built-in file store.
Deployment and portability
Download a project as a standalone Node.js application, with the runtime and your project but without the designer, and run it on a server of your own. Projects also export and import as .zip files.
AI working inside the architecture
The AI agent works on the same project you edit in Design mode. It creates forms and scripts, designs tables and seed data, sets up sign-in and roles, defines secrets by name without ever seeing their values, runs your server scripts and tests the app in a real browser.
Every project keeps automatic checkpoints. That is what lets each AI task end with a report, a list of what changed, Undo and Rewind.
The structure gives the AI a consistent place for every change. It does not make AI output correct by itself: review and test what it builds, as you would any code.
For developers who know RAD tools
If you have built software with Delphi, Visual Basic or .NET WinForms, Design mode will feel familiar. A screen is a form, controls have properties and events, and an event handler can call the server. The APIs are deliberately small and classical, so there is little boilerplate between an idea and a running screen, whether you or the AI writes the code.
-
Drag and drop
Place controls on a form and set their properties in the Inspector.
Button · Input · Grid -
Code behind
Every form has JavaScript behind it, and each control is reachable by its id.
txtName.value -
Event handler
Double-click an event in the Inspector and its handler is written for you.
btnSave_OnClick(…) -
Server script
From the handler, call a function in a server script and await its result.
server.callFunction(…) -
Database
The server script reads and writes the project's built-in SQL database.
dbRun(sql, params)
-
Form designer
Lay out forms and controls visually. Bind a grid to a server-script function in one property.
-
Client JavaScript
Handle events, validate input, call the server. Standard language, standard tooling.
-
Server JavaScript and SQL
Run logic close to the data. Query the built-in database, call services, return results.
-
APIs in and out
Consume third-party APIs from the client or server, and expose your own endpoints.
-
Low boilerplate, simple APIs
A clean imperative API and a classical, easy-to-learn architecture, instead of clever abstractions that take advanced skills to follow.
// Runs in the browser. A handler is named after its control and event.
async function btnSave_OnClick(sender, e) {
if (!txtName.value.trim()) {
showToast('Enter a name.', 'warning');
return;
}
const saved = await server.callFunction('customers.save',
[txtName.value, txtEmail.value, cmbPlan.value]);
showToast(`Saved ${saved.name}`, 'success');
}
function cmbPlan_OnChange(sender, e) {
lblRenews.visible = cmbPlan.value !== 'Free';
}
// Runs on the server. Talks to the built-in database.
async function save(name, email, plan) {
await dbRun(
`INSERT INTO customers (name, email, plan, owner_id) VALUES (?, ?, ?, ?)
ON CONFLICT (email) DO UPDATE SET name = excluded.name, plan = excluded.plan`,
[name, email, plan, user.id]
);
const [row] = await dbQuery(
'SELECT id, name FROM customers WHERE email = ?', [email]);
await runBackground('crm.syncCustomer', [row.id]);
return row;
}
The client and server JavaScript API shown here is in active development and may change during the beta.
- AppMaker
- Build with AI
- Refine in Design mode
- Test
- Export
- Standalone Node.js application
- Run it on a server you choose AzureAWSGoogle CloudDigitalOceanHetznerYour own server or VM
Your application is yours
The productivity of a platform, without being tied to it.
- Standalone Node.js. The export contains the AppMaker runtime and your project. The app creates its own database when it first starts.
- Your choice of server. A cloud provider, a virtual machine or a box under your desk: anywhere Node.js 24 runs.
- Keep going either way. Continue in AppMaker and export again, or take the files and carry on outside it.
What AppMaker is not
Not a general-purpose coding environment
It builds web business applications on its own runtime. For arbitrary stacks and fully bespoke architectures, a general coding tool is the better fit. Compare.
Not native mobile
Phone-friendly layouts are responsive web apps. There are no app-store builds.
Not for production during the beta
AppMaker is in public beta, intended for evaluation and development. Read the terms.