Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

116 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Zeta

Zeta

The open-source, self-hosted project management platform built for modern engineering teams.

Sprints Β· Kanban Β· Real-time Chat Β· Wiki Docs β€” all in one beautiful app.


License: MIT Next.js TypeScript Prisma Socket.io PRs Welcome GitHub Stars


View on GitHub Β· Report a Bug Β· Request a Feature Β· Discussions


Why Zeta?

Most project management tools are either too simple or locked behind expensive SaaS subscriptions. Zeta is fully self-hosted, open source, and free β€” giving your team complete ownership of their data and workflow.

Zeta Jira Linear
Self-hosted βœ… ❌ ❌
Open source βœ… ❌ ❌
Real-time collaboration βœ… ⚠️ ⚠️
Built-in chat βœ… ❌ ❌
Wiki & Docs βœ… βœ… ⚠️
AI summaries 🚧 πŸ’° πŸ’°
Free forever βœ… ❌ ❌

Zeta in Action

Sprint Analytics Dashboard

Unified cockpit for sprint health β€” velocity trends, workload distribution, and real-time task metrics.

Sprint Analytics Dashboard


Project & Sprint Lifecycle

Spin up new projects, establish multiple active and planned sprints, map tasks, and track team activity updates.

Project & Sprint Setup

Key Walkthrough Highlights:

  • Dynamic Project Setup: Seamlessly spin up separate workspace boards with custom scopes.
  • Sprint Sequencing: Spin up multiple sprints (active and upcoming) to plan deliverables.
  • Task Alignment: Create and map tasks to sprint backlogs directly from task creation modals.
  • Dashboard Activity Feed: Monitor real-time audit trails of workspace actions on the cockpit.

Drag-and-Drop Kanban Board

Move tasks across Backlog β†’ In Progress β†’ Review β†’ Done with live Socket.io updates.

Kanban Board


Collaborative Wiki & Docs

Rich TipTap editor with @mention support, real-time viewer presence, and per-project documentation spaces.

Documentation Editor


Real-time Team Chat

1-to-1 and group messaging with typing indicators, read receipts, file attachments, and deep-link notifications.

Team Chat


Features

πŸ“Š Sprint Analytics Dashboard
  • Personalized overview: completed tasks, active tasks, total count, sprint count
  • Bar charts, area charts, and pie charts powered by Recharts
  • Filter by project and sprint for focused metrics
  • Velocity trend indicators showing week-over-week changes
  • Task completion chart over the last 30 days
  • Per-user workload and assignment distribution
πŸ“ Project Management
  • Create and manage multiple projects with descriptions
  • Role-based project membership: Viewer / Contributor / Admin
  • Invite members by email or user ID
  • Per-project settings, member management, and deletion
  • Project-level activity and audit trail
πŸ—‚ Kanban Board
  • Drag-and-drop task cards across fully customizable stages (add, rename, or remove columns)
  • Default stages: Backlog β†’ In Progress β†’ Review β†’ Done β€” extend with your own workflow steps
  • Create, edit, and delete tasks inline
  • Task cards display assignees, priority, due dates, and complexity points
  • Supports infinite subtask hierarchy via a closure table model
  • Sprint selector with start & end date indicators
  • Interactive sidebar panel with detailed audit logs per task
πŸƒ Sprint Management
  • Create sprints with start and end dates
  • Move tasks in and out of sprints (full backlog support)
  • Sprint-level activity feed and comments
  • Sprint analytics and burndown indicators
  • Mark sprints complete and archive them
πŸ“œ Activity Feed & Audit Trails
  • Main dashboard live activity feed aggregating workspace events
  • Comprehensive task-level audit timelines capturing ownership changes, status updates, description edits, and comment threads
  • Sprint-specific activity logs tracking scope additions and removals
  • Live user presence events (real-time indicators in docs and chat)
βœ… Task Detail
  • Rich TipTap editor for descriptions (bold, italic, headings, lists, images, links)
  • @mention users directly in descriptions and comments
  • Multiple assignees with roles: Owner / Secondary Owner / POC / Assignee
  • Set due dates, complexity points, sprint, reporter, GitHub link, branch name, and repo
  • Threaded comments with nested replies
  • File attachments (images, PDFs, docs, spreadsheets β€” up to 50 MB)
  • Full audit log β€” every change recorded with optional comment
