Skip to main content

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.

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.

Prerequisites

Before you start, make sure you have:
  • Node.js ≥ 20 — check with node --version. The package.json engines field 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

1

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:
# Fork on GitHub first: https://github.com/ArnasDon/wacrm → Fork
git clone https://github.com/<your-username>/wacrm.git
cd wacrm
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.
2

Install dependencies

Install the project’s Node.js dependencies with npm:
npm install
This installs Next.js 16, the Supabase client libraries, React 19, and all other dependencies declared in package.json.
3

Configure environment variables

Copy the example environment file and fill in your credentials:
cp .env.local.example .env.local
Open .env.local in your editor. At minimum, set these five variables before starting the dev server:
VariableWhere to find it
NEXT_PUBLIC_SUPABASE_URLSupabase dashboard → Project Settings → API
NEXT_PUBLIC_SUPABASE_ANON_KEYSupabase dashboard → Project Settings → API
SUPABASE_SERVICE_ROLE_KEYSupabase dashboard → Project Settings → API
ENCRYPTION_KEYGenerate locally (see below)
META_APP_SECRETMeta for Developers → App Settings → Basic
Generate a secure ENCRYPTION_KEY with:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
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.
4

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.
5

Start the dev server and log in

Start the Turbopack development server:
npm run dev
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

CommandWhat it does
npm run devTurbopack dev server on port 3000
npm run buildProduction build (Next.js also runs its own type-check here)
npm run typechecktsc --noEmit — fast TypeScript-only pass
npm run lintESLint across the project
npm run testRun the Vitest test suite once
For production deployment, Hostinger Managed Node.js is the recommended and tested path. Connect your fork, paste your Supabase and Meta environment variables into hPanel, and push to main — Hostinger builds and serves the app automatically, with free SSL, a global CDN, and DDoS protection included. See the Deploy on Hostinger guide for a full step-by-step walkthrough.

Build docs developers (and LLMs) love