you own the place. act like it.
You can sign in to your site now, but it does not know you are the owner. It treats you like any new visitor: stuck on the waitlist, locked out of the admin tools, unable to see this checklist. Two small changes fix that. A label on your account tells your site you are an admin. Your account's ID in .env tells it you are the founder.
| What you set | Where | What it unlocks |
|---|---|---|
| role: admin | Your account, in Clerk | The members area (/party) and the admin tools |
| FOUNDER_USER_ID | Your .env file | This setup checklist and your founder answers |

✓ Success: your site knows you own it.
this is a work in progress
1️⃣ Add the Admin Label
Clerk keeps a small note on every account called public metadata. Your site reads one label from it: role. In the Clerk dashboard:
- Open Users and click your own account, the one you signed up with in the last step
- Scroll to Metadata and click Edit next to Public
- Add the role line shown below, then click Save
{
"role": "admin"
}Only give this label to people you would trust with everything. An admin can change every step, article, and setting on your site.
2️⃣ Save Your User ID in .env
Every Clerk account has an ID that starts with user_. You will find yours at the top of your account page in Clerk, next to a copy button. Add it to the same .env file that already holds your database strings and Clerk keys:
# .env (below your Clerk keys)
FOUNDER_USER_ID="user_…"Now run the setup seed again. Last time it said no one could see the steps. This time it gives them to you:
# Give yourself access to the setup checklist
npm run db:seed:setup3️⃣ Prove It Worked
Restart your site with Ctrl + C and npm run dev. Then sign out and sign back in. Your sign-in carries a copy of your labels, and signing in again is the surest way to get a fresh one. Now check three things:
- /party opens, instead of sending you to the waitlist. Your site sees role: admin
- /admin/steps lists your steps, including the SETUP. ones you are following right now. The admin tools trust you
- The seed printed FOUNDER_USER_ID granted access to SETUP. Your site knows you are the founder
“Same site, same account. Now it knows whose it is.”
— unparty-app
🔒 .env Never Leaves Your Computer
Your .env file now holds everything that makes your site yours: the password to your database, the secret key to your sign-in, and your founder ID. It is the one file in your copy that must never be committed. Your copy already protects it: git is told to ignore every .env file. Check that for yourself, once:
# Should print: .env
git check-ignore .env
# Should print nothing
git ls-files .env- Keep the name exactly .env — git ignores it by name. keys.txt, env.backup, or my-keys.env are not ignored and would be committed
- Watch your Changes list — in GitHub Desktop, .env should never appear. If it ever does, stop and do not commit
- Never force it — nothing in this setup asks you to add .env to git. If a tool or tutorial does, the answer is no
- If it ever gets committed, treat every key in it as leaked: reset your Neon password, roll your Clerk secret key, and update .env and Vercel with the new values
🧯 If It Did Not Work
- /party still sends you to the waitlist — sign out and back in first. If it still does, check the session token from Add sign-in: under Sessions in Clerk, the claims must include "metadata": "{{user.public_metadata}}"
- /admin/steps is empty or shows an error — the role did not reach your site. Check the spelling: "role": "admin", lowercase, in Public metadata (not Private or Unsafe)
- The seed says FOUNDER_USER_ID is not set — the line is not in .env, or it has a typo in the name. It must be exactly FOUNDER_USER_ID, and the file must be named exactly .env
🤖 Ask Your LLM
I set "role": "admin" in my Clerk public metadata and signed in
again, but [describe what happens]. Read src/middleware.ts and
src/utils/roles.ts and tell me what my site checks. Do not change
anything, and do not ask me for my keys.
Run git check-ignore .env and git ls-files .env in this project
and tell me in plain words whether my .env file is safe from
being committed.✅ You Are Done When
- Your account in Clerk has "role": "admin" in its public metadata
- .env has FOUNDER_USER_ID, and npm run db:seed:setup says it granted you access
- After signing in again, /party opens and /admin/steps shows the SETUP. steps
- git check-ignore .env prints .env, and git ls-files .env prints nothing
Your site is running, it has a memory, it lets people in, and it knows you own it. Next is First run: a walk through your own site as its owner, before you start making it yours.
“The keys stay with you. That is what owning it means.”
— unparty-app