πŸ“ Wiki & Documentation
  • Per-project rich-text documentation with full TipTap editor
  • Headings, blockquotes, highlights, alignment, images, and links
  • Link docs to specific tasks for full traceability
  • Real-time viewer indicator showing active user avatars
  • @username autocomplete mentions
  • Author/admin-only editing and deletion controls
πŸ’¬ Real-time Chat
  • 1-to-1 direct messages and group chats
  • Live typing indicators, online status, and read receipts
  • Rich message editor with formatting, @mentions, and file attachments
  • Message edit and soft-delete
  • Paginated message history with lazy scroll loading
  • Search messages across all chats from the command palette
  • Deep-link to any message β€” click a notification and jump directly with highlight animation
  • Group admin controls: rename, add/remove members, mute, toggle permissions
  • Unread message count badges per chat
πŸ”” Notifications
  • Types: Mention / Assigned / Project Added / Task Changed / Due Soon
  • Auto-generated Due Soon alerts within 3 days of due date
  • Real-time notification bell with badge count
  • Click any notification to deep-link to the relevant task, sprint, or message
πŸ” Global Search β€” Command Palette (`Ctrl+K` / `Cmd+K`)
  • Searches across: Projects, Tasks, Sprints, Docs, People, Chats, Files, Notifications
  • Filter by category for focused results
  • Timestamp shown for chat message results (12-hour format)
  • Instant DM creation from People search results
πŸ“Ž File Storage
  • Upload attachments to tasks, comments, sprints, and chat messages
  • 50 MB per-file limit with allowlisted MIME types
  • Global storage search β€” find any file you've uploaded or have access to
  • Files served with authentication β€” no public URLs
βš™οΈ Admin Panel (Owner/Admin only)
  • SMTP configuration β€” host, port, auth, TLS, and test connection
  • AI configuration β€” enable/disable Gemini, choose model, set API key
  • User invitations β€” invite by email with role assignment; revoke pending invites
  • Privilege management β€” promote/demote users (owner only)
  • Background email queue with retry logic (up to 3 attempts)
πŸ” Authentication
  • Credentials login (email + password, min 8 characters)
  • GitHub OAuth (optional)
  • Email verification flow (when SMTP is configured)
  • Forgot password / reset password via secure token email
  • Invite-only registration option
  • First registered user is automatically Owner + Admin
  • Session-based auth via NextAuth.js v5

Tech Stack

Layer Technology
Framework Next.js 16 (App Router)
Language TypeScript 5
UI Tailwind CSS v4, Radix UI, Lucide Icons
Rich Text Tiptap v3
Database PostgreSQL via Prisma 7
Real-time Socket.io 4
Auth NextAuth.js v5
Charts Recharts
Drag & Drop @hello-pangea/dnd
AI Google Gemini API
Email Nodemailer
Command Palette cmdk
Notifications Sonner
Passwords bcryptjs

Self-Hosting with Docker (Recommended)

The fastest way to get Zeta running is with Docker Compose. It spins up the app, PostgreSQL, pgAdmin (database UI), and Dozzle (log viewer) with a single command.

Step 1 β€” Clone the Repository

git clone https://github.com/codeterrayt/Zeta.git
cd Zeta

Step 2 β€” Configure Environment

Copy the example env file:

cp .env.example .env

Open .env and fill in the required values:

# Database (auto-configured by Docker Compose)
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/Zeta?schema=public"

# NextAuth β€” required for session encryption
AUTH_SECRET="your-auth-secret"
NEXTAUTH_URL="http://localhost:3000"
AUTH_TRUST_HOST=true

# Cron endpoint protection β€” generate with the command below
CRON_SECRET="your-cron-secret"

Generate your secrets using Node.js crypto (no extra packages needed):

# Generate AUTH_SECRET
node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))"

# Generate CRON_SECRET
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

Copy the output values into your .env file.

Step 3 β€” Build & Start

docker compose up --build -d

That's it. Zeta starts with default configurations. Once running:

Service URL Notes
Zeta App http://localhost:3000 Main application
pgAdmin http://localhost:5050 DB admin UI (admin@gmail.com / admin)
Dozzle Logs http://localhost:8888 Container log viewer

The first account you register automatically becomes the Owner account. Register immediately after first boot to claim ownership.


Local Development Setup

If you'd prefer to run without Docker:

Prerequisites

  • Node.js >= 18
  • PostgreSQL >= 14
  • npm or pnpm

Steps

# 1. Clone
git clone https://github.com/codeterrayt/Zeta.git
cd Zeta

