Verification Checklist
Run through every check before moving on — confirm your Supabase project is set up correctly and your keys are saved.
Do not move on until every item on this list is confirmed. A Supabase project that is half-configured causes confusing errors in your React app later — errors that have nothing to do with your React code but look like they do. Five minutes here saves an hour of debugging there.
How to Use This Checklist
Work through each section in order. Each item has a test you can run to confirm it. If any test fails, go back to the relevant lesson and fix it before continuing.
1. Account and Project
| Check | How to verify |
|---|---|
| Supabase account created | You can log in at supabase.com |
| Project created and provisioned | Your project appears in the dashboard and the left sidebar is fully loaded |
| Project status is healthy | From the project overview screen, the database status indicator is green |
| Project region noted | You know which region you selected (ap-south-1 or ap-southeast-1) |
2. Keys Saved to VaultMate
This is the most important section. Open VaultMate and confirm all four Supabase items are saved:
| Title | Category |
|---|---|
Supabase Project URL | Database |
Supabase DB Password | Database |
Supabase Anon Key | API Key |
Supabase Service Role Key | API Key |
If any are missing, go to Settings → API in your Supabase project and save the missing items now.
Do not proceed if any key is missing from VaultMate. You will need all four of these to connect your React app to Supabase. Losing the database password requires a reset that takes your database offline. Five minutes now prevents significant pain later.
eyJ — if either one is missing or truncated, go back to Settings → API to copy them again.3. Table Created Correctly
Open your Supabase project, click "Table Editor," and confirm:
| Check | How to verify |
|---|---|
| Your table appears in the left panel of the Table Editor | Click "Table Editor" — the table name is in the left list |
| Row Level Security is enabled | Click on your table name, then click "Auth Policies" — you should see the message "Row Level Security is enabled" at the top |
The id column exists with type uuid | In the Table Editor, view the table's columns — id column shows type uuid |
The created_at column exists | A created_at column with type timestamptz |
| At least 3 additional columns defined | Your table has real columns beyond id and created_at |
Run this SQL query in the SQL Editor to confirm your table structure: SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'your_table_name';
Replace your_table_name with the actual name of your table. The results should list every column with its type.
id (type: uuid), a row for created_at (type: timestamp with time zone), and a row for each column you added. If any are missing, the table structure is incomplete.4. Row Inserted
Confirm at least one data row exists in your table.
Run SELECT * FROM your_table_name LIMIT 5; in the SQL Editor. You should see at least one row returned.
If the results are empty, insert a test row using the Insert row button in the Table Editor, then run the SELECT again to confirm the row appears. The id and created_at columns should be populated automatically — you did not need to provide them.
id value that looks like a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx (a UUID) and a created_at value with a timestamp. If either is blank, the table defaults are not set correctly.5. SQL Queries Run Successfully
Confirm you can run each of the five core SQL operations. Use these exact queries (substituting your table name) and verify each returns a result or success message:
SELECT — Read data: Expected: A table of results in the bottom panel.
INSERT — Add a row: Expected: "Success. No rows returned." message in the bottom panel.
UPDATE — Modify a row (use the id of the row you just inserted): Expected: "Success. No rows returned." — then run SELECT to confirm the change.
SELECT with filter: Expected: Only the row you just updated.
DELETE — Remove the test row: Expected: "Success. No rows returned." — run SELECT again to confirm the row is gone.
6. Auth Configured
| Check | How to verify |
|---|---|
| Email provider is enabled | Auth → Providers → Email shows a green "Enabled" toggle |
| At least one test user exists | Auth → Users shows at least one user in the list |
| Site URL is set | Auth → URL Configuration → Site URL is not blank |
7. Logs Explorer (sanity check)
You will not use logs heavily on day one, but it is worth knowing where they live. From the sidebar, click Logs. You see a unified explorer with separate streams:
The unified Logs Explorer — choose a source on the left, see events on the right.
| Log source | When to check it |
|---|---|
| API logs | Your React app made a request and you want to confirm it arrived |
| Auth logs | A user login or signup is failing — see the actual rejection reason |
| Edge Function logs | A function returned an error — every console.log is recorded here |
API logs — every PostgREST request from your app.
Auth logs — sign-up, login, password reset events.
Edge Function logs — invocations, status codes, durations, and any console output.
- You opened Logs Explorer at least once and clicked through API, Auth, and Edge Functions sources
8. Settings — Database and Auth
You already saved the API keys. Two more Settings pages are worth opening once so you know where they live.
Settings → Database — connection strings (pooled and direct) for tools that connect outside Supabase's client SDK.
Settings → Auth — global auth options (session length, password policy) that aren't on the Authentication panel.
- You located Settings → Database and Settings → Auth — no action needed yet, just know they exist
9. Final Confirmation Query
Run this query in the SQL Editor — it gives you a summary of every table in your database, which is a useful sanity check:
Expected: Your table name appears in the results with the correct column count.
Checklist Summary
Print or tick off each item:
- Supabase account created and accessible
- Project created, status is healthy (green)
- Project URL saved to VaultMate
- DB password saved to VaultMate
- Anon key saved to VaultMate
- Service role key saved to VaultMate
- Table created with RLS enabled
- Table has
id(uuid) andcreated_at(timestamptz) columns - Table has at least 3 meaningful columns
- At least one row inserted (via Table Editor or SQL)
- All 5 SQL operations run without error
- Email auth is enabled
- At least one test user created
- Site URL configured in URL Configuration
When every item is ticked, you are ready to connect this database to your React application.
Keep this project open in a browser tab throughout the training. You will be switching between your VS Code editor, your running React app in the browser, and the Supabase dashboard constantly. Having a dedicated browser window for Supabase — Table Editor in one tab, SQL Editor in another — dramatically speeds up your development workflow.