Skip to content

Latest commit

 

History

493 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WorkHub

WorkHub

The self-hosted, open-source alternative to juggling Toggl + Harvest + Notion + Trello.

Kanban boards, live time tracking, invoicing, calendar, media library, and an AI assistant — in one app you actually own.

License Stars Last Commit PRs Welcome Next.js TypeScript

Star this repo · Quick Start · Screenshots · Features

WorkHub dashboard — active projects, pending tasks, time tracked, and financial overview

WorkHub is an all-in-one, self-hosted workspace for freelancers and small teams. Instead of stitching together a time tracker, an invoicing app, a docs tool, and a Kanban board — each with its own login, subscription, and copy-paste tax — WorkHub puts projects, tasks, time, finances, calendar, files, and an AI assistant behind a single login on your own Firebase project. No per-seat pricing, no feature-gating, no vendor lock-in. Your data stays yours.

Why WorkHub?

WorkHub Toggl Harvest Notion Trello
Time tracking & live timers
Kanban / tasks
Invoicing & payments
Calendar 🔌 Add-on
Media library
AI assistant 💲 Paid
Self-hosted (your data)
Free & source-available ✅¹
All-in-one (no tool juggling)

✅ = built-in · 💲 = paid tier or add-on · 🔌 = via third-party integration or power-up · ❌ = not available. ¹ WorkHub is source-available and free for personal use; commercial use requires a license — see License.

Features

** Projects & Tasks**

  • Multi-tier hierarchy: Systems → Projects → Features → Tasks → Subtasks
  • Kanban board with drag-and-drop reordering across To Do / In Progress / Review / Done
  • Color-coded task types (Task, Bug, Feature, Improvement, Docs, Research) and priorities (Low → Critical)
  • Threaded comments on tasks and subtasks
  • Sub-projects with shared or independent finances
  • Archive clutter or flag blocked tasks as "Waiting" — orthogonal to status

⏱ Time Tracking

  • ▶ Live timer widget — start, pause, resume, stop from anywhere in the app
  • Persistent timer that survives page navigation (Zustand + localStorage)
  • Manual entry for retroactive logging, down to the subtask
  • Daily and weekly summaries on the dashboard

** Finance & Invoicing**

  • Payment models: milestone-based, monthly, fixed-price, and internal
  • Milestone tracking with pending / completed / paid statuses
  • Monthly payment management with full payment history
  • Know exactly what each client owes you — total owed, total received, next deadline
  • Earnings visualized with interactive charts and per-project breakdowns

** Calendar & Scheduling**

  • Month, week, day, and list views (FullCalendar)
  • Drag-and-drop and resizable events
  • Category color-coding (Work, Meeting, Deadline, Personal, Reminder) and status tracking

** Media Library**

  • Folder hierarchy with breadcrumb navigation
  • Drag-and-drop upload with progress tracking
  • Automatic client-side image compression (configurable quality/dimensions)
  • Link files to projects and tasks; grid/list views and filters

** AI Assistant** (optional — needs a Gemini key)

  • Task breakdown — generate subtask suggestions from a feature description
  • ⏳ AI-powered time/effort estimates
  • Productivity insights on project health and work patterns
  • Built-in web search (DuckDuckGo) and URL content fetching
  • Gracefully disabled when no API key is set — everything else works without it

** Extras**

  • Per-project Vault for sensitive notes, passwords, and files (passkey-protected)
  • Full dark mode, responsive layout, and deep-linkable tab navigation
  • Optimistic UI on every operation — instant feedback, automatic rollback on error
  • Optional MCP server so AI agents (Claude and others) can drive your time tracking

Screenshots

Shown in dark mode. Light mode is fully supported.

Dashboard Kanban board
Dashboard Kanban board
Active projects, pending tasks, time tracked, and finances at a glance. Drag-and-drop tasks with color-coded priorities, types, and time estimates.
Projects Finances
Projects Finances
Rich project cards with progress, payment models, deadlines, and client info. Track payments, milestones, and monthly earnings with per-project breakdowns.
Time tracking Media library
Time tracking Media library
Daily breakdowns, project distribution, and detailed time-entry logs. Upload, organize, and link files to projects with automatic optimization.

