Documentation

Getting Started

Set up your own Freelance CRM instance in under 5 minutes. Everything you need to track leads, projects, invoices, and revenue.

Prerequisites

  • *Node.js 18+ — the runtime
  • *PostgreSQL — a database (or use Prisma Postgres)
  • *npm or pnpm — package manager

1. Clone & Install

Clone the repository and install dependencies.

terminal
# Clone the template
git clone https://github.com/alevizio/freelance-app.git
cd freelance-app

# Install dependencies
npm install

# Copy environment variables
cp .env.example .env.local

2. Configure Environment

Edit .env.local with your database URL and auth secret.

.env.local
# .env.local
DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=YOUR_KEY"
AUTH_SECRET="your-auth-secret"
AUTH_URL="http://localhost:3000"

3. Set Up Database

Generate the Prisma client, run migrations, and optionally seed demo data.

terminal
# Generate Prisma client
npx prisma generate

# Run migrations
npx prisma migrate dev

# Seed demo data
npx tsx prisma/seed.ts

4. Launch

Start the development server.

terminal
# Start the dev server
npm run dev

# Open http://localhost:3000
# Sign in with: you@example.com

What's included

Lead Funnel

6-column Kanban board from New to Paid/Rejected

Proposals

Multi-option pricing tiers with client approval flow

Dashboard

Revenue analytics, Sankey charts, and KPI cards

Invoicing

Full lifecycle: Draft, Sent, Paid, Overdue

Time Tracking

Per-project hours and uninvoiced time alerts

Notifications

Overdue invoices, budget warnings, and activity feed

Next steps