What Tech Stack Does Linear Use in 2026?

Platform Checker
Linear tech stack what technology does Linear use Linear website built with Linear frontend framework Linear backend infrastructure Linear technology 2026 SaaS tech stack analysis developer tools technology

What Tech Stack Does Linear Use in 2026?

Linear powers one of the most responsive, collaborative issue-tracking platforms in the market today. At its core, Linear leverages a modern, JavaScript-first technology stack built on React for frontend development, Node.js for backend services, and PostgreSQL for data persistence. The platform combines TypeScript across both client and server for type safety, GraphQL APIs for flexible data querying, and AWS cloud infrastructure with Kubernetes orchestration for global scalability. Real-time collaboration features rely on WebSocket connections, while performance is enhanced through Redis caching, Cloudflare CDN, and edge computing. This architecture reflects 2026's best practices for building fast, scalable SaaS applications that support team collaboration at enterprise scale.

Understanding Linear's technology choices provides valuable insights for developers and technical decision-makers evaluating architectures for their own projects. Let's dive deep into how Linear has constructed its modern tech stack and what we can learn from their engineering decisions.

Linear's Frontend Architecture in 2026

Linear's frontend is built on React with TypeScript, delivering a high-performance user interface optimized for real-time collaboration and responsive interactions.

The frontend layer is where Linear shines in terms of user experience. The team chose React as their primary frontend framework, which makes sense for building the complex, interactive interfaces required by modern collaborative tools. React's component-based architecture allows Linear to maintain consistent UI patterns while scaling to thousands of active users.

TypeScript implementation across the entire codebase provides significant benefits:

  • Type safety prevents entire categories of runtime errors before code reaches production
  • Developer experience improves dramatically with IDE autocomplete, inline documentation, and refactoring tools
  • Maintenance becomes easier as the codebase grows, with types serving as living documentation
  • Onboarding new team members accelerates when the codebase communicates intent through types

Linear uses React Query (now TanStack Query) for server state management. Rather than storing all data in global Redux stores, React Query manages API requests, caching, and synchronization with the backend. This approach scales better for applications with complex data relationships and frequent updates.

// Example pattern Linear likely uses with React Query
import { useQuery } from '@tanstack/react-query';

export function useIssue(issueId: string) {
  return useQuery({
    queryKey: ['issue', issueId],
    queryFn: () => fetchIssue(issueId),
    staleTime: 5 * 60 * 1000, // 5 minutes
  });
}

For styling, Linear leverages Tailwind CSS combined with custom CSS-in-JS solutions. This combination provides:

  • Rapid component development with utility classes
  • Component-scoped styles preventing style conflicts
  • Dynamic theming for dark mode and custom color schemes
  • Performance optimization through tree-shaking unused styles

WebSocket connections form the backbone of Linear's real-time collaboration features. When one team member updates an issue, others see the change instantly without page refreshes. This requires maintaining persistent connections and efficiently broadcasting changes across connected clients.

Linear also implements code splitting and lazy loading to keep initial bundle sizes manageable. Modern React patterns with dynamic imports ensure users download only JavaScript necessary for their current view, with additional code loading in the background.

Backend Infrastructure and API Design

Linear's backend runs on Node.js with a GraphQL API layer, supported by PostgreSQL for data persistence and Redis for caching and real-time operations.

The backend architecture demonstrates mature engineering practices. Using Node.js allowed Linear to maintain JavaScript across the full stack, reducing context switching for developers and enabling code sharing (like validation logic) between frontend and backend.

GraphQL emerged as the API design choice for good reasons in 2026:

  • Flexible querying lets clients request exactly the fields they need, reducing over-fetching and under-fetching
  • Single endpoint simplifies API design and versioning compared to REST's multiple endpoints
  • Strong typing through GraphQL schema provides documentation and prevents invalid queries
  • Real-time capabilities integrate naturally with WebSocket subscriptions for live updates
# Example Linear GraphQL query
query GetIssue($id: ID!) {
  issue(id: $id) {
    id
    title
    description
    assignee {
      id
      name
      email
    }
    comments {
      id
      body
      author {
        name
      }
      createdAt
    }
  }
}

PostgreSQL serves as Linear's primary relational database. For an issue-tracking platform with complex relationships (issues linked to projects, assignees, comments, workflows), PostgreSQL's ACID compliance and relational model are essential.

PostgreSQL advantages for Linear's use case:

  • Complex queries efficiently join issues with projects, team members, workflows, and comments
  • ACID transactions guarantee data consistency when multiple updates occur simultaneously
  • Advanced features like JSON columns store flexible metadata without schema changes
  • Full-text search powers Linear's powerful issue search functionality
  • Replication and backup support enterprise reliability requirements

Redis handles several critical responsibilities:

  • Session management tracks authenticated user sessions
  • Real-time operations manage WebSocket connection state and message queuing
  • Caching stores frequently accessed data (team members, project configurations, recent issues)
  • Rate limiting protects APIs from abuse
  • Job queues process background tasks asynchronously

