Created
June 10, 2026 05:45
-
-
Save trevorgreenleaf/ac515d5f41b59c1fe31e344c32498f2a to your computer and use it in GitHub Desktop.
ArtCenter: VXD2 - NextJS supabase Quick setup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| You're building a simple internal tool for me to view and manage the data in my | |
| existing Supabase database. I'm a designer and I don't write code, so do ALL the | |
| work yourself — including every terminal command. I will never run anything in a | |
| terminal. When you need something from me, ask one clear question at a time, in | |
| plain language. | |
| Here's the job: | |
| 1. In the current (empty) folder, scaffold a new Next.js app using the App Router | |
| and TypeScript, and install @supabase/supabase-js and @supabase/ssr. | |
| 2. Ask me for my Supabase Project URL and my publishable key (my dashboard may | |
| label it "publishable" or "anon" — either is fine). Save them to a .env.local | |
| file as NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, and | |
| make sure .env.local is in .gitignore. Never put a secret or service-role key | |
| anywhere in the app code. | |
| 3. Look at my existing database and find every table in the public schema, along | |
| with each table's columns, column types, and primary key. Use the Supabase MCP | |
| server for this if it's connected. If it isn't connected, tell me so and ask me | |
| to either connect it or paste my table names and columns — do NOT invent or | |
| guess tables. Only build screens for tables that actually exist. | |
| 4. For each table you find, build an admin screen that lets me: | |
| - view all rows in a clean, readable list, | |
| - add a new row using a form, | |
| - edit an existing row, | |
| - delete a row, with a confirmation step. | |
| Don't show auto-managed columns (like id and created_at) in the add form. Pick | |
| sensible inputs per column type: text box for text, number input for numbers, a | |
| checkbox for true/false, a date picker for dates. Add a simple navigation menu | |
| listing all my tables so I can click between them. Keep the design clean and | |
| minimal — lots of whitespace, clear labels. | |
| 5. There is no login and no concept of "users" in this tool — it's a private | |
| utility just for me to manage data. So make the data actually reachable by the | |
| publishable key: enable Row Level Security on each table and add permissive | |
| policies allowing the anon role to select, insert, update, and delete, AND make | |
| sure each table is granted/exposed to the API. Apply this using the Supabase MCP | |
| server if it's connected; if it isn't, give me the exact SQL to paste into the | |
| Supabase SQL editor and wait until I confirm I've run it. THIS STEP IS CRITICAL — | |
| if it's skipped, every page will load empty or throw a "permission denied" error. | |
| 6. Start the app and confirm that at least one page actually shows real rows from | |
| my database. If a page is empty or errors out, the cause is almost always step 5 | |
| — fix the policy or grant and try again until real data appears. Then tell me the | |
| local URL to open, and give me a one-line summary of what you built. | |
| Rules: | |
| - Never ask me to run a terminal command — run everything yourself. | |
| - Narrate what you're doing in plain English, one short line per step. | |
| - If anything is ambiguous, pause and ask me a simple question instead of guessing. | |
| - When you're done, remind me that this tool has no security and is for local use | |
| only — I should never deploy it publicly as it is. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment