A personal issue tracker is a small app: issues with a team key and number, statuses, priorities, labels, projects, cycles and a command palette. An agent can build a usable one-person version on SQLite in an evening, and Linear's own Free plan already covers a lone developer's first 250 issues. The weekend goes on what makes Linear feel like Linear: a client that applies changes instantly and syncs deltas in the background, a shortcut for every action, and pull-request links that move issues along. Team assignment, chat and support-desk integrations and the hosted AI agents are out of reach.
Before you buildLinear Free allows 250 issues and 2 teams with unlimited members. A solo developer under that may never need to pay.
Build me a personal issue tracker to replace Linear. Requirements: - Node.js 22 + TypeScript: a Fastify API and a React front end built with Vite. `npm start` serves http://localhost:4700. - Storage: better-sqlite3 in ./data/tracker.db. Tables: teams (a key like ENG), issues (team key plus a per-team counter, so ENG-12), projects, cycles, labels, comments. An issue has a title, markdown description, status, priority 0-4, estimate, due date and an optional parent. - Statuses are ordered per team (Backlog, Todo, In Progress, In Review, Done, Canceled); moving an issue stamps its started, completed or canceled date. - Keyboard first: Cmd/Ctrl+K command palette, C creates an issue, J/K moves down and up a list, S sets status, P priority, L labels, Esc closes panels. Every action also has a button. - Views: a list grouped by status, a drag-and-drop board, and a project page with done-over-total progress. Saved filters by status, label, priority and project. - Cycles: a team sets a length in weeks; the current cycle lists its issues with a burn-up count, and a button rolls unfinished issues into the next one. - The UI updates optimistically from a local store (Zustand) and writes to the API in the background; failed writes are shown and retried, never dropped silently. - Export: CSV with Linear-style columns (ID, Team, Title, Description, Status, Priority, Project, Labels, Cycle Number, Created, Completed) and a JSON dump of the database. - Single user. No accounts, no telemetry, local-first. - Out of scope: other users, notifications, Git and Slack integrations, mobile apps, AI features. - README: setup, where the data lives and how to back up ./data.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Linear.
Add a Linear importer to the issue tracker in this folder. Requirements: - `import-linear <file.csv>` reads Linear's CSV export: ID, Team, Title, Description, Status, Priority, Project, Labels, Cycle Number, Created, Completed and Parent issue. - Create missing teams, projects, labels and cycles; keep the original issue identifiers (ENG-12) and set each team's counter past its highest number. - Map Linear priorities to ours; list any status names that don't exist yet and ask before creating them. - Dry run by default, --apply to write, and a summary of what was skipped. - Update the README.
Add GitHub linking to the issue tracker in this folder. Requirements: - GITHUB_TOKEN (fine-grained, read-only for pull requests) and a list of owner/repo names in .env. - Poll the GitHub API every 2 minutes; do not open any public port. - Match issue keys like ENG-12 in branch names and pull request titles; show linked pull requests on the issue with their state. - Open pull request: set In Review. Merged: set Done. Closed without merging: leave the status and note it in a comment. - Update the README with the token scopes needed.
Add a command-line client to the issue tracker in this folder. Requirements: - `tracker add "title" -t ENG -p 2 -l bug` creates an issue through the local API and prints its key. - `tracker list -t ENG --status todo` prints a compact table; `tracker done ENG-12` completes one. - Read the API address from TRACKER_URL, defaulting to http://localhost:4700. - Exit non-zero with a clear message when the server isn't running. - Update the README with a shell alias example.
Add a weekly digest to the issue tracker in this folder. Requirements: - Every Monday at 08:00 local time send one email through SMTP settings in .env. - Sections: completed last week, still open from the current cycle, overdue, due this week. - Plain HTML with issue keys linking to http://localhost:4700 or a PUBLIC_URL from .env. - A --preview flag prints the email to the terminal instead of sending it. - Update the README.
A tracker only works when everyone uses it, and Linear's speed and shortcuts are the reason engineering teams do. Its integrations then tie issues to pull requests and support tickets, which makes leaving a bigger move than a $10 seat suggests.
Estimate · Runs on your own machine; a $5 VPS only matters if you want it reachable from your phone. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0/workspace | $0/workspace | Unlimited members, 2 teams, 250 issues in total, 10 MB file uploads, the agent platform and Linear Agent. |
| Basic | — | $10/user | Up to 5 teams, unlimited issues and file uploads, admin roles. |
| Business | — | $16/user | Unlimited teams, private teams and guests, Triage Intelligence, Loops, Code Intelligence, Insights, Asks, Zendesk and Intercom integrations. |
| Enterprise | custom | — | SAML and SCIM, invoice and PO billing, granular admin controls, migration and onboarding help, priority support. |
Free has unlimited members but only 2 teams, 250 issues and 10 MB uploads.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Real-time work with a team: assignees, comments, mentions and notifications, Git and chat integrations that update issues from pull requests and messages.
About $10 a month on the Basic plan per seat, $120 a year (checked 2026-10-14).
Real-time work with a team: assignees, comments, mentions and notifications; Git and chat integrations that update issues from pull requests and messages; Triage, Insights and the AI agents that come with the Business plan; Roadmaps and initiatives that span several teams; The desktop and mobile apps. If any of those matter to you, keep paying.
Yes: Plane (open source), Huly (open source), OpenProject (open source).