# Add a table and show it on the site

> Store something new in your backend, such as events or a team list, and show it on a page, with the right access rules, tested before it goes live.

Last updated: October 16, 2026

Source: https://www.willo.ai/docs/backend/add-a-table-and-show-it-on-the-site

This guide adds a table to your backend and a page on your site that reads from it. The example is an events list: you add events, and visitors see the upcoming ones on an Events page.

Everything happens in chat. You need to be an editor, admin or owner of the business.

> **Note: Table or content collection?.**
>
> If what you want is mostly words that you write and publish, such as blog posts, FAQs or testimonials, a [content collection](https://www.willo.ai/docs/content/add-a-collection) is the better fit: it has an editor in the Content tab. Use a table when the data has structure your site works with (dates to filter on, quantities, prices), when visitors or members add to it, or when a function writes to it.

## 1. Describe the data and who sees it

Tell Willo what each row holds and who can do what with it:

"Add an events list. Each event has a title, a date and start time, a location, a short description, a ticket link, and whether it's published. Visitors can see published events that haven't happened yet. Only I add and change events. Show them on a new Events page, soonest first."

The "who sees it" part matters most. Willo turns it into access rules, and they decide what strangers can read.

## 2. Let Willo build it

Willo works through the backend and the site together:

1. **Creates the table** with those columns. Access rules are switched on from the start, so the table is locked until rules are added.
2. **Adds the access rules:** visitors can read published, upcoming events; nobody can write from the site.
3. **Builds the page** that reads the table and lists the events.
4. **Tests the rules from outside:** it reads the table as an anonymous visitor and checks that unpublished events don't come back.

Adding a table, columns and rules runs without stopping. Adding rows asks you to confirm.

## 3. Add some rows

"Add these three events: …" and paste the details. Willo shows the rows on a card for you to confirm, then adds them.

To change events later, ask in the same way: "move the 14 March tasting to 21 March", "unpublish the workshop". Chat is the editor for your tables.

## 4. Check it

- **Drafting on:** the new table, its rules and the page are on the draft. Open the draft preview on the Site page and look at the Events page. Rows added on the draft are test rows: Publish recreates the table and its rules on your live backend, but not the rows. If the events should go live with the page, say so before you publish, and Willo adds them as SQL, which Publish replays on live, rows included (that runs on an approval card).
- **Drafting off:** the table and page are live once the site rebuilds. Open the Events page on your live site.

Check what a visitor sees: an unpublished event shouldn't appear, and nor should past ones.

## 5. Ask Willo what it proved

"Show me what you tested on the events table." Willo reports the checks it ran (reading as a visitor, for example) and what came back. If the table holds anything personal, such as names or email addresses from a sign-up, this step isn't optional: ask for the anonymous-visitor check every time.

## Changing it later

- **Adding a column** ("add a price to events") is safe at any time.
- **Renaming or removing a column** is done in stages so the live site never breaks, and removing one deletes its data. Willo spells out what will be lost and waits for your yes. See [Change your database safely](https://www.willo.ai/docs/backend/safe-schema-changes).

Related: [Tables and access rules](https://www.willo.ai/docs/backend/tables-and-access-rules), [Backend troubleshooting](https://www.willo.ai/docs/troubleshooting/backend).
