Wacrm is designed to go from zero to a running local dev server in a single terminal session. The steps below walk you through forking the repository, wiring up environment variables, and opening the app in your browser. A full Meta Cloud API connection is only needed for production use — you can explore the UI and run migrations without one.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ArnasDon/wacrm/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you start, make sure you have:- Node.js ≥ 20 — check with
node --version. Thepackage.jsonenginesfield enforces this. - A Supabase project — the free tier is sufficient for local development and small production deployments. Create one at supabase.com.
- A Meta Developer account — required in production to connect a WhatsApp Business number and verify webhook signatures. You can skip this for local development; the app will start without it, though inbound messages and outbound sends will not work until it is configured.
Setup
Fork and clone the repository
Start by forking the repository on GitHub so you have your own copy to customise and deploy. Then clone your fork locally:Working from your own fork means you control when (and whether) you pull in upstream changes, and you can push customisations freely without touching the upstream template.
Install dependencies
Install the project’s Node.js dependencies with npm:This installs Next.js 16, the Supabase client libraries, React 19, and all other dependencies declared in
package.json.Configure environment variables
Copy the example environment file and fill in your credentials:Open
Generate a secure This produces 64 hex characters (32 bytes), the correct size for AES-256-GCM encryption. See Environment Variables for the complete reference, including recommended and optional variables.
.env.local in your editor. At minimum, set these five variables before starting the dev server:| Variable | Where to find it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase dashboard → Project Settings → API |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase dashboard → Project Settings → API |
SUPABASE_SERVICE_ROLE_KEY | Supabase dashboard → Project Settings → API |
ENCRYPTION_KEY | Generate locally (see below) |
META_APP_SECRET | Meta for Developers → App Settings → Basic |
ENCRYPTION_KEY with:Run Supabase migrations
Wacrm uses Supabase migrations to set up all tables, RLS policies, storage buckets, and helper RPCs. Apply the migrations from the
supabase/migrations/ directory against your Supabase project before starting the app.Full instructions — including how to use the Supabase CLI and how to handle version-specific migration notes — are in the Supabase Setup guide.Start the dev server and log in
Start the Turbopack development server:Open http://localhost:3000 in your browser. You will be redirected to
/login if no session exists, or straight to /dashboard if you are already signed in. Sign up with the email and password flow backed by Supabase Auth — the first user who signs up on a fresh database becomes the account owner.Dev scripts reference
| Command | What it does |
|---|---|
npm run dev | Turbopack dev server on port 3000 |
npm run build | Production build (Next.js also runs its own type-check here) |
npm run typecheck | tsc --noEmit — fast TypeScript-only pass |
npm run lint | ESLint across the project |
npm run test | Run the Vitest test suite once |