Data grid
The data grid is Grid mode pointed at a database table: the same spreadsheet surface — typed cells, range selection, fill down, find & replace, one batched Save — but the rows come from a live database instead of files in your project. Use it to check what visitors have submitted, fix a bad value, seed test rows, or clean out old data.

Open a table
Click Open Data Grid in the action row of Settings > Connections or Settings > Data Tables . The picker lists every grid-able source in one place — pages and content collections under Project , then a Data group per connection with its tables. A connection with no tables yet shows "No tables — push a schema first": define and push in Data tables , then come back.
Each table opens as its own tab, so you can keep a grid alongside the page you're building.
Read the columns
Columns come straight from the real database, so the grid always shows what's actually there — including columns your schema no longer mentions, and the account tables the auth extension creates. Three columns are managed for you and read-only: the id column (pinned at the left) and the
created_at
/
updated_at
timestamps. Everything else edits with the control its type calls for — text, number, checkbox for booleans, a date field for dates; structured values show as JSON text.
Page through rows
Big tables aren't loaded whole: the grid shows 50 rows at a time, with ‹ Prev / Next › and the current range next to the total count in the toolbar. The Filter rows box searches within the rows currently loaded — use the pager to move through the rest. Per-column filters and click-to-sort, which file grids offer, aren't available on database grids yet.
Edit, add, delete
Editing works exactly as in Grid mode — double-click a cell, edit ranges, Fill Down , Replace , undo and redo — and nothing touches the database until Save :
Add Row appends a pending row; fill in its cells (required fields must be provided).
Delete Rows marks the selected rows; they're removed on save, after a confirmation.
Save ( ⌘S / Ctrl+S ) writes the whole batch — the button counts your pending changes.
On save, each row becomes its own write to the database. Rows that succeed are done; a row the database refuses — a missing required value, a wrong type — stays pending with the reason attached to its cells, so you can fix it and save again. There are no stale-file checks here because there are no files: the database itself is the authority, and Refresh re-reads it at any time.
Database rows aren't files in your project — they're not in version control, and a saved deletion cannot be undone. Studio confirms before deleting, but after that the rows are gone.
Where it's different from file grids
| File grids (collections, pages, CSV) | Data grid | |
|---|---|---|
| Rows are | files in your project | rows in a database |
| Loaded | whole | 50 per page |
| Save writes | files (frontmatter, CSV cells) | one database write per row |
| Conflict safety | stale-file detection | per-row database errors |
| Undo after save | revert the file in Source control | none — the write is live |
User accounts in the grid
With the auth extension enabled, its
user
and session tables show up in the picker like any other table. Editing user rows here is also how roles are assigned — see
Auth and secrets
.
Next
Grid mode — the shared spreadsheet surface in full: ranges, fill down, find & replace
Data tables — change what columns a table has