Describe an app. Get working code you own.

A rule-based planner and tested templates build the project on your device. An on-device model is optional, never required, and never a cloud service.

Pocket LedgerExpense trackerExample — not saved until you change it

Runs on this device in under a second. Ctrl+Enter also generates.

What the planner understood

Confidence100%
  • expensemeansExpense tracker template
  • ledgermeansExpense tracker template
  • Pocket Ledgermeansapp name
  • greenmeansprimary colour
Feasibility, templates and prompt history

Feasibility

  • NATIVECharts
  • NATIVEExport CSV / JSON
  • NATIVELight and dark theme
  • NATIVEResponsive layout
  • NATIVESave data on the device

Start from a template

Picking a template keeps the name, colours and fields from your description.

Prompt history

Off by default. Prompts are only kept in this browser if you turn this on.

index.html
Sandboxed · network off · fits 772px

App type

Expense tracker — Income and spending by category with a monthly chart.

Pages and sections

  • index.html
    1. App (Expense tracker)

Drag sections to reorder, or use the arrow buttons. Navigation links are generated for every page.

Wireframe

Component library (8)

Native <dialog> with focus return, Escape to close and a labelled title.

<button class="btn btn-primary" type="button" data-open-dialog="demo-dialog">Open dialog</button>
<dialog class="c-modal" id="demo-dialog" aria-labelledby="demo-dialog-title">
  <h2 id="demo-dialog-title">Delete this project?</h2>
  <p>This removes it from this device. You can export a copy first.</p>
  <div class="c-modal-actions">
    <button class="btn" type="button" data-close-dialog>Cancel</button>
    <button class="btn btn-primary" type="button" data-close-dialog value="confirm">Delete</button>
  </div>
</dialog>

How it works

Type what you want in plain words. The planner reads your description and shows what it understood: the kind of app, its name, pages, data fields, colours and any feature that a static site cannot honestly deliver, such as logins or payments.

It then composes a multi-file project from audited templates — separate HTML pages, a tokens.css file for the design, shared helpers and one script per feature. The preview runs that code in a sandboxed frame with no network access and no access to this site’s storage.

Change anything: edit files directly, adjust colours and copy in the Design tab, reorder sections in the Plan tab. Every change can be undone, and named versions are kept in your browser’s IndexedDB until you delete them.

What “local-first” means here

Your prompt, your files and your versions stay on this device. The site is static: there are no server routes that receive your work, and the export is generated in the page as a ZIP download.

If you turn on the optional on-device model, the page downloads a pinned runtime and model weights from public CDNs — those requests carry no prompt or project content — and inference runs on your GPU through WebGPU. Without WebGPU, everything else still works.

What it will not do

Generated apps keep data in the visitor’s own browser. They cannot authenticate users, take payments, send email or sync between people, because those need a server. The planner flags these requests up front instead of producing something that looks finished but is not.

Frequently asked questions

Is AIWebApp free?

Yes. The builder, templates, preview and export are free to use without an account. Usage is limited only by your browser’s memory and storage.

Do I need a GPU or an AI model?

No. The default path is a deterministic planner plus templates and works in any modern browser. The on-device model is an optional add-on that needs WebGPU.

Who owns the generated code?

You do. The exported project has no runtime dependencies and no licence restrictions from AIWebApp templates.

Where are my projects saved?

In this browser’s IndexedDB on this device. They are not synced. Export a ZIP to back up or move a project.