Linear
Issue tracking that stays fast under keyboard-only use, with cycles and triage small teams actually maintain.
What it does
| Primary use case | Linear focuses on issue tracking, sprint planning, and team collaboration for software development workflows. |
|---|---|
| Data storage and ownership | Linear hosts data in the cloud, managing infrastructure and syncing across team members automatically. |
| Collaboration model | Linear is built for real-time team collaboration, with shared boards, assignments, notifications, and role-based permissions. |
| Keyboard and speed focus | Linear emphasizes keyboard-first navigation and fast performance even as issue counts grow, according to its tagline. |
| Extensibility | Linear offers integrations with development tools (GitHub, Slack, etc.) and an API for custom workflows. |
Pick Linear if
- You need structured issue tracking, sprint cycles, and triage workflows for a software development team.
- Real-time collaboration and automatic cloud syncing across team members are essential.
- You prefer a keyboard-first interface optimized for fast navigation through tasks and projects.
- Integration with developer tools like GitHub, GitLab, or CI/CD pipelines is a priority.
- You need a dedicated issue tracker with cycles, roadmaps, and team collaboration features.
- Your team works across macOS, Windows, and mobile platforms.
Compare
Security headers: B, 80 out of 100
Number 29 of 95 in the ranking. Missing 3 of the 9 headers we check.
Meets the B minimum (70/100) in our RFP clause.
With these headers missing, linear.app is more exposed to clickjacking.
Missing 3
-
Permissions-Policy 0 of 10
Switches off browser features the product does not use, such as camera, microphone, location and payments, for the page and anything embedded in it.
Without it: Any script or iframe on the page, including third-party ads and chat widgets, can ask the user for camera, microphone or location access under the vendor's name.
-
Cross-Origin-Opener-Policy 0 of 5
Cuts the link between the product's window and windows opened by, or opening, other sites.
Without it: A page that opens the product keeps a handle on its window and can later redirect it to a look-alike sign-in or payment page (tab-nabbing) while the user thinks they are still on the real site. It is also part of the isolation browsers need to defend against Spectre-style attacks.
-
Cross-Origin-Resource-Policy 0 of 5
Tells browsers which sites may load this site's resources.
Without it: Other sites can pull the product's responses into their own pages, which makes side-channel leaks of what a signed-in user can see easier.
Sent 6
-
Content-Security-Policy 25 of 25
default-src 'self' https://static.linear.app https://static.linear.dev; connect-src https://*.ads.linkedin.com 'self' https://o415358.ingest.sentry.io/api/5337513/ https://o415358.ingest.sentry.io/api/4504277957279744/ wss://ornj730p.api.sanity.io/ https://ornj730p.apicdn.sanity.io/ https://*.linear.app https://9RXBCYQ6DV-dsn.algolia.net https://linearstatus.com/ https://statuspage.incident.io/ https://app.posthog.com https://api.github.com/ https://api.openai.com/v1/realtime/calls https://us.api.openai.com/v1/realtime/calls https://eu.api.openai.com/v1/realtime/calls https://raw.githubusercontent.com/ https://www.githubstatus.com/ https://dns.google/ http://127.0.0.1:44450/ http://127.0.0.1:18450/ http://127.0.0.1:33234/ https://api.linear.app https://client-api.linear.app wss://sync.linear.app/ https://*.sandbox.linear.run wss://*.sandbox.linear.run https://storage.googleapis.com/uploads.linear.app/ https://storage.googleapis.com/linear-uploads-europe-west1/ https://storage.googleapis.com/linear-uploads-us-central1/ https://storage.googleapis.com/imports.linear.app/ https://storage.googleapis.com/linear-imports-europe-west1/ https://storage.googleapis.com/linear-imports-us-central1/ https://storage.googleapis.com/public.linear.app/ https://ornj730p.api.sanity.io/; script-src https://snap.licdn.com 'unsafe-inline' 'self' blob: https://js.stripe.com/v3 https://jobs.ashbyhq.com/Linear/embed https://e.linear.app https://challenges.cloudflare.com/turnstile/ 'wasm-unsafe-eval' https://static.linear.app https://static.linear.dev; worker-src 'self' blob: https://static.linear.app https://static.linear.dev; style-src 'self' 'unsafe-inline' https://static.linear.app https://static.linear.dev; font-src 'self' data: https://static.linear.app https://static.linear.dev; img-src https://*.ads.linkedin.com https://www.linkedin.com 'self' data: blob: https://*.linear.app https://*.googleusercontent.com https://cdn.sanity.io/images/ornj730p/ https://webassets.linear.app https://linear.app/cdn-cgi/imagedelivery/ https://avatars.githubusercontent.com https://i.ytimg.com/vi/ https://avatars.slack-edge.com https://pbs.twimg.com/profile_images/ https://pbs.twimg.com/ext_tw_video_thumb/ https://secure.gravatar.com; frame-ancestors 'self' https://cms.linear.app; frame-src *; media-src blob: https://uploads.linear.app https://client-api.linear.app https://public.linear.app https://imports.linear.app https://static.linear.app https://webassets.linear.app https://cdn.sanity.io/files/ornj730p/ https://video.twimg.com/ext_tw_video/ https://linear.app/static/; base-uri 'self'; report-uri https://api.linear.app/report-violation
-
Strict-Transport-Security 20 of 20
max-age=63072000; includeSubDomains
-
X-Content-Type-Options 10 of 10
nosniff
-
Frame protection 10 of 10
CSP frame-ancestors
-
Referrer-Policy 10 of 10
same-origin
-
No version disclosure 5 of 5
server: cloudflare