Linear significantly optimized startup performance and memory consumption through data loading refactoring, build system improvements, and lazy loading, achieving 40-82% faster startup times and 70-80% more efficient memory usage. The update also includes bundle size reductions of ~50%, various UX fixes, and new features like issue description versioning and flexible cycle durations.
Startup performance improvements
Speed is a feature. While we try to pay attention to performance when adding new functionality, regressions and unoptimized codepaths do happen. Now and then, we look at critical aspects of the application and refactor, or re-architect portions of our tech stack to become more performant.
This time around, we took a look at startup performance for pre-warmed clients. With pre-warmed, we mean clients that spin up for a subsequent time and thus already have all the workspace data stored in the local database. Pre-warmed startups account for most sessions, making it a great candidate for us to sink our teeth into.
We concentrated our efforts around the following:
Refactoring and optimizing how we load up data at startup
Switching from Parcel to Rollup as our build system to improve bundle size
Lazy loading parts of the application and data that are used infrequently
This resulted in a big improvement in startup performance and memory consumption, especially on Safari and other browsers and our desktop applications. On our own workspace, which has around 4000 issues and hundreds of projects, we saw the following improvements:
Startup time to show active issues
59% faster on Safari
40-50% faster on other browsers and desktop app
Startup time to show a huge backlog
82% faster on Safari
60-65% faster on other browsers and desktop app
Memory usage
70-80% more efficient across all browsers and desktop apps
Bundle size improvements
We have improved code bundling by targeting only modern browsers, better dead code elimination, and code splitting. We've also made sure to preload code before it's needed. This means we load around 50% less code (30% when compressed). This results in ~10-30% faster page load times from a cold cache, depending on network speed.
Fixes and improvements
File uploads can now be canceled
Fixed ability to copy issue URL and ID when the issue is archived
Fixed a problem where multiple notification emails might have been sent to users
Added ability to revert to previous versions of issue descriptions. To use it, go to the issue edit screen and choose "Revert issue description" in the command menu.
When there are no notifications in the inbox, the Notifications drop-down button is no longer visible
Moving an issue to a different team now adheres to that team's "Active issues are required to belong to a cycle" setting
Cycles can now be 5 or 7 weeks long
Whether you create a new template or edit an existing one, you will now be redirected back to the page where you started the template action
When the search input is focused on small screens, the sidebar is also opened
API: Fixing a bug with imageUploadFromUrl not working when the source URL contained special characters or a query string
Linear Agent now offers adaptive routing to optimize model selection by task complexity, environment secrets support for secure dependency access, and open-weight model options including GLM. Teams can define custom project labels and statuses, assign project leads, use durable IDs for projects and initiatives, and automate workflows with new team-based triggers for onboarding and reassignment.
Loops, Linear's recurring agent workflows, now respond to more workspace activity including project, initiative, and cycle changes, can edit Linear documents and post updates to Slack. This helps teams automate coordination tasks like updating docs and keeping stakeholders informed when plans change.
Linear now offers a Priority tab that intelligently separates urgent notifications from less critical ones, preventing important items like release-blocking reviews from getting lost. Additionally, document editing is now available on iOS and Android, rich previews render in diffs, draft projects with Linear Agent for planning, and admins can approve third-party app access on paid plans.