A modern freelance marketplace connecting clients with skilled freelancers β secure job postings, real-time chat, reporting, and seamless project management.
A single-stop platform for clients and freelancers to find, manage, and deliver projects with confidence.
Table of Contents
- About
- Features
- Tech Stack
- Project Structure
- Quick Start
- Scripts
- Chrome Extension
- Theme (Dark/Light)
- Roadmap
- Contributing
- Security
- License
- Acknowledgments
FreelanceBase is a modern, full-stack freelance marketplace designed to connect clients with freelancers worldwide. It focuses on security, performance, and a great developer experience.
Language composition: TypeScript (99.2%), Other (0.8%).
- Secure authentication with role-based access control (Client / Freelancer) and Clerk integration.
- Job management: post jobs, apply, manage proposals, track progress.
- Real-time communication: WebSocket-based chat with history and search.
- Reporting & dispute workflow for safety and trust.
- Analytics dashboard and calendar integration.
- Chrome extension for quick access.
- Persistent light/dark theme support.
- Frontend: Next.js 15, TypeScript, TailwindCSS
- Backend: Next.js App Router (API routes / edge functions)
- Database: MongoDB (Mongoose)
- Auth: Clerk (NextAuth.js reference)
- Real-time: WebSockets / Socket.io
- Runtime / Package Manager: Bun
frelance-web/
βββ src/
β βββ app/ # Next.js App Router (pages & api)
β β βββ api/ # API endpoints (auth, jobs, users, chat)
β β βββ (dashboard)/ # Protected dashboard routes
β β βββ jobs/ # Job listings and details
β β βββ profile/ # User profiles
β β βββ chat/ # Chat interface
β βββ components/ # Reusable UI components
β βββ lib/ # Utilities (db, auth, utils)
β βββ models/ # MongoDB schemas
β βββ types/ # TypeScript types
β βββ styles/ # Global styles
βββ public/ # Static assets
βββ package.json # Dependencies & scripts
βββ tailwind.config.js # Tailwind config
βββ next.config.js # Next.js config
βββ tsconfig.json # TypeScript config
Prerequisites
- Bun v1.0+ (https://bun.sh/docs/installation)
- Node.js v18+ (for compatibility)
- MongoDB Atlas or local MongoDB
Installation
- Clone the repository
git clone https://github.com/mohitjoer/freelance-web.git
cd freelance-web- Install dependencies
bun install- Create environment file
Create a .env.local in the project root with the values below (replace placeholders):
# Database
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/freelancebase
# Clerk
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_******************************
CLERK_SECRET_KEY=sk_test_*****************************
CLERK_WEBHOOK_SECRET=whsec_***************- Start development server
bun devbun dev # Start development server with hot reload
bun build # Create production build
bun start # Start production server
bun server/server.ts # Start websocket serverA lightweight Chrome extension is included for one-click access to the app.
To test:
- Open Chrome β Extensions β Enable Developer Mode β Load Unpacked β Select the extension folder
- Click the FreelanceBase icon β Open FreelanceBase
- Tailwind is configured with
darkMode: 'class'. - ThemeProvider manages
light,dark, andsystemmodes. - Preference stored in
localStorageunderfreelancebase-theme.
- Phase 1: Core marketplace features (done)
- Phase 2: Multi-language support, Advanced Analytics
- Phase 3: AI-powered matching, API marketplace
- Phase 4: Enterprise & white-label features
We welcome contributions! Please follow the standard Git workflow:
- Fork the repo
- Create a branch:
git checkout -b feature/your-feature - Make changes & add tests
- Run tests:
bun test - Commit & open a PR
Please follow code style, add tests, and update docs.
Report vulnerabilities to freelancebase01@gmail.com. Do not open public issues for security concerns.
MIT β see LICENSE file.
Thanks to Next.js, MongoDB, Tailwind CSS, and Bun.
Made with β€οΈ by the FreelanceBase team