System requirements
Before installing Hiro CRM, ensure your system meets these requirements:- Node.js 20.0.0 or higher
- npm 10.0.0 or higher (comes with Node.js)
- Git for cloning the repository
- Modern browser (Chrome, Firefox, Safari, or Edge)
- Supabase account (free tier available)
Hiro CRM is tested on macOS, Linux, and Windows (via WSL2). For Windows users, we recommend using Windows Subsystem for Linux (WSL2) for the best experience.
Local development setup
Step 1: Clone the repository
Clone the Hiro CRM repository and navigate to the project directory:Step 2: Install dependencies
Navigate to the frontend directory and install all required packages:package.json, including:
- Next.js 16 - React framework
- @supabase/supabase-js - Supabase client
- @supabase/ssr - Server-side rendering support
- Tailwind CSS v4 - Utility-first CSS
- Framer Motion - Animation library
- OpenAI SDK - AI Assistant integration
- Brevo SDK - Email/SMS campaigns
- Inngest - Background job processing
Step 3: Set up Supabase
Create a new project
Sign in to Supabase
Visit supabase.com and sign in or create an account
Create project
Click “New Project” and fill in:
- Name:
hiro-crm(or your preferred name) - Database Password: Choose a strong password
- Region: Select closest to your location (e.g., “West EU (Ireland)” for Spain)
Wait for provisioning
Project creation takes 1-2 minutes. Wait for the “Project is ready” notification
Apply database migrations
Hiro CRM uses PostgreSQL migrations to create the database schema. You’ll need to run these in order.- Supabase CLI (Recommended)
- Supabase Dashboard
Install the Supabase CLI if you haven’t already:Link your project and push migrations:
Step 4: Configure environment variables
Create your local environment file:.env.local and configure the required variables:
Step 5: Seed demo data (optional)
To test Hiro CRM with realistic data, you can seed the database:Step 6: Start development server
Start the Next.js development server:Production deployment
Deploy to Vercel
Hiro CRM is optimized for deployment on Vercel:Import to Vercel
- Go to vercel.com and sign in
- Click “Add New” > “Project”
- Import your GitHub repository
- Select the
frontenddirectory as the root
Configure environment variables
Add all required environment variables from your
.env.local file:NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYNEXT_PUBLIC_APP_URL(set to your Vercel domain)- Add optional variables for features you want to enable
The
vercel.json file in the root directory configures cron jobs for automated tasks:- Daily reservation sync (8:00 AM)
- Calendar notifications (9:00 AM)
- Ticket reminders (8:00 AM)
- Marketing automations (every 30 minutes)
Custom domain
To use a custom domain:Additional configuration
Set up first admin user
After deployment, create your first user through the sign-up flow. Then, grant super admin permissions:Configure Supabase storage
For customer avatars and document uploads, ensure storage is configured:Enable integrations
- Brevo (Email/SMS)
- CoverManager POS
- OpenAI (AI Assistant)
Create Brevo account
Sign up at brevo.com (free tier available)
Development tools
Available scripts
Hiro CRM includes several npm scripts for development:Database tools
For database management:Troubleshooting
Build errors
If you encounter build errors:Database connection issues
Check Supabase status
Visit status.supabase.com to check for outages
Type errors
Run the type checker to identify TypeScript issues:- Update
@types/nodeand@types/reactpackages - Ensure all environment variables are properly typed in
lib/env.ts
Performance issues
Next steps
Now that Hiro CRM is installed and running:Configure your brand
Set up your restaurant/hotel brands and locations in the Settings panel
Import customers
Import existing customer data via CSV upload
Create campaigns
Set up your first email or SMS marketing campaign
Set up loyalty program
Configure loyalty tiers and point rewards
Getting help
If you need assistance:- Check the GitHub Issues for known problems
- Review the Contributing Guide
- Open a new issue with detailed information about your problem
