Fronty documentation
Create tables, fields, rows, and relations
Model structured website content with fields, add useful seed rows, connect related records, and keep sensitive data out of public tables.
Last verified
Availability
AvailableStructured tables, rows, relations, import/export and live updates are implemented. Limits vary by plan.
- Plans
- All plans with different table, row and storage allowances.
- Roles
- A member with database edit permission.
- Before you start
- A website and a clear idea of the repeated thing you are modeling.
On this page
Model the content before styling it #
Create one table for one kind of record: products, posts, team members, events, locations or pricing plans. Each row is one record and each column describes one property shared by those records.
Name fields for meaning rather than appearance. Use price,
published and hero_image, not right_text or
blue_box. A durable data model survives a redesign.
Choose field types that preserve meaning #
| Type | Use it for | Check |
|---|---|---|
| Text / rich text | Names, summaries, formatted bodies | Do not store untrusted HTML where plain text is enough. |
| Number | Prices, counts, ratings | Keep currency or units in a separate field when needed. |
| Date | Events, publishing dates | Confirm timezone expectations. |
| Checkbox | Published, featured, available | Define what false means. |
| Select / multi-select | Controlled categories and states | Keep option spelling stable. |
| Image, link, email, icon | Validated media and destinations | Add alt text or accessible labels at render time. |
| Relation | A row in another table | Decide what should happen if the related row is removed. |
| Nested JSON / nested table | Structured values or child records | Use only when a flat table or relation is less clear. |
Add representative rows and relations #
- Create the table and its fields before connecting a component.
- Add at least three realistic rows: a normal case, a long-content case, and a missing-optional-value case.
- Create a second table only when the related record has its own lifecycle. Connect it with a relation rather than copying the same value into many rows.
- Sort, filter and search the grid to confirm the chosen types behave correctly.
- Check plan usage before a large import. Validate a small sample first.
Use AI data actions safely #
Create starter data, add rows, fill gaps, add fields, and replace rows have different consequences. Read the selected mode before confirming it. Replacing rows is destructive to the current row set even when the columns stay intact.
AI-generated seed data is for layout and workflow testing. Replace invented people, claims, addresses, prices and images before publishing. Never paste secrets, payment data, health information or credentials into a public-site content table.
Verify the database result #
- A value sorts incorrectly
- Check that the column uses number or date rather than text.
- A relation appears empty
- Confirm the referenced row still exists and the component maps the resolved field.
- A public list is empty
- Check the table binding, filters, published state, row allowance and public read token.