Skip to main content

Prerequisites

Before you deploy, make sure you have:
  • Node.js 18 or higher installed locally
  • A Supabase account with a project created
  • Your Supabase project’s URL and anon key (found in your project’s Settings → API page)

Deploy to Vercel

Vercel is the recommended deployment target. Simple Money includes a vercel.json that configures subdomain rewrites for the admin dashboard.
1

Push your code to a Git repository

Push the project to a repository on GitHub, GitLab, or Bitbucket. Vercel connects directly to your repository to deploy on every push.
2

Create a new Vercel project

  1. Sign in to Vercel and click Add New → Project.
  2. Import your repository from the list.
  3. Vercel will automatically detect the Next.js framework and configure the build settings. No changes are needed.
3

Add environment variables

Before clicking Deploy, open Environment Variables in the project settings and add the following:
# Required — Supabase connection
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key

# Required for admin actions (server-side only)
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key

# Admin dashboard path — change this to something secret
NEXT_PUBLIC_ADMIN_PATH=/ctrl-sm-2026

# Optional — Tawk.to live chat
NEXT_PUBLIC_TAWK_PROPERTY_ID=
NEXT_PUBLIC_TAWK_WIDGET_ID=
NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY are required. Deploying without them will cause the application to fail on startup. Do not prefix SUPABASE_SERVICE_ROLE_KEY with NEXT_PUBLIC_ — it must remain server-side only.
4

Deploy

Click Deploy. Vercel will build and publish the application. Once the deployment is complete, your site is live at the generated Vercel URL.
5

Configure your custom domain (optional)

To use a custom domain, go to Settings → Domains in your Vercel project and add your domain.The included vercel.json routes all traffic from admin.simplemoneys.com to the /admin path. If you use a different domain, update the host value in vercel.json to match your admin subdomain.

Local development

1

Clone the repository

git clone <your-repo-url>
cd simple-money-main
2

Install dependencies

npm install
3

Set up environment variables

Create a .env.local file in the project root and add your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
NEXT_PUBLIC_ADMIN_PATH=/ctrl-sm-2026
4

Run the development server

npm run dev
Open http://localhost:3000 in your browser. The server supports hot reloading — changes to source files are reflected immediately.

Environment variable reference

VariableRequiredDescription
NEXT_PUBLIC_SUPABASE_URLYesYour Supabase project URL
NEXT_PUBLIC_SUPABASE_ANON_KEYYesPublic anon key for client-side queries
SUPABASE_SERVICE_ROLE_KEYYesService role key for server-side admin actions. Never expose this publicly.
NEXT_PUBLIC_ADMIN_PATHRecommendedURL path for the admin dashboard. Change from the default to obscure the admin route.
NEXT_PUBLIC_TAWK_PROPERTY_IDNoTawk.to property ID for live chat
NEXT_PUBLIC_TAWK_WIDGET_IDNoTawk.to widget ID for live chat

Build docs developers (and LLMs) love