Skip to content

A modern freelance marketplace connecting clients with skilled freelancers, featuring secure job postings, chat, reporting, and seamless project management.

License

Notifications You must be signed in to change notification settings

mohitjoer/freelance-web

Repository files navigation

FreelanceBase πŸš€

A modern freelance marketplace connecting clients with skilled freelancers β€” secure job postings, real-time chat, reporting, and seamless project management.

Next.js TypeScript MongoDB TailwindCSS Bun

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

About

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%).

✨ Features

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

πŸ› οΈ Technology Stack

  • 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

πŸ“‚ Project Structure

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

πŸš€ Quick Start

Prerequisites

Installation

  1. Clone the repository
git clone https://github.com/mohitjoer/freelance-web.git
cd freelance-web
  1. Install dependencies
bun install
  1. 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_***************
  1. Start development server
bun dev

Open http://localhost:3000

πŸ“œ Available Scripts

bun dev              # Start development server with hot reload
bun build            # Create production build
bun start            # Start production server
bun server/server.ts # Start websocket server

πŸ”Œ Chrome Extension (optional)

A 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

πŸŒ— Theme (Dark / Light)

  • Tailwind is configured with darkMode: 'class'.
  • ThemeProvider manages light, dark, and system modes.
  • Preference stored in localStorage under freelancebase-theme.

πŸ“ˆ Roadmap

  • 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

🀝 Contributing

We welcome contributions! Please follow the standard Git workflow:

  1. Fork the repo
  2. Create a branch: git checkout -b feature/your-feature
  3. Make changes & add tests
  4. Run tests: bun test
  5. Commit & open a PR

Please follow code style, add tests, and update docs.

πŸ”’ Security

Report vulnerabilities to freelancebase01@gmail.com. Do not open public issues for security concerns.

πŸ“„ License

MIT β€” see LICENSE file.

πŸ™ Acknowledgments

Thanks to Next.js, MongoDB, Tailwind CSS, and Bun.


Made with ❀️ by the FreelanceBase team

About

A modern freelance marketplace connecting clients with skilled freelancers, featuring secure job postings, chat, reporting, and seamless project management.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 17

Languages