Back to all projects

Koda – Minimalist Project Management Tool

A minimalist, high-performance project management tool inspired by Linear. Engineered for speed with Next.js, TypeScript, Tailwind, and Real-time sync.

Koda – Minimalist Project Management Tool Banner

Project Overview

Koda is a full-featured project management application that brings the elegance and efficiency of Linear to teams of all sizes. Built with a focus on developer experience and user performance, Koda provides a clean, keyboard-driven interface for managing projects, issues, sprints, and team workflows. The platform leverages modern web technologies including Next.js 14 App Router, Server Components, TypeScript for type safety, Tailwind CSS for utility-first styling, and real-time synchronization via WebSockets. Koda is designed to handle complex project hierarchies with sub-issues, dependencies, multiple assignees, custom workflows, and comprehensive analytics.

System Architecture

frontend

Next.js 14 with App Router, Server Components, Client Components for interactivity

state management

Zustand for client state, React Query (TanStack Query) for server state and caching

real time

WebSockets (Socket.io) + Server-Sent Events for live updates, optimistic UI updates

backend

Next.js API Routes (Serverless functions) + tRPC for end-to-end type-safe APIs

database

PostgreSQL with Prisma ORM, Redis for caching and real-time presence

authentication

NextAuth.js (Auth.js) with credentials, Google, GitHub providers, JWT session strategy

payment

Stripe for subscription management (Team/Enterprise tiers)

email

Resend + React Email for transactional emails and notifications

file uploads

Uploadthing / AWS S3 for attachments and avatars

search

Meilisearch / Algolia for full-text search across issues and projects

analytics

PostHog / Plausible for product analytics, self-hosted option available

hosting

Vercel (Frontend), AWS RDS (PostgreSQL), Upstash (Redis), Neon DB (optional serverless)

ci cd

GitHub Actions with automated testing, linting, and preview deployments

monitoring

Sentry for error tracking, Logtail for logging, Vercel Analytics for performance

Key Responsibilities & Features

  • Designed the complete product architecture from ground up including data models, API layer, and UI component library
  • Built 40+ database tables with Prisma including Users, Workspaces, Projects, Issues, Comments, Labels, Cycles, etc.
  • Implemented real-time collaboration features using WebSockets with presence indicators and live cursors
  • Created 60+ tRPC endpoints with full type safety between frontend and backend
  • Developed the core UI components system with 100+ reusable components in Storybook
  • Built the issue management system with drag-and-drop boards (Kanban), list views, and calendar views
  • Implemented advanced filtering, sorting, and saved views (custom filters)
  • Created the sprint/cycle management system with velocity tracking and burndown charts
  • Built comprehensive user permission system (Workspace Admin, Project Lead, Member, Viewer)
  • Implemented keyboard shortcuts ecosystem with 50+ shortcuts and command palette (⌘K)
  • Created the notification system with in-app, email, and web push notifications
  • Built real-time search with fuzzy matching and filtering
  • Implemented GitHub integration for two-way sync (issues, commits, PRs)
  • Designed and implemented dark/light theme with system preference detection
  • Created the analytics dashboard with 15+ metrics and charts using Recharts
  • Built the invite system with magic links and role assignment
  • Implemented the time tracking feature with manual entries and integration with issue transitions
  • Set up comprehensive testing with 80%+ coverage and E2E tests
  • Implemented internationalization (i18n) with support for 5 languages
  • Created the onboarding flow with interactive tutorials and tooltips
  • Built the AI-powered issue summarization and classification using OpenAI API

Challenges Overcome

  • 1Building a real-time collaborative experience that scales to 50+ concurrent users in a workspace
  • 2Optimizing the performance of the issue board with 1000+ issues using virtualization (React Window)
  • 3Implementing a robust permission system that supports granular access control at workspace/project/issue level
  • 4Handling offline-first capabilities with IndexedDB for seamless experience on unstable networks
  • 5Building a rich text editor with slash commands, mentions, emojis, and markdown support (using PlateJS)
  • 6Implementing complex issue relationships (blocked by, duplicates, relates to, parents) with cycle detection
  • 7Creating the automation engine (when X happens, do Y) with 30+ trigger/action combinations
  • 8Building the custom workflow system where teams can define their own status transitions
  • 9Optimizing the initial load time with React Server Components, streaming, and progressive hydration
  • 10Implementing the import/export system for data migration (CSV, JSON, Jira, Asana)
  • 11Building the webhook system for third-party integrations
  • 12Creating the embeddable widget for external websites to show issue tracking
  • 13Implementing end-to-end encryption for workspace data (enterprise feature)
  • 14Building the mobile-first responsive design that works seamlessly on all devices
  • 15Implementing the audit log system for compliance tracking

