I worked on a new file for about an hour. The file has no symbols and maybe 100 layers. However, I’ve noticed that Sketch v25.1 becomes very slow when I try to undo something 20 steps back. Each step takes about 0.5 seconds. Going back 10–20 steps take at least 5–10 seconds.
Chip Apple M2 Max
Memory 32 GB
Startup disk Sequoia
macOS Sequoia 15.5
Plugins
Automate
Sort Layers List
This happens with any document you work on for a prolonged period of time.
I always struggled with Sketch when building large design systems, but this issue is also visible in smaller files. I would recommend asking your designers to work for a day without closing the file, and then try undoing and redoing 20 steps.
If I give you the file, you won’t notice the issue.
The problem will go away when you restart the Sketch app.
Do you have any updates on this issue?
I’ve been dealing with it for years. There is a fundamental problem at the core of your product. I hope you can focus on fixing it instead of adding new features.
Hi @Paulius, we’re actively looking at this issue, but it’s being a bit elusive at the moment. As requested before, an affected document would help us to narrow it down. Thanks for commenting!
I have had this kind of issue from time to time in the last year too, in multiple projects.
At some point, it seems like Sketch needs to be restarted and it fixes the issue.
The lag also appears when changing to the app from another one, using option-tab for example.
It never happens right after opening a document, only after a while.
edit: I can’t say if it’s worse since 2025.1, but that I had it before also.
I have included the links to those files again below. These files could be used to test basic performance issues.
Performance Test with 2K and 10K Symbols
Performance Test with Design System
I’m not sure how long you plan to ignore this issue, but it’s clear that there are serious problems with your product if you can’t figure out how to fix it after all these years.
One test I recommend is going to one of these files and ungrouping all the grouped symbols.
Testing for memory leaks requires working on a large design file for a few hours. After that, Sketch will slowly lose performance. These performance issues are consistent with many of my files that are on Sketch Cloud.
Hi @Paulius , thank you again for your documents. Unfortunately, I can’t open the second one without your permission. Could you activate support access so we can have temporary access from our side? See more info about it here.
About the first one. Sketch was created to help users make great products. It offers the freedom of an infinite canvas without limits on the quantity of elements you can work with.
However, this doesn’t mean limitless performance; there’s a limit you can always reach. We keep polishing Sketch to be performant, and that’s one of our goals, make no mistake, but you will always be able to reach the limit by duplicating symbols ad infinitum, like in the first document you attached.
That doesn’t mean that your contribution is not essential—quite the opposite. It’s always constructive that you remind us of the limit. However, please understand that the first document you’re providing is in the realm of the synthetic test rather than a real-world use case, unlike the cases the support team handles every day with users.
When users show us complex designs made with Sketch, we, as a product support team, always recommend splitting documents, using several Libraries and being mindful about the good practices required to handle quantities. In these cases, we acknowledge that there’s a performance limit. Of course, sheer performance is always desirable and our goal, but you can’t always cover 100% of the use cases out there.
Please understand that I’m not here to rule out your contribution, far from it. We know there are limits, but expanding these limits is not entirely the point when we weigh the importance of dedicating development resources to iterate on the product. We understand you’ve reached a point where Sketch is not working well anymore, and we are well aware of it.
The issue isn’t with Infinite Canvas itself, but rather with performance when working with complex documents — particularly those that contain 5,000+ symbol instances. I frequently encounter major slowdowns when managing design projects of this scale.
For example, the first file I shared contains a single symbol with five layers. That symbol is repeated 5,000 times within a constrained canvas space. Even with this relatively simple setup, Sketch struggles to handle basic actions such as ungrouping or undo/redo operations. In practice, symbols tend to be more complex, and in a typical design system, we work with over 300 symbols to develop interface concepts. In my experience, it’s not unusual for a page to have well over 5,000 layers.
Could you help me better understand the technical limitations here?
Why can’t Sketch handle 5,000+ layers on a page, even without prototype links, shared styles, or effects — especially on high-performance hardware like an M2 Max with 32 GB RAM?
Why does the app freeze when selecting or ungrouping a large number of layers?
Why does performance degrade over time when a file is open, requiring a restart to restore responsiveness on that page?
I’d also like to understand:
What would be required for you to overcome these performance issues?
I’m so sorry, but I cannot disclose and discuss how our software works with that level of detail. I hope you understand. The point here is that handling 5000 Symbols in a document is pretty uncommon.
In our humble opinion, we should consider and measure the problem in its proper dimension: the existence of documents like the ones you’re delivering here is not usual by any means, and believe me, we see some complex documents from clients quite often. At the same time, the fact that Sketch is not handling it well is an issue we must consider, but I must admit that it is not our highest priority right now. Sorry about that.
Please rest assured, we’re not ignoring this issue here. From our point of view, it’s not as serious as you consider it. However, we’re open to learning more and changing our opinion.
For support purposes, which is the topic of this forum section, I am super intrigued by how you came to make these documents, though. Is there a real use case where you’ve faced something like it in the past? I would love to know more, so we can consider this case beyond the anecdote and observe some reasonable design problems that Sketch should aim to solve in the future.
I’m surprised that encountering 5,000 instances of a single symbol in a document is considered uncommon. In my recent projects, it’s standard. I typically work with 100+ artboards on a single page, and each artboard contains 50–200 instances with nested symbols. That adds up quickly—on average, I’m working with 20,000 to 40,000 instances per page.
For example, in a recent dashboard project, I used a simple table cell component to simulate data. One artboard alone had around 200 symbol instances. When I create ten sections with multiple states, I easily reach 50 artboards—translating to over 10,000 symbol instances.
The example I presented wasn’t anecdotal; it was a basic simulation demonstrating performance degradation with a single repeated instance. If this basic case can’t be handled reliably, how do you expect Sketch to work with complex design systems that have deeply nested symbols and a high number of instances?
Could you send that document to us? That is the type of document we’d love to study. We’d like to test its performance, sure. But also, and after seeing that second screenshot, there’re good practices to apply here that could improve your experience with Sketch.
@JorgeF
The file you requested is based on the Test-React-Material-Ul file that I shared earlier.
I recommend creating 100 artboards and placing 200 symbol instances in each. It only takes 10-15 minutes to set up, and you will be able to see how performance degrades while you work on the file.
I updated the shared file and included five extra pages. Each page has 100 artboards, and each artboard has 100 symbol instances. There are around 10,000 instances in total per page.
If you want to experience more performance degradation, duplicate this file multiple times and open multiple instances while working on one file.
If you want to see continuous degradation, you need to spend time working on the file.
Do something about this. Otherwise, there’s no point heaving infinity canvas if you can’t place many things on it.
As mentioned earlier, there is a performance limit, and you may have reached it. We’re happy to take a look at your document, and we might have some tips on how to manage it for better performance. For now, I’m closing this topic.