Built to solve freelance marketplace inefficiency without paying 20% platform fees to legacy providers.
Freelance platforms like Upwork and Fiverr take 10–20% of every transaction while providing minimal value beyond listing. Freelancers waste hours writing proposals. Clients have no real milestone protection. Neither side has visibility into progress until payment disputes arise.
FREE2LANCE is a full-stack freelance marketplace that uses milestone-based escrow, real-time messaging, and AI-powered profile analysis to reduce friction for both sides. Clients fund milestones upfront; freelancers get paid as they deliver. The AI sourcing engine automatically classifies freelancer skills and generates targeted outreach — eliminating the proposal-writing bottleneck.
📹 Demo: [Insert 30-second screen recording showing project creation → milestone funding → delivery → payment release]
🔗 Deployed on Vercel
- Escrow-based payments: Stripe Connect integration with per-milestone funding — zero unpaid work risk
- Real-time messaging: Pusher-powered instant chat with typing indicators, <100ms delivery latency
- AI profile classification: Rule-based category matching analyzes 50+ skill signals across 9 categories (Web, Mobile, AI/ML, Data, Design, DevOps, Writing, Marketing) in under 500ms — no LLM API costs per scan
- 2FA security: Time-based one-time passwords via authenticator app for all user accounts
- Scalable database: Prisma + PostgreSQL with indexed queries for user search, project filtering, and message history
- Dual image pipeline: Cloudinary + AWS S3 for upload redundancy and CDN-backed delivery
- Transaction volume: Prisma schema supports projects, milestones, deliverables, disputes, and reviews — designed for concurrent multi-project workflows
| Layer | Technology |
|---|---|
| Frontend | Next.js 15 (App Router), Tailwind CSS v4, TypeScript |
| Backend | Next.js API routes, NextAuth, Pusher |
| Database | PostgreSQL via Prisma ORM, Prisma Accelerate |
| Payments | Stripe Connect (escrow, milestone release, disputes) |
| AI/ML | OpenAI, rule-based category classification engine |
| Media | Cloudinary + AWS S3 |
| Auth | NextAuth with OTP, TOTP (2FA), QR codes |
| Resend (transactional) |
src/
├── app/ # Next.js App Router pages and API routes
│ ├── api/ # REST endpoints (auth, projects, messages, payments, disputes)
│ ├── dashboard/ # Client and freelancer dashboards
│ └── projects/ # Project lifecycle management
├── components/ # Reusable UI components
└── lib/ # Business logic, Stripe client, Pusher client, DB client
# 1. Install dependencies
pnpm install
# 2. Generate Prisma client
npx prisma generate
# 3. Push schema to database
npx prisma db push
# 4. Start development server
pnpm devSee .env.example for required environment variables: DATABASE_URL, STRIPE_SECRET_KEY, NEXTAUTH_SECRET, PUSHER_APP_ID, AWS_ACCESS_KEY_ID, CLOUDINARY_URL, RESEND_API_KEY.
MIT — see LICENSE