NameUtils is a personal domain portfolio manager built with Next.js 16 and deployed on Cloudflare.
Demo: https://nameutils.com
- Google sign-in
- Domain portfolio management
- Domain availability lookup
- JSON, CSV, and image-based import
- English and Chinese interface
- Framework: Next.js 16
- Auth: Auth.js / NextAuth + Google
- Database: Cloudflare D1
- Cache: Cloudflare KV
- Object storage: Cloudflare R2
- Deployment: OpenNext on Cloudflare Workers
- Styling: Tailwind CSS
- Install dependencies:
pnpm install- Create local env files:
cp .dev.vars.example .dev.vars- Fill in the required values:
AUTH_SECRETAUTH_GOOGLE_IDAUTH_GOOGLE_SECRETVERCEL_API_TOKENVERCEL_TEAM_IDAPI_NINJAS_KEYRAPIDAPI_KEYRAPIDAPI_HOST
- Start the app:
pnpm dev- Regenerate types after changing routes or Cloudflare bindings:
pnpm exec next typegen
pnpm cf:typegen- Create the required resources:
pnpm wrangler d1 create nameutils
pnpm wrangler kv namespace create nameutils
pnpm wrangler r2 bucket create nameutils-migration-assets-
Update
wrangler.jsoncwith the generated D1 and KV IDs. -
Apply the database schema:
pnpm wrangler d1 migrations apply nameutils --remote- Add the required Cloudflare secrets:
pnpm wrangler secret put AUTH_SECRET
pnpm wrangler secret put AUTH_GOOGLE_ID
pnpm wrangler secret put AUTH_GOOGLE_SECRET
pnpm wrangler secret put VERCEL_API_TOKEN
pnpm wrangler secret put VERCEL_TEAM_ID
pnpm wrangler secret put API_NINJAS_KEY
pnpm wrangler secret put RAPIDAPI_KEY
pnpm wrangler secret put RAPIDAPI_HOST- Build and preview:
pnpm build:cloudflare
pnpm preview:cloudflare- Deploy:
pnpm deploy:cloudflarepnpm testpnpm typecheckpnpm buildpnpm build:cloudflare
This project was migrated from Supabase to Cloudflare. The migration notes, data import flow, and cutover checklist live here:
This project is licensed for personal and non-commercial use only. You may not use this software for any commercial purposes without explicit written permission from the author.
Copyright (c) 2026 NameUtils. All rights reserved.