For background job processing, Linear likely uses Bull or similar Redis-backed queue systems. Sending email notifications, generating reports, and syncing with third-party services happen asynchronously without blocking user requests.

A microservices architecture separates concerns into independent services:

  • Authentication service handling login, SSO, and token validation
  • Issue service managing issue CRUD operations and workflows
  • Notification service sending emails, Slack messages, and webhook events
  • Sync service integrating with GitHub, Jira, and other platforms
  • Analytics service processing usage metrics and insights

This architecture enables:

  • Independent scaling - the notification service scales separately from the issue service
  • Resilience - one service's outage doesn't crash the entire platform
  • Faster deployments - teams deploy individual services without coordinating platform-wide releases
  • Technology diversity - different services can use different languages if needed (though Linear likely keeps Node.js)

Cloud Infrastructure and DevOps Stack

Linear runs on AWS cloud infrastructure with Docker containers orchestrated by Kubernetes, ensuring global distribution, automatic scaling, and high availability.

Cloud infrastructure decisions at Linear's scale (used by thousands of companies) demand enterprise-grade reliability. AWS provides the foundation with:

  • Global regions and availability zones ensure low latency for users worldwide and redundancy against failures
  • Elastic scaling automatically adjusts resources as demand fluctuates throughout the day
  • Managed services like RDS (PostgreSQL), ElastiCache (Redis), and SQS reduce operational overhead
  • Security compliance certifications (SOC 2, ISO 27001) matter for enterprise customers

Docker containerization standardizes the deployment unit. Every service runs in a container with:

  • Consistent environments across development, staging, and production
  • Version-controlled infrastructure in code repositories
  • Rapid deployment and rollback capabilities
  • Resource isolation preventing one service from starving others

Kubernetes orchestration manages container lifecycle at scale:

  • Automatic scaling spins up additional container replicas when CPU or memory usage increases
  • Self-healing restarts failed containers and replaces unhealthy nodes
  • Rolling updates gradually deploy new versions without downtime
  • Load balancing distributes traffic across healthy replicas
  • Configuration management handles secrets, environment variables, and configuration files
# Example Kubernetes deployment Linear likely uses
apiVersion: apps/v1
kind: Deployment
metadata:
  name: linear-api
spec:
  replicas: 3
  selector:
    matchLabels:
      app: linear-api
  template:
    metadata:
      labels:
        app: linear-api
    spec:
      containers:
      - name: linear-api
        image: linear:latest
        resources:
          requests:
            memory: "512Mi"
            cpu: "500m"
          limits:
            memory: "1Gi"
            cpu: "1000m"

CI/CD pipelines with GitHub Actions automate the software delivery process:

  • Automated testing runs unit tests, integration tests, and end-to-end tests on every pull request
  • Code quality checks using linters and static analysis prevent common issues
  • Build processes create Docker images and push them to container registries
  • Staging deployments allow manual testing before production releases
  • Production deployments happen automatically when code merges to main branch

Cloudflare CDN improves performance globally:

  • Edge caching stores static assets on servers near users
  • DDoS protection filters malicious traffic before reaching origin servers
  • Automatic compression reduces bandwidth usage for text content
  • Firewall rules block known attack patterns and suspicious requests

Infrastructure-as-Code with Terraform brings version control to infrastructure:

# Example Terraform configuration for Linear's infrastructure
resource "aws_rds_cluster" "linear_db" {
  cluster_identifier      = "linear-postgres"
  engine                  = "aurora-postgresql"
  database_name           = "linear"
  master_username         = "admin"
  skip_final_snapshot     = false
  backup_retention_period = 30

  tags = {
    Environment = "production"
  }
}

Benefits include:

  • Reproducibility - infrastructure can be rebuilt identically
  • Version history - track changes to infrastructure over time
  • Code review - infrastructure changes go through pull requests
  • Disaster recovery - rebuild entire infrastructure quickly after catastrophic failure

Monitoring, Analytics, and Security Technologies

Linear implements comprehensive monitoring through Sentry and Datadog, with custom analytics tracking usage patterns and OAuth 2.0/SAML authentication for enterprise security.

In production, visibility into system behavior is non-negotiable. Sentry captures errors and exceptions:

  • Real-time alerting notifies engineers when critical errors occur
  • Stack traces pinpoint exactly where errors originate
  • Session replay reconstructs user actions leading up to errors
  • Source maps map minified production code back to original TypeScript

Datadog provides comprehensive observability:

  • Metrics collection tracks CPU, memory, network, and application-specific metrics
  • Log aggregation centralizes logs from all services, making debugging production issues faster
  • Distributed tracing follows requests across multiple services, identifying performance bottlenecks
  • Synthetics monitor endpoints regularly, catching outages before users report them
  • Dashboards provide real-time views of system health
# Example Datadog monitoring for Linear
service_name: linear-api
tags:
  env: production
  version: 2.1.0

metrics:
  - name: api.request.duration
    type: histogram
  - name: database.query.duration
    type: histogram
  - name: active_users
    type: gauge

