Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save trevorgreenleaf/ac515d5f41b59c1fe31e344c32498f2a to your computer and use it in GitHub Desktop.

Select an option

Save trevorgreenleaf/ac515d5f41b59c1fe31e344c32498f2a to your computer and use it in GitHub Desktop.
ArtCenter: VXD2 - NextJS supabase Quick setup
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