💻How we work on Tickets

Linear and SyncLinear.com

We use linear.app for all issue tracking and use synclinear.com, our self-made Linear 🔄 GitHub Sync tool to 1-to-1 sync tickets.

This app lets you mirror Linear tickets to public GitHub issues, comments and all. This way, open-source teams can chat with contributors without giving access to an internal Linear team.

By default, every ticket from Linear will be sent to GitHub and comments and statuses will be synced back and forth.

Non-team members such as open-source contributors can continue to create tickets on Github and Cal.com Core members can assign the label "linear" to sync it back into Linear.

The roadmap will continue to be public: cal.com/roadmap.

We run on a monthly tagged release schedule with multiple minor releases each week.

When you're joining the team, make sure to join the "Cal.com, Inc." Linear team and then visit synclinear.com

  • click "Connect to Linear" and make sure to select the “Engineering team” on the Linear dropdown and not “Product team”

  • click "Connect to GitHub" and select calcom/cal.com

Process for taking on work

It's extremely important all engineers follow this process. Otherwise, keeping milestones up to date with the latest and greatest prioritized work is almost impossible.

  • Source of truth: Priority engineering view in Linear

    • For tracking milestones, we use Linear Projects (v3.5, v3.6, etc.). This view will be automatically filtered based on our current milestone.

      • Project in Linear lines up to the Milestone in GitHub (for now because cycles in Linear don't work well for lining up the dates)

    • This is what will always be kept up to date by the Product team. Do not start work on something unless it's listed here. If you think something needs to be taken on and it's not yet in this view, contact the Product team.

    • We should take work from the top down in terms of priority. It should be rare you find yourself taking on work that has lower priority than other issues with higher priority that have not yet been started. If you don't feel comfortable starting an issue with higher priority for whatever reason, contact someone from the Product team.

  • If any items are marked as Urgent, drop what you are doing and pick up the issue.

    • Assign yourself and change its status to In Progress.

    • If an Urgent item is already assigned but no marked as In Progress, contact that person and check on the status. If it's actually not in progress, take it. If it is in progress, mark it as In Progress in Linear.

  • If there are no Urgent items, take an item you are comfortable working on from the next highest item in the list.

    • Note: This list can be manually prioritized, which will be handled by the Product team. Do not move items around.

Linear Tips and Tricks

Use Favorites to reduce noise

Use Keyboard shortcuts

  • Hover over a function to see the keyboard shortcut

Add mobile website to Homescreen for PWA experience

  • on iPhone, open linear.app on Safari and "Add to Homescreen"

  • on Android, open with Chrome and "Add to Homescreen"

Add "linear" to Github tickets from Community members

  • They'll then show up and sync in Linear

Remove "Public" label for private issues

  • For sensitive issues in Linear (such as userdata or security issues), remove the "Public" label

Linear Issue vs Discussion

Our Issues should only include code-related issues.

Last updated