# 2. Install dependencies
npm install

# 3. Configure environment
cp .env.example .env
# Edit .env with your database URL and secrets (see above)

# 4. Run migrations
npx prisma migrate deploy
npx prisma generate

# 5. Start the dev server
npm run dev

Open http://localhost:3000. The first user to register becomes the Owner and Admin.

Useful Dev Commands

# Lint the codebase
npm run lint

# Type-check without building
npx tsc --noEmit

# Explore the database visually
npx prisma studio

# Reset the database (destroys all data)
npx prisma migrate reset

Environment Variables Reference

Variable Required Description
DATABASE_URL βœ… PostgreSQL connection string
AUTH_SECRET βœ… NextAuth session encryption secret
NEXTAUTH_URL βœ… Full URL of your deployment (e.g. http://localhost:3000)
AUTH_TRUST_HOST βœ… Set to true when behind a proxy or in Docker
CRON_SECRET βœ… Secret to protect the /api/cron endpoint

Project Structure

Zeta/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ actions/          # Server Actions (auth, chat, tasks, notifications, search…)
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ (auth)/       # Login, Register, Verify Email, Reset Password
β”‚   β”‚   β”œβ”€β”€ (dashboard)/  # Dashboard, Projects, Sprints, Kanban, Chat, Docs, Settings
β”‚   β”‚   └── api/          # REST API routes (upload, tasks PATCH, cron)
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ chat/         # Chat window, message list, composer, group info panel
β”‚   β”‚   β”œβ”€β”€ editor/       # TipTap editor + mention extension
β”‚   β”‚   β”œβ”€β”€ kanban/       # Kanban board and cards
β”‚   β”‚   β”œβ”€β”€ layout/       # Sidebar, navbar, command palette, notification panel
β”‚   β”‚   β”œβ”€β”€ projects/     # Project list, task detail modal, sprint views
β”‚   β”‚   β”œβ”€β”€ settings/     # User settings, admin panel
β”‚   β”‚   └── sprints/      # Sprint dashboard, activity feed
β”‚   β”œβ”€β”€ lib/              # Prisma client, mail queue, utility helpers
β”‚   └── auth.ts           # NextAuth configuration
β”œβ”€β”€ prisma/
β”‚   └── schema.prisma     # Full database schema
β”œβ”€β”€ server.js             # Custom Node.js server (Next.js + Socket.io)
β”œβ”€β”€ docker-compose.yml    # Docker Compose with Postgres, pgAdmin, Dozzle
└── .env.example          # Environment variable template

Roadmap

  • AI-powered thread summaries via Gemini API
  • Github Integration with Tasks

Contributing

We warmly welcome contributions from the community! Whether it's fixing a bug, improving docs, adding a feature, or sharing feedback β€” every contribution matters.

How to Contribute

  1. Fork this repository
  2. Create a branch for your change
    git checkout -b feat/your-feature-name
  3. Make your changes β€” keep commits focused and atomic
  4. Test your changes locally
  5. Open a Pull Request against main with a clear description

Guidelines

  • Follow the existing code style (TypeScript strict, Tailwind CSS v4, server actions)
  • Keep PRs small and focused β€” one feature or fix per PR
  • Use Conventional Commits for commit messages
  • If adding a new feature, update the relevant documentation
  • For security issues, open a private security advisory instead of a public issue

Good First Issues

Issues tagged good first issue are well-scoped and beginner-friendly.


Security

Zeta takes security seriously. If you discover a vulnerability, please do not open a public issue. Instead, open a private security advisory.

Security hardening includes: authenticated file serving, per-project authorization on all write operations, MIME type allowlisting, prompt injection mitigation, and cryptographically generated secrets.


License

Zeta is open source, released under the MIT License.


Acknowledgements

Built with these amazing open-source projects:

Next.js Β· Prisma Β· Socket.io Β· Tiptap Β· Tailwind CSS Β· NextAuth.js Β· Recharts Β· Radix UI Β· Lucide Β· hello-pangea/dnd


⭐ If Zeta is useful to you, please star the repository β€” it helps others find the project!

⭐ Star on GitHub Β· πŸ› Report Bug Β· πŸ’‘ Request Feature Β· πŸ’¬ Discussions

About

πŸš€ Next-Gen Agile Workspace & Jira Alternative built with Next.js 15, date-driven Sprints, Cmd+K search, secure attachments, and collaborative team wikis.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages