Skip to main content
Every Macaly project comes with its own database. Anything your site or app needs to remember goes there: messages from your contact form, email addresses from newsletter signups, blog posts, booking requests, user accounts, and so on. You don’t need to set one up with a provider, enter credentials, or connect anything. Macaly creates one for you the first time your project needs it, and the Database tab in your chat is where you view that data, work with it, and download a copy.
Available on all plans

How databases work in Macaly

A database stores information so it’s still there after the page reloads, ready for you to come back to whenever you need it. Think of it as a spreadsheet that lives behind your project, where each row is one item, such as one subscriber, and each column is a piece of information, such as email or date. Macaly creates a database for every project automatically:
  • Ready to use: It updates in real time and scales on its own, with nothing to configure on your side.
  • Isolated per project: Data from one project can never mix with data from another.
  • Hosted in the EU: Your data is held by Convex in the EU (Ireland). You’ll find more in Security.
  • Included in your plan: Every plan has a monthly allowance, and using the database within it costs no credits. You’ll find more in Plans and credits.
If your project doesn’t have a database yet, the Database tab shows a Set up Database button. You can also just describe what you want to store in chat, and the agent sets it up for you.

Your database in the chat

Your Tables are listed on the left of the Database tab, each with its current row count. Tables that belong to libraries your project uses, such as those behind authentication, are grouped below and stay collapsed until you open them. Click a table name to open it in the grid on the right. The Database tab with the tables list, a table of bookings, and the Export and Import buttons

Browsing and filtering

  • Pagination: Rows load 50 at a time and keep loading as you scroll. Load more at the bottom fetches more rows, next to a counter showing how many rows the table holds.
  • Sorting: Newest first and Oldest first flip the order.
  • Filtering: Filter lets you narrow the data down. Pick a field, an operator, and a value, then click Apply. Operators include equals, does not equal, greater than, less than, exists, does not exist, and matching by type. Add more conditions and they’re combined with “and”. Clear filters removes them again.
  • Live updates: Rows your app creates while you’re looking at the table appear on their own.
Fields that point at another table are shown as links. Click one to go straight to the row it refers to.

Editing rows

You can change data directly in the grid, without going through the agent.
  • Click a text cell to edit it right there. Press Enter to save, or Escape to cancel. Checkboxes toggle with a single click.
  • Click a row to open a form with one field per column. You can enter numbers, dates, lists, and references, see which fields are required, and copy the row as JSON if you want it on your clipboard. Click Save when you’re done.
  • Add row creates a new row in the table you’re viewing, based on the fields Macaly already knows about.
  • Tick one or more rows to get a Delete button. The checkbox in the header row selects the whole table. Macaly asks you to confirm. Deletions can’t be undone.
The Database tab is for data, not for structure. Creating, renaming, and deleting tables, and changing which fields a table has, live in your project’s code, so the agent handles them. Ask for it in chat, for example: “Add a phone field to the Leads table.”

Downloading and restoring

At the bottom of the Tables list you’ll find Export and Import. The Export and Import buttons at the bottom of the tables list Export packages your database into a snapshot and downloads it as a ZIP file containing every table and every row. Use it when you want to keep your own backup before bigger changes, work with your data outside Macaly, or move your project to your own Convex account. Import restores a snapshot ZIP into the database you’re currently viewing. It replaces everything that’s already there, so Macaly names the file you picked and asks you to confirm with Replace and import. This can’t be undone, so export the current state first in case you want it back. When the import finishes, Macaly tells you how many rows were written and reloads the preview. You can try a snapshot out in your Testing database before using it on real data. Both actions run in your browser, so leave the tab open until they finish. Large databases can take a while.
Files your project stores, such as uploaded images or documents, are not part of the snapshot. The snapshot covers table data only.

Live and Testing databases

By default your project uses a single Live database, shared by your published site and your chat preview. Any change you make while building shows up on the published site straight away. Adding a Testing database creates a separate copy for you to work in, without changing the data your users see. The Database tab switched to the Testing database, showing the Live and Testing buttons

Adding a testing database

  1. Open the Database tab in your chat.
  2. Click Add testing mode.
  3. Wait for setup to finish.
Macaly creates a second database and copies your Live data into it.

Switching between databases

Use the Live and Testing buttons at the top of the tab to switch between the two databases. Switching points your project at the selected database and reloads the preview, so chat and preview both read and edit the one you selected. Work you do in Testing still changes your project’s code. When you switch back to the Live database, Macaly redeploys the schema and functions, so structural changes you made while testing carry over to your published project. The data itself stays behind in the Testing database.

Publishing

You can only publish your project from the Live database. Click the Publish button while a testing database is active and the menu opens with a notice explaining that you’re using the Testing database and need to switch to Live to publish with real data. Publish inside the menu stays greyed out until you click the Switch to Live button.

Duplicating your own project

When you duplicate your own chat, you choose what should happen to its data:
  • Create new database: Sets up a fresh database and copies the original’s data into it. Schema changes in one chat won’t affect the other.
  • Use same database: Points both chats at the same database, so changes to data or schema in one chat show up in the other. Only available when you duplicate within the same workspace.
These choices only apply to your own duplicates. A project duplicated from the community gallery always starts with an empty database.

Example uses for a database

You’ll most often reach for a database for features like these:
  • Contact forms: Store the messages people send through your contact or inquiry form.
  • Newsletters: Collect email addresses and keep track of when each person subscribed.
  • Content management: Build a system that holds your blog posts, case studies, reviews, or comments.
  • Bookings and requests: Store appointment requests and event registrations.
  • Admin panels: Build an internal page for reviewing form submissions, managing subscribers, or moderating content.
  • Notifications: Get an email when someone fills in a form or a new registration lands in your database.
You don’t have to design the structure yourself. Describe what you want to store, and the agent creates the table and wires it into your project. Example prompts:

Frequently asked questions

No. Every Macaly project gets one automatically. You don’t need to set one up with a provider, enter credentials, or connect anything. Describe what you want to store, such as contact form submissions or blog posts, and the agent creates the tables and wires them into your project.
Macaly uses Convex. Every project has its own isolated database with real-time updates and automatic scaling, hosted in the EU. See Databases.
No. The database is included in every plan and using it doesn’t consume credits. Each plan does have a monthly usage allowance. You’ll find the details in Plans and credits.
The Database tab lists your tables and shows the rows in each one. You can filter and sort them, edit values right there, add rows, or delete them. Creating tables and changing which fields they have happens in your project’s code, so ask the agent for those, for example: “Add a phone field to the Leads table.”
Yes. In the Database tab, click Add testing mode and Macaly creates a Testing database, a separate copy of your data that you can work in without changing what your users see. You can switch between your Live and Testing databases whenever you want. You can only publish your project from the Live database.
Export in the Database tab downloads a ZIP snapshot of your table data, and Import restores one. Files your project stores, such as uploaded images, are not part of that file. Keep a snapshot before bigger changes, since deleting rows and importing a snapshot both replace data permanently. The snapshot uses Convex’s own format, so you can load it into your own Convex account too.