Choose browser storage, D1 or Supabase
An online database is a shared store of records. You only need one when the same information must be available beyond one browser.
Pick one storage route that fits what people actually do in your app.
| Your need | Use this | What it does not do |
|---|---|---|
| Public page text and photos | Project files | Visitors cannot update the source without a separate feature. |
| A practice list on one device | Browser storage | No device sync; clearing browser data can erase it. |
| Small shared online records | Cloudflare D1 + server code | No built-in user login service. |
| People log in to private records | Supabase database + Auth | Access rules, real email delivery and backups still need setup. |
Let’s do this
- 1In your AI helper
Ask where the information needs to live
A page of service details can stay in your source files. A private practice list can stay in one browser. A list used across several devices needs online storage. Separate people with private records also need logins and access rules.
- 2In this guide
Use D1 for a small Cloudflare data service
D1 is Cloudflare’s database. A small piece of server code can read and write it. It does not supply user accounts. The next lesson adds public plant-care tips that only you edit through the Cloudflare dashboard. This is a useful first database without inventing a login system.
Cloudflare D1: getting started (opens a new tab) - 3In this guide
Use Supabase when accounts are the main need
Supabase combines a database with a ready-made login service. For a beginner’s private plant lists, this reduces the setup. You can keep the website on Cloudflare Pages. Skip directly to Add accounts with Supabase; you do not need D1 as well.
Supabase: React and login quickstart (opens a new tab) - 4In your AI helper
Know the difference between records and uploads
A database stores entries such as plant names and watering dates. Large photos and other uploads normally belong in file storage, such as Supabase Storage or Cloudflare R2. Add uploads only when needed and check their separate limits and billing before enabling them.
- 5In your AI helper
Keep tests separate from real data
Tell the AI which route you chose and use sample information first. Cloudflare previews should use a separate test database. For Supabase, a separate free project can be a test project within your account’s project limit. Never use a test reset button against real records.
A message for your AI helper
For my first website, explain where each piece of information needs to live. The audience is the people I want to help and the job is [describe the problem my app should solve]. Recommend no database, browser storage, Cloudflare D1 with server code, or Supabase with accounts. Choose one main route based on the actual features and current free limits. Explain logins, private access, uploads and backups separately. Do not add services until I choose.
What you should see
You have chosen one route and can explain why the simpler options do or do not meet your needs.
If you get stuck
Checked 7 September 2026. Screens can change; the official guides below have the latest steps.
MDN: browser storageCloudflare D1: getting startedCloudflare D1: pricingSupabase: React and login quickstartSupabase: plans and free limits