Linear
The system for modern product development
Project Management & Issue Tracking
The verdict
Build a focused personal clone of Linear to master keyboard-driven web interfaces, but expect to compromise on the zero-latency offline sync engine.
Replicating Linear for personal use is a rewarding test of frontend architecture, but you will hit massive engineering walls trying to match its native-grade feel. While an AI agent can quickly scaffold the Next.js routes, PostgreSQL tables, and basic issue CRUD forms, you will struggle with the offline-first sync engine, complex Cmd+K keyboard focus management, and real-time conflict resolution. The real product relies on years of bespoke state-machine engineering that cannot be prompted into existence in a weekend.
Estimated effort: 3-4 weeks of focused development and debugging
What you can't replicate
- Zero-latency optimistic local sync engine handling concurrent offline writes
- Instantaneous CJK-compatible command menu and custom layout rendering
- The massive library of native enterprise integrations (GitHub, Slack, Zendesk, Figma)
- Years of micro-interaction polish and CSS tuning for sub-16ms frame rendering
Founded
2019
Raised
$134.2M
Team
100-180
Cheapest paid tier
$0
What Linear does
Linear is a purpose-built issue-tracking and product development platform designed for modern software teams, combining high-performance local-first workflows, strategic roadmaps, cycles, and deep AI agent integrations.
Core features
- Instantaneous local-first UI state with optimistic updates
- Global command menu (Cmd+K) and keyboard-first navigation (J/K)
- Issue tracking, filtering, priorities, states, and labels
- Cycle planning and roadmapping views
- Triage workflow for incoming requests
- Rich-text markdown editor with comments and mentions
- Real-time WebSocket collaboration and workspace sync
- Basic LLM agent integration for issue summarization and routing
The business
Pricing
- Free$0
- Basic$10/mo
- Business$16/mo
- EnterpriseCustom
Funding
$134.2M from Accel, Sequoia Capital, 01 Advisors, Seven Seven Six, Designer Fund, Patrick Collison, Dylan Field, Guillermo Rauch
Pay vs build, cumulative
Break-even at month 1 — after that, every month is money kept.
The hard parts of vibe coding Linear
- Building a custom offline-first sync engine with optimistic concurrency control
- Achieving sub-16ms layout responsiveness and native app fluidity in a web browser
- Complex global keyboard event routing without dead zones or CJK IME input lag
- Real-time multi-user conflict resolution across shared document and issue trees
- Streaming LLM tool calls and structural code diff viewers
How to vibecode Linear
Prerequisites
Node.jsfree
Runtime environment for building and running the Next.js application stack.
GitHubfree
Version control repository hosting and deployment hook integration.
AI coding tools
Recommended stack
| Frontend | Next.js with Tailwind CSS and Zustand for client state |
|---|---|
| Backend | Next.js API routes / Server Actions |
| Database | Supabase PostgreSQL with Row Level Security |
| Auth | Supabase Auth (Email / Google OAuth) |
| Payments | None (Personal use clone) |
| Other | Drizzle ORM for database schema definitions, Zod for runtime validation, Cmdk library for command menu handling |
Build guide
01Project Scaffolding and Database Schema
Initialize a Next.js project with Tailwind CSS, configure Drizzle ORM connected to Supabase PostgreSQL, and set up core tables for workspaces, teams, users, issues, projects, and cycles.
Scaffold a new Next.js app with TypeScript, Tailwind CSS, and App Router. Set up Drizzle ORM configured for Supabase PostgreSQL. Create a robust database schema with tables for users, workspaces, team_memberships, teams, issues (with fields for title, description, status, priority, estimate, team_id, creator_id, assignee_id), projects, and cycles. Include foreign key constraints, indexes on frequently filtered foreign keys, and default UUID primary keys. Ensure migrations run cleanly and add a seed script to populate mock workspace data with sample issues.02Authentication and Workspace Setup
Implement Supabase Auth with email magic links and Google OAuth, alongside a workspace creation and team invitation flow.
Implement authentication using Supabase Auth in Next.js, supporting Google OAuth and email magic links. Create a middleware to protect workspace routes and handle session cookies securely. Build an onboarding page where authenticated users without a workspace can create a new organization, assign a team slug, and invite mock team members. Store user profile records synchronized with Supabase auth.users via database triggers.03Issue Tracking Table & Keyboard Navigation
Build the main issue list view featuring custom status badges, priority icons, inline editing, and Vim-style J/K keyboard navigation.
Build the primary issue tracking table view in Next.js mimicking Linear's layout. Include columns for issue identifier, title, status icon, priority icon, assignee avatar, and due date. Implement global keyboard shortcuts using a custom hook: 'j' and 'k' to move selection down and up the list, 'e' to edit, 'c' to open the issue creator modal, and arrow keys for navigation. Add optimistic UI updates when changing issue statuses or priorities directly from the list view.04Command Menu (Cmd+K) and Quick Actions
Implement a global command menu (`Cmd+K` / `Ctrl+K`) powered by `cmdk` to allow fast navigation, issue creation, and theme toggling.
Implement a global command menu modal triggered by Cmd+K or Ctrl+K using the 'cmdk' library. The menu must support fuzzy searching across views (Issues, Roadmap, Settings), executing quick actions like 'Create new issue', 'Change theme', and navigating directly to specific teams or projects. Ensure the input handles IME composition cleanly without dropping keystrokes, and trap focus correctly inside the modal when open.05Cycle Planning and Roadmap Views
Build cycle management screens and timeline roadmaps to organize issues into scheduled sprints and strategic initiatives.
Create a Cycle Planning view where users can view active, upcoming, and completed cycles for a team. Allow dragging or assigning issues into active cycles with capacity meters tracking total points. Additionally, build a basic timeline roadmap view grouping projects by month or quarter. Use Tailwind grid layouts to display project bars horizontally across a date axis, supporting click-to-edit project details.06Triage Workflow and AI Summarization
Build an incoming Triage view and integrate an LLM endpoint to automatically suggest team routing and summarize issues.
Build a dedicated Triage view for unassigned or newly reported issues. Integrate an AI assistant endpoint using the Vercel AI SDK and Anthropic API that reads incoming issue descriptions and automatically suggests appropriate priorities, labels, and team routing. Provide 'Accept' and 'Dismiss' buttons that apply the AI suggestions instantly with smooth animation transitions.07Polish, Realtime Sync, and Deployment
Add Supabase Realtime subscriptions for live multi-user issue updates, refine micro-interactions, and deploy to Vercel.
Configure Supabase Realtime postgres changes subscriptions in the frontend application so that issue creation, status updates, and comments sync instantly across multiple browser tabs without requiring manual page refreshes. Refine UI transitions, tooltips, and loading skeletons to eliminate layout shift. Prepare environment variable configurations for production deployment on Vercel and verify clean build output.
Cost vs paying for Linear
What will you build it with?
Starting total with Claude Code$0 one-time
Starting costs (one-time)
- Custom domain (optional)$12/year
Total~$12 one-time
Ongoing costs (monthly)
- Supabase Database & Auth$0/mo (Free tier)
- Vercel Hosting$0/mo (Hobby tier)
Total$0/mo
Paying for Linear
$16/user/mo
Your time to build
40-60 hours
AI tool credits
$20/mo (Claude Pro or Cursor)
Break-even
N/A (Personal build for learning)
Sources
Vibecoded copycats
All copies →Loading…