Custom analytics built on top of PostgreSQL and data warehousing tools track:

  • Feature adoption and usage patterns
  • User engagement metrics
  • Performance metrics by endpoint
  • Error rates and user impact
  • Subscription and billing metrics

For authentication and authorization, Linear implements:

  • OAuth 2.0 for third-party integrations (GitHub, Google login)
  • SAML 2.0 for enterprise single sign-on
  • JWT tokens for stateless API authentication
  • Session tokens for web application persistence
  • API keys for programmatic access

Stripe integration handles secure payment processing:

  • PCI compliance outsources credit card handling to Stripe
  • Webhook security verifies payment events haven't been tampered with
  • Subscription management handles billing cycles and plan changes
  • Invoice history maintains audit trails for accounting

Data protection employs:

  • TLS 1.3 encryption for data in transit
  • AES-256 encryption for sensitive data at rest
  • Secret rotation regularly changes encryption keys
  • DLP policies prevent accidental data exposure

Development Tools and Third-Party Integrations

Linear uses Jest and React Testing Library for testing, ESLint and Prettier for code quality, Storybook for component development, and integrates with GitHub, Slack, Jira, and other tools.

Development productivity depends on strong tooling. Jest runs unit and integration tests:

  • Snapshot testing catches unintended UI changes
  • Coverage reporting ensures adequate test coverage
  • Fast execution provides quick feedback during development
  • Parallel test execution speeds up CI/CD pipelines

React Testing Library encourages testing user behavior rather than implementation:

// Example test with React Testing Library
import { render, screen, userEvent } from '@testing-library/react';
import { IssueForm } from './IssueForm';

test('submits issue with title and description', async () => {
  render(<IssueForm />);

  await userEvent.type(screen.getByLabelText(/title/i), 'Fix login bug');
  await userEvent.type(screen.getByLabelText(/description/i), 'Users cannot login');
  await userEvent.click(screen.getByText(/create issue/i));

  expect(await screen.findByText(/issue created/i)).toBeInTheDocument();
});

ESLint enforces code quality rules:

  • Unused variable detection prevents dead code
  • Best practice enforcement encourages patterns that prevent common bugs
  • Style consistency maintains uniform code formatting across teams

Prettier enforces code formatting automatically:

  • Zero configuration reduces bikeshedding about style
  • IDE integration formats code on save
  • Pre-commit hooks ensure only formatted code reaches repositories

Storybook provides isolated component development:

  • Component documentation shows how to use each component
  • Visual testing catches UI regressions
  • Design system governance ensures consistency across the app
  • Accessibility testing validates keyboard navigation and screen reader compatibility

GitHub integration allows:

  • Issue syncing pull Linear issues and work on them
  • Automated linking connect pull requests to Linear issues
  • OAuth authentication users sign into Linear via GitHub

Slack integration sends notifications:

  • Issue updates notify teams of status changes
  • Comments Slack threads connect to Linear discussions
  • Reminders surface overdue issues

Third-party integrations with Jira, Zendesk, Figma, and others extend Linear's utility in existing workflows.

Performance Optimization and Modern Development Practices

Linear prioritizes performance through server-side rendering considerations, code splitting, service workers for offline functionality, and automated performance testing in CI/CD.

In 2026, performance expectations are high. Even 1-second delays reduce user satisfaction and conversion rates. Linear optimizes:

Initial page load benefits from server-side rendering considerations:

  • HTML renders on the server before sending to browsers
  • Critical CSS loads synchronously to avoid paint delays
  • Scripts load asynchronously to avoid blocking rendering
  • Initial state hydrates in client-side React

Code splitting dramatically reduces initial bundle sizes:

// Example code splitting in Linear
import { lazy, Suspense } from 'react';

const IssueDetail = lazy(() => import('./IssueDetail'));
const ProjectSettings = lazy(() => import('./ProjectSettings'));

export function App() {
  return (
    <Suspense fallback={<Loading />}>
      <IssueDetail />
    </Suspense>
  );
}

Service Workers enable progressive web app capabilities:

  • Offline functionality works without internet connection
  • Background sync queues actions for retry when connection returns
  • Push notifications alert users to important updates
  • Cache-first strategies serve cached content for faster loads

Web Performance APIs track Core Web Vitals:

  • Largest Contentful Paint (LCP) measures when main content loads
  • First Input Delay (FID) measures responsiveness to user input
  • Cumulative Layout Shift (CLS) detects unexpected layout changes
// Example performance monitoring Linear likely uses
import { getCLS, getFID, getLCP } from 'web-vitals';

getCLS(console.log);
getFID(console.log);
getLCP(console.log);

Automated performance testing in CI/CD prevents regressions:

  • Lighthouse runs on every pull request validate performance budgets
  • Bundle size monitoring prevents accidental increases
  • Load testing ensures APIs handle peak traffic
  • Real User Monitoring (RUM) collects performance data from production

Edge computing with Cloudflare Workers reduces latency:

```javascript // Example Cloudflare Worker for edge caching addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) })

async function handleRequest(request) { const cache = caches.default const response