CheckReport Demo — A Field Inspection App for Your Phone
A free app that turns a paper inspection sheet into one phone flow — pick a facility, fill the form, export an A4 report. Open the link and it just runs. No server, no subscription.
Built with
- Google Apps Script
- HtmlService
- Google Sheets
- Google Drive
- LockService
- Cloudflare Pages
- Playwright
Architecture
The UI runs on Google Apps Script (HtmlService), and the data lives in a single Google Sheet shared by several inspectors. Saves are ordered with ScriptLock, and a client-generated idempotency key blocks duplicate writes. Photos are stored as metadata only — the files go to Drive, not the cells. The A4 report exports as a PNG in the browser, or a print-ready PDF. A Cloudflare Pages wrapper handles the public URL and the installable app shell.
This app turns a paper inspection sheet into one flow on your phone. Open the link and you land on the app, not a description page. Pick a facility, fill out the form, attach photos, and export an A4 report — the whole thing, end to end.
No server, no database, no monthly subscription. It all runs inside a Google account.
One inspection, five steps
1. Pick a facility. The list and status the inspector needs, on one screen.

2. Choose the inspection type. Defaults like capacity and type are filled in from the facility data.

3. Fill the form. Mark normal / caution / action plus a note, and it auto-saves a draft. Close the app by accident and your input survives.

4. Attach photos. The photo body never goes into the sheet — only metadata does.

5. Export the report. See the whole report, per-form, and field photos as one A4 page, then take it as a PNG image or a print-ready PDF. This last step — going all the way to a report, not stopping at input — is the point.

The value of an inspection app isn’t a pretty input form. It’s shared data that doesn’t break and the last step out to a report.
The one thing a single-user app doesn’t have
Good Thought Card keeps each person’s data on their own device. An inspection app is different: several inspectors write to the same sheet at the same time. So if two people save at the same moment, or someone retries after a dropped connection, the records can’t break.
This demo handles that on the server, not the screen: saves are locked one at a time (ScriptLock), an idempotency key filters duplicates, and only safe values reach the cells. The implementation, with code, is in the technical note.
Why it costs nothing to run
- No install, no server — open the link, use it on your phone.
- The Sheet is the shared DB — records, status, and completion pile up as rows.
- Drive is the photo store — no separate file server.
- The report stays inside GAS — A4 out as PNG and PDF.
Instead of renting a subscription every month, you build it once and own it inside a Google account.
Read more
- For buyers — What makes a multi-user inspection app different
- For developers — An app where many people write one Sheet: concurrency, duplicates, export