QUESTPIE

Schema

Everything in this group is something you declare in a file. The generator reads those files, and the database, the API and the client follow from them.

View markdown

Your schema is the part of QUESTPIE you write by hand. Everything else in the framework reads it.

The model in one paragraph

A collection is a database table. A global is a single row instead of a list, for the things a site has exactly one of. Both hold fields. A field decides three things at once. The column in Postgres, the control in the admin, and the validation on the way in.

The rest of this group changes what happens around your data, not its shape. Who may read a row. What runs before a write. How two tables point at each other.

What is here

PageWhat it covers
CollectionsTables. The one you reach for first.
GlobalsA single row. Site settings, a homepage, a footer.
FieldsEvery field type, its column and its admin control.
RelationsOne-to-many, many-to-many, and what loads with what.
BlocksStacked content a person arranges, rendered by your app.
Access controlWho may read, create, update and delete each row.
HooksCode that runs before or after a write.
ValidationRules beyond the field type, and the errors they return.
Soft deleteRows that leave the list without leaving the table.
SeedsRows a fresh database starts with.
Collaborative documentsTwo people editing one field without overwriting each other.

Before this group

These pages assume you have a collection already, and they go one topic at a time. If you have not written one yet, start with your first collection, which builds one end to end and puts a row in the database.

On this page