Forms are the schema layer in Lagniappe. They define what fields a page or task has, how values are entered, and how those values appear in tables, filters, search, imports, and AI prompts.

They also classify records. A page with an “Invoice” form is a different kind of thing from a page with a “Contact” form, even if both live in the same category.

What Forms Are For

  • Data entry: fields for text, numbers, dates, selects, checkboxes, tables, locations, links, signatures, HTML blocks, and more.
  • Tables: form fields can become sortable or filterable columns.
  • Content types: different forms let one category hold several related record types.
  • Permissions: a form can be restricted so pages or tasks using it are hidden from users outside allowed groups.
  • AI context: form schemas tell AI what information should be extracted or generated.

Example

A “Properties” category might contain pages with different forms:

  • Property — address, owner, insurance renewal, tax parcel
  • Vendor — trade, phone, rate, documents
  • Lease — tenant, start date, deposit, renewal terms

You can browse the whole category, or filter to just one form and work with fields specific to that type.

Building Forms

Forms can be built by hand in the form builder or generated from a description with AI. AI is great for getting a first draft on the page; it is worth a quick pass over field types, labels, required fields, and permissions before using the form for important data.

The app tracks schema versions, so adjusting a form later is fine. For bigger structural changes after a lot of data is already entered, it is worth reviewing how existing records should carry forward.

Good to Know

A few situations where forms are not always the perfect fit:

  • Deeply relational data is often happier in a dedicated database.
  • Very spreadsheet-heavy workflows can feel a bit constrained.
  • A long list of nearly identical forms can make search and filtering harder to reason about.
  • Restricted forms are powerful, and they reward a quick test with a real non-owner account.