Show HN: AppMaker – a visual JavaScript app builder AppMaker launched in beta as a free visual full-stack JavaScript development environment that lets users design forms visually, write client and server JavaScript, query a built-in database with SQL, and export a standard Node.js application to host anywhere. The tool includes built-in authentication, jobs and workflows, and APIs, with AI assistance described as "on its way." AppMaker's client and server JavaScript API is in active development and may change during the beta. AppMaker is a visual full-stack development environment. Design the UI visually, then go as deep as you want with JavaScript, SQL, APIs and server-side logic. The database, authentication and jobs are already part of the project. AI assistance is on its way. AppMaker is in beta. Free to use. Export a standard Node.js application and host it anywhere. Free to use Fully programmable Low boilerplate Built-in database Exportable Node.js apps Host anywhere See AppMaker in 60 seconds Open a project, design a form, wire it to data, write a little JavaScript, run it. appmaker quick intro.mp41:19 Visual when it helps. Code when you need it. Compose the interface with the form designer. Then write ordinary JavaScript on the client and on the server, query the database with SQL, call external APIs or expose your own. The designer is a head start, never a ceiling, and the APIs stay small enough to learn in a day. 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. Form DesignerClient JavaScriptServer JavaScriptRunning application CustomerCancelSave NameAcme IndustrialEmail email protected PlanTeamRenews2026-11-01NotesRenewal call scheduled with procurement. // Runs in the browser. Same form, same control names. async function saveCustomer { const errors = validate ; if errors.length return showErrors errors ; const saved = await server.callFunction 'customers.save', data1, data2 ; txtName.focus ; showToast Saved ${saved.name} ; } // WinForms style event handling async function cmbPlan onChange sender, e { lblRenews.visible = cmbPlan.value == 'Free'; } // Runs on the server. Talks to the built-in database. async function save input { const row = await dbRun INSERT INTO customers name, email, plan, owner id VALUES $1, $2, $3, $4 ON CONFLICT email DO UPDATE SET name = $1, plan = $3 RETURNING id, name , input.name, input.email, input.plan, user.id ; await runBackground 'crm.syncCustomer', { id: row.id } ; return row; } crm-demo.example.com/customers/acme CustomerCancelSave NameAcme IndustrialEmail email protected PlanTeamRenews2026-11-01NotesRenewal call scheduled with procurement. Saved Acme Industrial The client and server JavaScript API shown here is in active development and may change during the beta. One project. The whole stack. An AppMaker application is not a folder of arbitrary files. It is a structured model of forms, scripts, data, APIs and jobs that the designer, the runtime, and AI all understand. Application FormsScreens the user sees ControlsGrids, inputs, charts, tabs Client JavaScriptBehaviour in the browser Server JavaScriptLogic next to the data. Feeds forms and grids DatabaseBuilt in. Tables, SQL, migrations APIsEndpoints you expose and services you call AuthenticationUsers, roles, sessions Jobs / WorkflowsScheduled and background work ConfigurationSettings, secrets, environments A database is already there Every application ships with a built-in database. Create tables, write SQL, bind results to a grid, and you have a working data-driven app. No separate database to provision, no connection strings to wire up before the first screen works. Server scripts feed the UI There is no separate data-source layer. A server-script function returns rows, controls bind to it, and it is easy for both people and AI to reason about. Change the query in one place and every form that uses it follows. Authentication, jobs and configuration are first-class Users, roles and sessions are part of the project, not an afterthought. Scheduled jobs and workflows run in the same environment as the rest of your code. Configuration and secrets stay separate from application logic. AI is better when it doesn't have to invent the architecture. Most AI app generators start from a blank canvas and produce a large amount of code that nobody designed. AppMaker is built to give AI the same first-class concepts a developer works with, so generated and assisted changes will land inside a known structure. AI assistance is coming soon Changes will land in a known architecture. An AI edit adds a form, changes a server script or exposes an API. It does not scatter files. You can read what happened. Generated or modified pieces are named project concepts, reviewable in the designer or in code. Humans and AI will share one project model. Keep editing visually or in JavaScript after AI has touched it. Nothing is regenerated from scratch. The structure is the guardrail. Authentication, data access and configuration have defined places, so AI works within them instead of around them. Add an overdue-invoices view for account managers addedServer Scriptinvoices.listOverdue addedFormOverdueInvoices modifiedFormDashboard modifiedAuthenticationrole: account manager addedJobinvoices.remindOverdue Illustration of how an AI change will be described once assistance is available. AppMaker in the age of Claude, Replit and Lovable. Prompt-to-app tools can turn an idea into a working prototype in minutes, and that is genuinely useful. The harder question comes later: what are you holding once the prompt is done? A pile of generated code with an architecture nobody chose, or an application you can still understand, change and run a year from now? AppMaker is built for the second answer. Structure first, then generation Every AppMaker project has the same shape: forms, controls, client scripts, server scripts, a database, APIs, authentication and jobs. Whether a piece is written by you or by an AI, it lands in a known place, and the next person can find it. Changes you can make by hand A form opens in the designer, a script opens in the editor, a table opens in the database view. There is no framework maze to decode before a small change is safe to make. Human edits and generated edits live in the same project model. Your code, your tools, your hosting Export a standard Node.js application whenever you like. Open it in your editor, point a coding agent at it, run it on any host. No credits to buy, no per-seat plan, no vendor cloud you cannot leave. AppMaker is not made for vibe-coding. It is made for programmers who appreciate the productivity, control and determinism of RAD tools, and who want to keep all three now that AI is part of the workflow. Sketch with a prompt if you like, then build the real thing on an architecture you can keep. Your application is yours. AppMaker is a development environment, not a hosting trap. When you are ready, export the application as a standard Node.js project and run it on the infrastructure you already trust. AppMaker Design Build Test Export Standard Node.js application Host anywhereAzureAWSGoogle CloudDigitalOceanHetznerYour own server or VM The productivity of a development platform, without platform lock-in. Standard Node.js. The export is a regular Node.js application with its own code, assets and database schema. Run it where Node runs. Any host. A cloud provider, a container platform, a virtual machine, or a box under your desk. There is no requirement to run production on AppMaker infrastructure. Keep going either way. Continue in AppMaker and export again, or take the code and carry on outside it. Or run the platform privately. For companies, AppMaker itself can be installed on dedicated private infrastructure, so projects and data stay inside your network. bash $ unzip crm-demo-export.zip && cd crm-demo $ npm install $ npm start crm-demo listening on http://localhost:3000 Business apps for everyone who builds them. Most low-code platforms are made for corporate IT departments: priced per seat, sold through procurement, tied to one vendor's cloud. The RAD tools that once let a single developer ship a business application have largely disappeared into those suites. AppMaker brings that way of working back, and keeps it open to anyone. Independent developers and entrepreneurs Build the invoicing tool, the booking system or the client portal yourself. No seat licences, no enterprise sales call. Export the application and host it wherever you like. Hobbyists and learners Pick up the form, control and event model in an afternoon. Start from a built-in example, change it, run it, and grow it into something real at your own pace. Companies and internal tools Ship internal tools quickly with a model your team already understands. AppMaker can also be installed on dedicated private infrastructure, so projects and data stay inside your network. Free to use. No platform subscription. Use AppMaker for free. Optional AI assistance is coming soon and will be usage-based. AI assistance in the Designer is not available yet. When it arrives it will be optional and you will pay only for what you use. Everything else in the platform works the same without it. AppMaker is in beta and currently offered free of charge, and is intended to remain free for the foreseeable future. Optional services, such as AI assistance once it becomes available, may have associated costs. Need AppMaker in a different shape? The hosted platform covers most projects. When it doesn't fit the way you work, talk to us. We have set AppMaker up in a few unusual places already and are happy to look at yours.