Skip to content

Where data goes

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.

The deciding question: who reads the data?

Section titled “The deciding question: who reads the data?”
  • You, in your own tool (your inbox, your spreadsheet, Slack): a server is enough, often with a connector. Example: a waitlist whose sign-ups you want to see.
  • The app, for its users: you need a database. Example: an app where everyone signs in to find their own tasks.
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.

  1. 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”).

  2. 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.

  3. 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.

  4. 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:

  • No data to keep, or data that only matters to the visitor: it uses local state or localStorage.
  • A contact form sent by email: it adds the Resend connector and the app server directly.
  • A call to a third-party service with a key (AI, payments, maps…): it adds the server and the connector, then asks you for the key with a card. See Secrets.
  • A service you mention in your request with the chat’s + menu: it wires it in directly.

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 Sheets
spreadsheet.
Create a habit tracker with sign-up and sign-in: each user finds their habits
on all their devices.
Make a budget simulator, with no account and no database: keep the data in the
browser.