The everyday screen - open a project, fill in its form, generate a PDF.

Opening a project

From the Projects list, tap a project (or its preview icon) to open it straight into its form. The app remembers the last project you had open and reopens it directly on next launch.

If the project fails to load (missing/invalid form.json, for example), you'll see an error with a button back to the Projects list rather than a blank or broken screen.

The form

Fields render top to bottom in the order they're defined. Depending on type:

Field type What you see
Text A text box, with length/pattern validation if the form defines it
Number A text box restricted to numeric entry, with min/max validation if defined
Currency A text box formatted as currency
Date A text box you can type a date directly into, plus a calendar-picker icon
Dropdown A picklist of the options the form defines
Checkbox A simple on/off switch
File A file/photo picker (e.g. a vehicle photo)
Signature A signature capture panel - see below
Repeating Group An "Add row" list of sub-fields - see below

Autocomplete. Some fields (marked by whoever built the form) suggest values as you type, drawn from that project's autocomplete.json - a list the form's author curates ahead of time (see the Form Editor), not something that grows from what people type in. Pick a suggestion or keep typing your own value - either is fine.

Validation. Two layers can reject a submission:

Fix what's flagged and try again - nothing is generated until every check passes.

Signature fields

Tap a signature field to open the capture panel. Two modes:

Either way, use Clear to start over, and confirm to apply it to the field. Both modes preserve the signature's proportions - nothing gets stretched or cropped to fit.

Repeating groups

Fields like a list of installed options or line items are repeating groups - an "Add {label}" button appends a new row, each with its own set of sub-fields, and every row gets a Remove button. There's no fixed number of rows; add or remove as needed.

Generating the PDF

The Generate action (however the form's layout exposes it - commonly a button or the primary action) runs, in order:

  1. Static validation - the required/min/max/format rules from the form itself.
  2. Cross-field validation - any custom script logic the project defines.
  3. Layout assembly - the project decides which layout pieces to include (for example, only showing a "Certified" badge when that checkbox is on).
  4. Render - the assembled layout is drawn onto the page and saved to the project's output/ folder.

If it succeeds, you land on PDF Preview.

Nothing about the submission itself is saved anywhere - the generated PDF is the record. Nothing is added to autocomplete.json either; that list only ever changes when the form's author edits it directly.

Other actions on this screen