AppSheet turns a spreadsheet into a phone app with forms, list and detail screens, offline use, photo and barcode capture, and bots that send email or run on a schedule. For one person's one app you can skip the builder and have an agent write that app directly as an installable web app on SQLite, in a weekend. The weekend goes on offline edits that sync without losing rows, camera and barcode capture over HTTPS on a phone, and two-way Google Sheets sync within API quotas. If you need a platform other people can edit, self-hosted Appsmith or Budibase is a shorter road than writing one.
Before you buildAppSheet lets you build and test with up to 10 users at no cost and with no time limit, so check whether your app already works there before paying $5 a user.
Build me a personal field-data app to replace AppSheet for one app. Requirements: - Node.js 22 + TypeScript: a Fastify API and a React front end built with Vite, installable as a PWA (`vite-plugin-pwa`). `npm start` serves http://localhost:4980; phones need HTTPS for the camera, so the README covers that. - The app is defined in ./apps/<name>.yaml: tables with typed columns (text, number, date, enum, reference, photo, signature, barcode), a list view, a detail view and a form per table, and required, default and computed rules written as expressions (`expr-eval`). - Storage: better-sqlite3 at ./data/<name>.db, photos in ./data/files/. CSV import with type guessing and CSV export per table. - Offline first: the PWA keeps rows in IndexedDB (`dexie`) and queues edits. POST /api/sync takes a batch with client-generated UUIDs, resolves conflicts per row by newest `updated_at`, and lists every overwritten version on a Conflicts page. - Capture: camera photos downscaled to 1600 px, barcode scanning (`BarcodeDetector`, with `@zxing/browser` as fallback) that fills a column, and a signature pad stored as PNG. - Automations in the same YAML: on row added or changed, or on a cron schedule (`node-cron`), send an email (`nodemailer`, SMTP in .env), POST a webhook, or write a PDF report of chosen rows (`pdfkit`). - Optional Google Sheets mirror with GOOGLE_SERVICE_ACCOUNT_JSON and a sheet id in .env: pull every 5 minutes, push changes with `googleapis`, one tab per table, header row = columns. - One shared password in .env (signed cookie) and a read-only flag per table. No accounts. - No telemetry, local-first. Out of scope: a visual app editor, per-user row filters, native apps, machine learning features. - README: reaching the app from a phone over Tailscale or a VPS with Caddy, the service account setup, and backing up ./data.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own AppSheet.
Extend the field-data app in this folder. Requirements: - Replace the shared password with an email allowlist per app and magic-link sign-in through the SMTP settings in .env; sessions are signed cookies. - In the app YAML, a table can set `rows: owner = me`, and the API enforces it on every read, write and sync, not only in the UI. - Add an Admin page listing users and the rows each owns. - Update the README.
Extend the field-data app in this folder. Requirements: - In the YAML, a barcode column can name a lookup table; a scan finds the matching row by code and copies the listed columns into the new record. - Import lookup tables from CSV and keep them readable offline in IndexedDB. - If no row matches, keep the code and open the form with the other fields empty. - Update the README.
Extend the field-data app in this folder. Requirements: - Add a `digest` automation type: every Monday at 08:00 (cron in the YAML) email a table of rows created or changed in the last 7 days, grouped by a column you name. - Attach the same rows as a CSV and a PDF (`pdfkit`). - Skip the email when nothing changed and log that to the console. - Update the README.
Teams already in Google Workspace get an app builder beside Sheets, with sign-in, roles and per-user licences handled by their IT admin, and it comes with most paid Workspace plans. Non-developers can change an app after it ships, which a generated codebase does not allow.
Estimate · Free on a tunnel or Tailscale; a small VPS is about $5 a month. The build is token usage on your agent plan, higher if you add the Sheets mirror.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free prototype | $0 | $0 | Full app editor and process designer; up to 10 test users. |
| Starter | $5/user | — | Basic app and automation features, connections to spreadsheets and cloud file storage, AppSheet database (5 databases of up to 2,500 rows). |
| Core | $10/user | — | Advanced app and automation features such as barcode scanning, NFC, webhooks and scheduled automations, security controls, email support, 10 databases of up to 2,500 rows. |
| Enterprise Plus | $20/user | — | Cloud databases, APIs and SaaS connectors, machine learning modeling, governance and team controls, priority support, 200 databases of up to 200,000 rows. |
| Publisher Pro | $50 | — | Core features for a public app with unlimited users; no sign-in options and no security filters. |
Build and test apps with up to 10 test users at no cost, with no time limit.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Google Workspace sign-in and sharing with teammates by email, Ready connectors for Sheets, Excel, Airtable, Salesforce, SQL databases and REST APIs.
About $5 a month on the Starter plan per seat, $60 a year (checked 2026-10-19).
Google Workspace sign-in and sharing with teammates by email; Ready connectors for Sheets, Excel, Airtable, Salesforce, SQL databases and REST APIs; Role-based access and per-user row filters; Machine learning features such as OCR and predictions; A visual editor that non-developers can use to change the app later. If any of those matter to you, keep paying.
Yes: Appsmith (open source), Budibase (open source), ToolJet (open source).