Skip to main content
Browse documentation

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

Available

Structured 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
  1. Model the content before styling it
  2. Choose field types that preserve meaning
  3. Add representative rows and relations
  4. Use AI data actions safely
  5. Verify the database result

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 #

TypeUse it forCheck
Text / rich textNames, summaries, formatted bodiesDo not store untrusted HTML where plain text is enough.
NumberPrices, counts, ratingsKeep currency or units in a separate field when needed.
DateEvents, publishing datesConfirm timezone expectations.
CheckboxPublished, featured, availableDefine what false means.
Select / multi-selectControlled categories and statesKeep option spelling stable.
Image, link, email, iconValidated media and destinationsAdd alt text or accessible labels at render time.
RelationA row in another tableDecide what should happen if the related row is removed.
Nested JSON / nested tableStructured values or child recordsUse only when a flat table or relation is less clear.

Add representative rows and relations #

  1. Create the table and its fields before connecting a component.
  2. Add at least three realistic rows: a normal case, a long-content case, and a missing-optional-value case.
  3. 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.
  4. Sort, filter and search the grid to confirm the chosen types behave correctly.
  5. 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 #

You will know it worked when values save and reopen with the intended field metadata, relation fields resolve to the intended row, a bound page updates after a row change, and public access cannot cross into another workspace or write without an authorized path.
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.