What a Database Actually Does
A database stores information your app needs to remember between sessions. Without a database, every time a user submits a form, the data disappears when the app restarts. With a database, the data persists -- email signups accumulate, orders are recorded, user information is saved.
Most people assume adding a database means writing SQL queries. It does -- but Claude writes them. Your job is to describe what data you need to store, not to write the storage code.
The simplest starting point: SQLite for Replit apps. It is a file-based database -- no separate server to set up, no connection credentials to manage. It lives in a file in your Replit project. Claude sets it up, creates the tables, and writes all the read and write functions. You describe the data structure in plain language.
How to Tell Claude What Database You Need
Describe your data in plain language: "I need to store a table called leads with these columns: id (auto-incrementing), first_name (text), email (text, unique), biggest_challenge (text), created_at (timestamp with default now). I need functions to insert a new lead and to get all leads sorted by most recent."
This description tells Claude everything it needs to write the database setup code, the table creation SQL, and the insert and query functions.
When to Use Something Other Than SQLite
SQLite is perfect for apps with moderate data and a single server. If you expect high write volume from many users simultaneously, or if you want to access the data from multiple services, consider PostgreSQL via Neon (a serverless PostgreSQL provider with a generous free tier). Claude can set this up too -- the description approach is identical.