AI assistant
AI Assistant — task breakdowns, time estimates, and productivity insights powered by Google Gemini.

Quick start

Prerequisites

  • Node.js 22+ (see .nvmrc) and npm
  • A Firebase project with Firestore, Authentication, and Storage enabled
  • (Optional) a Google AI Studio API key for the AI features

1. Clone & install

git clone https://github.com/AhmedSayedSk/workhub.git
cd workhub
npm install

2. Configure environment

cp .env.local.example .env.local
# Firebase (from Firebase Console → Project Settings → Your Apps)
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id

# Gemini AI (optional — powers the AI assistant)
GEMINI_API_KEY=your_gemini_api_key

Email notifications, Content Studio, and server monitoring have their own optional keys — see the comments in .env.local.example.

3. Set up Firebase

  1. Create a project at console.firebase.google.com
  2. Enable Firestore (production mode), Authentication (Email/Password), and Storage
  3. Copy .firebaserc.example.firebaserc and set your project ID
  4. Deploy the security rules and indexes:
npm run firebase:deploy:rules
npm run firebase:deploy:indexes

4. Run it

npm run dev      # dev server → http://localhost:3090
npm run build    # production build
npm start        # production server

Prefer containers? A dev docker-compose.yml (and Dockerfile / Dockerfile.dev) ship in the repo:

docker compose up

Tech stack

Category Technology
Framework Next.js 16 (App Router)
Language TypeScript 5.7
UI React 19 + Radix UI (shadcn/ui pattern)
Styling Tailwind CSS 3.4 + tailwindcss-animate
Icons Lucide React + Bootstrap Icons
Charts Recharts
Calendar FullCalendar 6
Rich text TipTap 3
Diagrams @xyflow/react + dagre
Database / Auth / Storage Firebase 11 (Firestore, Auth, Storage) + firebase-admin
State Zustand 5
AI Google Generative AI (Gemini)
Dates date-fns 4
Email Nodemailer
Automation Model Context Protocol server (AI-agent time tracking)

Contributing

PRs are welcome — whether it's a bug fix, a new feature, docs, or accessibility work. Start with the Contributing Guide for local setup (Firebase included), code style, and the PR process. By participating you agree to the Code of Conduct.

Good places to jump in:

  • Testing — unit and integration coverage
  • Accessibility — keyboard nav, ARIA, screen-reader support
  • Internationalization — multi-language support
  • Mobile — responsive polish for phones
  • Performance — Firestore query and bundle-size wins

New here? Filter issues by good first issue to find a gentle starting point, or open an issue with your question — we're happy to help. Found a security issue? See the Security Policy for responsible disclosure.

If WorkHub is useful to you, please star it

A star costs nothing, helps other freelancers and small teams discover the project, and genuinely motivates continued development. Star WorkHub on GitHub

License

Licensed under the Sikasio Source Available License.

Free for personal use. Commercial use requires a license from Sikasio. See LICENSE for full terms.

FAQ

Is WorkHub really free? Free for personal use, learning, and non-commercial projects. Commercial use requires a license from Sikasio.
Can I self-host it? Yes — that's the whole point. WorkHub runs on your own Firebase project, so your data stays on your infrastructure.
Do I need the AI features? No. The AI assistant is optional and gracefully disabled without a Gemini API key. Everything else works fully without it.
How is WorkHub different from Jira / Asana / Monday? It's built for freelancers and small teams, not enterprises: project management, time tracking, finances, and AI in one self-hosted place — no per-seat pricing, no feature-gating, no vendor lock-in.

WorkHub

Built by Sikasio — From Chaos to Clarity

Report Bug · Request Feature · Star on GitHub

About

Open-source project management, time tracking, and invoicing platform for freelancers and small teams. Kanban boards, live timers, financial management, calendar, media library, and AI assistant — all self-hosted. Built with Next.js, TypeScript, Firebase, and Tailwind CSS.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages