1. Nothing extra
Data that only matters to the visitor, on their device, stays in the browser (in memory or in localStorage):
preferences, a cart, a calculator, a personal to-do list without sign-in. No cost, nothing to set up.
As soon as your app handles data (a cart, a waitlist, user accounts), someone has to decide where it goes. Highwind follows a simple principle: the lightest option that is enough. A database is only added when the app really needs one, and you decide when several options would work.
1. Nothing extra
Data that only matters to the visitor, on their device, stays in the browser (in memory or in localStorage):
preferences, a cart, a calculator, a personal to-do list without sign-in. No cost, nothing to set up.
2. The app server
Code the browser must not run: calling an API with a secret key, sending emails, receiving webhooks. And also when you, the owner, want to receive or read the data in a tool you already use (a contact form by email, sign-ups in a Google Sheets spreadsheet).
3. The database
Only when the app itself needs it: user accounts and sign-in, private data per user, data the app reads back and edits (tasks, catalog, bookings), files uploaded by users.
| What you ask for | What the agent picks |
|---|---|
| A unit converter, a loan calculator | Nothing extra (local state) |
| A personal shopping list, no account | Nothing extra (localStorage) |
| A contact form that emails you | Server + Resend connector, without asking |
| A waitlist whose sign-ups you want to see | Choice card: Google Sheets first, then email or database, then local |
| An app with sign-up and sign-in | Choice card, with the database first |
| An AI article summarizer | Server + connectors (the AI key stays on the server) |
When your request involves keeping data and both a database and something lighter could work, the agent doesn’t choose for you: it shows a Your call card below its reply, then stops.
Read the need. At the top of the card, the agent sums up the need in one sentence (for example “Save the sign-ups to your waitlist”).
Compare the options. The card offers 2 or 3. The one the agent recommends comes first, with the Recommended badge. Descriptions and costs are written by Highwind, not by the agent.
Click your choice. Highwind does what’s needed (creating the database, wiring the connector…) then restarts the agent with your choice. You don’t have to type anything.
The agent builds the data part according to your choice. It doesn’t build it before.
| Option | What happens |
|---|---|
| In a Google Sheets spreadsheet | Each entry is added as a row in a spreadsheet in your Google Drive, no database needed. Free. You connect your Google account from a card in the chat. See Google Sheets. |
| By email (Resend) | You get each entry by email, no database needed. Free with your Resend key, which the agent then asks for with a card. |
| In Slack | Each entry is posted to a Slack channel of your choice, no database needed. Free. |
| Database | User accounts, data shared across devices and files, hosted by Highwind in Europe. The database is created in under a minute, then the agent carries on by itself. During the beta, the number of databases per account is limited. See Database. |
| Later | Data stays in each visitor’s browser for now. You can add a database later. |
For data you only receive (waitlist, orders, sign-ups), the agent offers Google Sheets first, then email or a database, then local storage.
The agent shows no card when the need is clear:
localStorage.However, it never enables a database on its own. Even when user sign-in requires one, it goes through the choice card (with the database first), or you enable it yourself in Project settings → Backend → Enable backend.
If you already know what you want, say so: the agent follows your request.
Add a waitlist to the landing page. Sign-ups should land in a Google Sheetsspreadsheet.Create a habit tracker with sign-up and sign-in: each user finds their habitson all their devices.Make a budget simulator, with no account and no database: keep the data in thebrowser.