Website database
A real table behind your site — with dates that are dates and images that are images.
Step-by-step documentation Create tables, fields, rows, and relations{
"altitude": 1950,
"process": "washed",
"notes": ["cocoa", "fig"]
}
Behind every Fronty site is a real database. Not a page full of cards you keep in your head — tables, with rows and columns, that the pages read from.
The part that matters is the column type. A column is not just a place to put text: it knows what it holds, and the grid edits it accordingly. That is what stops a date being a string that sorts alphabetically, and a price being something you cannot add up.
The types
- Text and rich text, for a name and for a body with formatting in it.
- Number, which sorts and filters as a number.
- Date, edited with a date picker.
- Checkbox, for the yes/no columns — published, featured, sold out.
- Select and multi-select, for a fixed set of options rather than whatever someone types.
- Image, uploaded into the cell and shown as a thumbnail.
- Link and email, validated as what they claim to be.
- Icon, picked from the library rather than pasted as a class name.
- Nested JSON, for the shapes that are not flat — a set of social links, a list of specifications — opened in its own editor rather than dumped as unreadable text.
- Relation, a cell that points at a row in another table — a product at its category, a booking at a customer — so the linked record lives once.
- Nested table, for records that belong to this row: line items on an order, variants on a product, opening hours on a location.
What you do with a table
- Bind a card to it and get one card per row, in your design.
- Have AI fill it from a description.
- Point a form at it, so every submission becomes a row.
- Relate tables to each other, or nest a table inside a row.
- Sort, filter and search it in the grid, and edit cells in place.
Connecting an element to a column is the moment the table stops being storage and starts being the page. The element no longer holds text you typed — it holds a question, answered again for every row.
How to do it
- Open Database in the dashboard and create a table.
- Add your columns, choosing a type for each.
- Fill in rows — by hand, from a form, or with Suggest data.
The whole path from there — one card for every row, and a page of its own for each of them — is written up in how to connect a website to a database.
What it costs
Included on every plan, including the free one. What changes is how many tables and rows you get — see the pricing page.