Step-by-step instructions to download your site, set up a database on Supabase, deploy to Vercel, and go live with a custom domain.
Your download is a full Next.js project with a Prisma database, API routes, Radix wallet authentication, and a store with checkout. You'll need four services:
.zip file will be downloaded automatically.Your .zip contains a complete Next.js application:
your-site/ prisma/schema.prisma — database schema scripts/seed.ts — populates your pages, blocks & products src/ — all application code .env — environment variables (fill in your values) package.json — dependencies & scripts README.md — quick-start summarygit initgit add .git commit -m "Initial export from Miow"git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPO.gitgit push -u origin mainThe .gitignore is already included — it excludes node_modules, .next, and your .env file so secrets are never committed.
5432). It looks like:postgresql://postgres.XXXX:[YOUR-PASSWORD]@aws-0-region.pooler.supabase.com:5432/postgres[YOUR-PASSWORD] with the database password you chose when creating the project.Why Session pooler? Vercel's serverless functions open a new database connection on every request. The session pooler sits in front of your database, reuses connections, and prevents the database from running out of connection slots.
Vercel Blob stores the images uploaded through your site (product photos, block images, logos, etc.).
my-site-images) → click Create.Your project includes a .env file with placeholder values. Open it in any text editor and fill in each value:
DATABASE_URLpostgresql://postgres.XXXX:PASSWORD@aws-0-region.pooler.supabase.com:5432/postgresYour Supabase Session pooler connection string from Step 4.
JWT_SECRETgenerate-a-random-string-at-least-32-charsA random secret used to sign authentication tokens. Generate one by running openssl rand -hex 32 in your terminal.
BLOB_READ_WRITE_TOKENvercel_blob_rw_xxxxxYour Vercel Blob token from Step 5.
NEXT_PUBLIC_RADIX_DAPP_DEFINITION_ADDRESSyour_dapp_definition_addressThe Radix account address that identifies your dApp. Create one via the Radix Developer Console.
NEXT_PUBLIC_RADIX_NETWORK_ID11 = Radix Mainnet, 2 = Stokenet (testnet). Use 2 while testing.
NEXT_PUBLIC_RADIX_APPLICATION_NAMEyour-site-nameThe name shown in the Radix Wallet when users connect.
NEXT_PUBLIC_APP_URLhttps://your-site.vercel.appYour site's live URL. Set to http://localhost:3000 for local dev; update to your production URL after deploying.
NEXT_PUBLIC_SITE_SUBDOMAINyour-subdomainThe subdomain your site was created with. This is pre-filled in your download.
NEXT_PUBLIC_OCISWAP_API_URLhttps://api.ociswap.com/tokensOciSwap API for live asset prices. Pre-configured in your download.
With your .env file configured, set up the database and start the dev server:
npm installnpx prisma db push — creates all tables in your Supabase databasenpm run seed — populates your pages, products & contentnpm run dev — starts the dev serverOpen http://localhost:3000 to see your site running locally.
If prisma db push fails, double-check your DATABASE_URL — make sure the password is correct and there are no extra spaces.
.env file. You can paste them all at once — Vercel will parse them automatically.Make sure to update NEXT_PUBLIC_APP_URL to your Vercel deployment URL (e.g. https://your-site.vercel.app) instead of localhost:3000.
prisma generate, and build your site.https://your-project.vercel.app.If you created your Blob store before importing the project, link it now:
BLOB_READ_WRITE_TOKEN environment variable into your project's deployments.example.com): add an A record pointing to 76.76.21.21www.example.com): add a CNAME record pointing to cname.vercel-dns.comNEXT_PUBLIC_APP_URL in your Vercel environment variables to match your new domain, then redeploy.After the initial deployment, the workflow is simple:
npm run dev.git add .git commit -m "Update site"git pushVercel automatically detects the push and redeploys your site within about a minute.
Need help? Visit the Radix community at radixdlt.com