Context
We currently use both Linear and GitHub Issues to manage our work. The team has raised several concerns about this dual-system approach:- Unordered backlog: The support person doesn’t know which issues to prioritize.
- Lack of transparency: We need to be more transparent about our priorities and vision.
- Workflow inconsistency: Team members follow different workflows.
- Tooling issues:
- When viewing GitHub Issues, it’s difficult to relate them to Linear issues.
- Linear and GitHub have different workflows. We have a CI action that automatically closes GitHub issues, which creates confusion.
- etc.
Goals
This document aims to:- Align the team under a single workflow
- Track all issues (customer-reported and internal) in one place
- Create a prioritized backlog for the support person
- Maintain a lightweight workflow
- Engage the community with a public roadmap and voting system
Solution: Unify on GitHub
To address the team’s concerns and meet our goals, we will deprecate Linear and consolidate all work tracking into GitHub using Issues and Projects.The New Workflow
We will adopt a standardized workflow across three GitHub Projects: Support, Team, and Roadmap.| Project | Visibility | Purpose |
|---|---|---|
| Support | 🟢 Public | Customer-facing issues: bugs, small feature requests, and support tickets |
| Team | 🔒 Private | Internal tasks and engineering work using two repositories (polar and polar-internal) |
| Roadmap | 🟢 Public | High-level features and initiatives we’re delivering |
Issue Types
We will use two primary issue types: Feature- Large chunks of work that typically take more than a week to plan, design, and implement. Wallets, Product Analytics, Seats are some examples.
- Tags:
#votes-needed- Feature not yet planned#community-request- Feature requested by the community
- A deliverable that needs to be completed. Can be a sub-issue of a feature or standalone
- Tags:
#bug- An error in the system#support- A support task where a customer requested help#votes-needed- A small feature that hasn’t been planned yet#community-request- A feature requested by the community#contributor-friendly- Tasks the community can participate in (support person should review these)
- New issues that need to be triaged
Workflow: Team Project
The Team project is what we’ll use daily as engineers to track our initiatives and tasks. This project shows:- Features and Tasks we are currently working on
- The backlog of remaining work
- Backlog: all issues that are not assigned to anyone
- Next: the top 5 issues to be implemented by each engineer.
- In Progress: issues that are assigned to someone
- Done: issues that are completed
- Every engineer is responsible for creating issues, prioritizing them, and keeping them clean that are related to the project that they lead. They should also ensure that the issues are assigned to the right person and that the status is updated regularly.
- Most issues will be public under the
polarsource/polarrepository - Private tasks or initiatives should be created under
polarsource/polar-internal
Workflow: Support
The Support workflow is more complex as it requires community interaction. We’ll start simple by categorizing all issues into three types:- Bug: Something is broken and needs fixing. We will use the
Tasktype and thebuglabel. - Feature Request: A new capability or improvement. We will use the
FeatureorTaskdepending on the size, type andvote-neededlabel. - Support: A user needs help or guidance. Issue will be closed and asked to write to support@polar.com.
Support Process Steps
The main steps are the following:- Triage: every new issue will be where
- Discussion: under team review if we should implement it or not
- Backlog: issues agreed to be implemented by the team.
- Next: the top 10 issues to be implemented by the support engineer.
- In Progress: the issues currently working on by the support engineer.
- Review: opened pull requests by other team members that needs review
- Done: the issues completed by the support engineer.
- Is the issue clear?
- Is it a Bug, Feature Request, or Support Ticket?
- Does it already exist?
- If it’s a support request: ask the user to write to support@polar.com and close the issue.
- If unclear: Keep it in Triage until clarified, or close it after 14 days
- If clear and it’s a feature: Move to Discussion
- If clear and it’s a bug: Change the type to Bug and move to Backlog
- S: 1 day
- M: 1 week (5 days)
- L: Larger than a week
- If we don’t plan to do it, document why
- If the size is L, move the issue to Roadmap > Backlog
- Community votes
- Support person’s judgment
- On-call engineer’s input
- Review pull requests and provide feedback
- Merge pull requests if they are ready
Workflow: Roadmap
The Roadmap is public and shows the initiatives we plan to work on. Contents:- Internal initiatives created by the team
- Large feature requests from customers
- Backlog - All initiatives
- Next - The next initiatives we will work on
- In Progress - Current initiatives being worked on
- Done - Completed initiatives
- Primary owner: Birk
- Initiative owners keep their sections updated
- Priorities are discussed ad-hoc in meetings or during onsites
Migration Plan
Decommission Linear- Linear will be phased out over two weeks
- All new issues must be created in GitHub starting immediately
- Public issues already exist in GitHub
- Private issues will be created under the
polar-internalrepository
- A quick-start guide will be provided to ensure smooth onboarding
FAQs
What if a private task is needed? Create it directly in thepolar-internal repository and mark it as private.
How will voting work?
Use the 👍 GitHub reaction on issues to vote.
How are sizes stored
We will use a new project field called “Size” to store the size of each Task.
Next Steps
- Immediate: Start creating all new issues directly in GitHub
- Next week: Complete migration of existing issues from Linear
- Ongoing: Gather feedback and continuously improve the workflow