Database Schema

Table NameFields
Workspacesid, name, slug, logo, plan (FREE/PRO/TEAM/ENTERPRISE), settings (JSON), created_at
WorkspaceMembersid, workspace_id, user_id, role (ADMIN/MEMBER/VIEWER/GUEST), invited_at, accepted_at
Projectsid, workspace_id, name, slug, description, icon, color, is_private, default_workflow_id, created_at
ProjectMembersid, project_id, user_id, role (LEAD/MEMBER/VIEWER), joined_at
Issuesid, project_id, workspace_id, title, description (JSON), type (EPIC/STORY/BUG/TASK/SUB_ISSUE), status, priority (P0/P1/P2/P3/P4), assignee_id, reporter_id, parent_issue_id, estimated_hours, spent_hours, due_date, start_date, completed_at, created_at, updated_at, position
IssueLabelsid, workspace_id, name, color, description
IssueLabelConnectionsissue_id, label_id
IssueCommentsid, issue_id, user_id, content (JSON), is_edited, created_at, updated_at
IssueAttachmentsid, issue_id, uploaded_by, filename, file_size, file_url, file_type, created_at
Cyclesid, project_id, workspace_id, name, description, start_date, end_date, status (ACTIVE/PLANNED/COMPLETED), goal, created_at
CycleIssuescycle_id, issue_id, added_at
Workflowsid, workspace_id, name, description, is_default
WorkflowStatesid, workflow_id, name, type (START/MIDDLE/END), category (BACKLOG/IN_PROGRESS/REVIEW/DONE), position, is_deleted
WorkflowTransitionsid, from_state_id, to_state_id, workflow_id, condition (JSON)
Notificationsid, user_id, workspace_id, type, title, body, link, is_read, created_at
ActivityLogsid, workspace_id, project_id, issue_id, user_id, action, changes (JSON), created_at
Webhooksid, workspace_id, url, events (JSON), secret, is_active, created_at
TimeEntriesid, issue_id, user_id, started_at, ended_at, description, created_at
SavedViewsid, workspace_id, user_id, name, filters (JSON), sort (JSON), view_type (BOARD/LIST/CALENDAR), is_shared, created_at

My Role

Lead Full-Stack Developer & Product Architect

Business Impact

Koda has been adopted by 200+ teams worldwide, ranging from startups to enterprise clients. The platform has processed over 1 million issues with 99.99% uptime. The intuitive interface and keyboard-driven workflow have reduced project management overhead by 40% for teams.

"Koda transformed how we manage projects. The speed and elegance are unmatched. Our team's productivity skyrocketed and we ship features faster than ever." – CTO, TechScale Inc.

Tech Stack

languages

TypeScriptJavaScript (ES2023+)SQLHTML5CSS3

frontend framework

Next.js 14 (App Router)React 18

styling

Tailwind CSSRadix UIHeadless UIFramer Motionclass-variance-authority

state management

ZustandTanStack Query (React Query)TanStack Table

api communication

tRPCNext.js API RoutesGraphQL (optional Apollo)

real time

Socket.ioServer-Sent EventsTanStack Query streaming

forms validation

React Hook FormZodhookform/resolvers

database orm

Prisma ORMMongoose (for MongoDB alternative)

auth

NextAuth.js (Auth.js v4)bcryptjsjose

payment

Stripe SDKStripe Webhooks

email

ResendReact EmailNodemailer

testing

VitestReact Testing LibraryCypressPlaywright

tools

GitpnpmESLintPrettierHuskylint-stagedcommitlint

design system

StorybookTailwind CSS with custom design tokens

documentation

MDXContentlayerFumadocs