Cubed Docs
Deployment

Vercel

Git push to deploy. No server to maintain, and no add-ons needed.

Vercel builds and hosts the site for you. Push your code, it deploys. HTTPS, a CDN and a domain are included.

Commercial use and the Hobby plan. Vercel's Hobby plan is for non-commercial projects. A store that takes money is commercial, so you should be on the Pro plan. Check Vercel's current terms before relying on the free tier for a real shop.

1. Seed Supabase, once

From your own computer, with DATABASE_URI pointed at your Supabase project:

bun run seed

Skip this if you already did it in Install and seed.

Do not set NODE_ENV=production when you run it — the tables are only created outside production mode.

2. Push the code to GitHub

Create a private repository

On github.com/new, make a private repository. Private matters — the theme is licensed to you, not to the public.

Push

git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPO.git
git push -u origin main

Check that .env.local is not in the commit. It is listed in .gitignore, so it should be excluded automatically. Confirm with git status before pushing — if you see .env.local, stop and fix .gitignore first.

3. Import the project

At vercel.com/new, connect your GitHub account and import the repository. Vercel detects Next.js automatically — leave the framework and build settings alone.

4. Add the environment variables

Before clicking Deploy, expand Environment Variables and add all of these:

NameValue
TEBEX_TOKENYour Headless store token
SERVER_SECRETYour game server secret
PAYLOAD_SECRET64 random hex characters
NEXT_PUBLIC_SITE_URLYour final domain, e.g. https://store.example.com
DATABASE_URISupabase Session pooler string
SUPABASE_URLhttps://yourref.supabase.co
SUPABASE_SERVICE_ROLE_KEYYour service_role key

Apply them to all environments (Production, Preview, Development).

These must be present for the first build, not added afterwards. The build loads the admin panel configuration, and it bakes SUPABASE_URL into the image loader and the Content-Security-Policy. A build without them either fails outright or deploys a site where uploaded images are silently blocked.

5. Deploy

Deploy

Click Deploy and wait two to four minutes.

Add your domain

Settings → Domains → add your domain and create the DNS records Vercel shows you. HTTPS is issued automatically within a few minutes.

Fix NEXT_PUBLIC_SITE_URL if needed

If you guessed the domain earlier, correct it under Settings → Environment Variables, then Deployments → ⋯ → Redeploy. Environment changes only take effect on a new deployment.

Log in and secure the admin panel

Open https://yourdomain.com/admin, sign in, and change the seeded password immediately.

Everyday operations

Deploying an update is git push. Vercel builds and swaps it in automatically.

Redeploys are safe: every deploy starts from a clean filesystem, and your content and uploads sit in Supabase untouched.

Troubleshooting

On this page