Hi Pedro,
First of all, thanks for taking the time to document and explain your issue clearly. I regularly work on performance topics in the WeWeb code, and these are always challenging problems. It’s often a mixed situation between the client logic and WeWeb’s internal code. I usually have knowledge of the WeWeb internals but not the client logic, and for you (generally speaking), it’s the opposite — so no one fully understands both sides.
We’ve investigated several apps and tried to reproduce the issue with simpler use cases when possible. We’ve already identified and fixed several memory leaks related to components, and these fixes have been released in updated versions.
Also, each component in WeWeb consumes memory, and it’s fairly easy to build a page that uses too much of it. That’s why many support replies point to guidelines for optimizing memory usage.
Here are some initial answers based on a first read of your document:
Question 1 – Difference between environments
The code (on WeWeb’s side) can differ between the editor and the published app, but it doesn’t vary between staging and live environments.
Most of the time, when there are performance differences, it’s due to:
- Lag caused by backend-to-backend communication, usually for authentication checks — you’ll often see slow API requests.
- Third-party apps (such as tracking tools or Chrome extensions) causing memory leaks by holding references to WeWeb objects.
Question 2 – JSON causing freeze
If a large JSON object is being updated, there’s a good chance it’s also triggering significant re-rendering. That’s how Vue (the framework WeWeb relies on) works:
Data update ⇒ DOM update.
There are many mechanisms to minimize these re-renders, but since some of them depend heavily on your own logic, it’s difficult to automate everything perfectly.
Could you DM me more details about your use case? (a link to the exact page in the editor, with an account and reproduction steps) — I’ll be happy to advise you on a strategy.
Question 3 – Memory usage
As mentioned before, memory usage is closely tied to the number of elements rendered. We continuously work to reduce overall memory usage, but the total will always depend on what’s actually rendered in the app.
As several users have pointed out, virtual scrolling is key here — it prevents entire lists from being rendered all at once. Some components are already built with this in mind (like the new grid). I’ve reached out to the product team about your case to explore whether we could create another generic list component with built-in virtual scrolling.
Question 4
(See answer to Question 3.)
Question 5 – Supabase
I’m not directly working on this, but I know that an update is in the works with the new SDK version.
Question 6
You should have received updates from the support team by now, if I’m not mistaken. Our team is doing its best to respond as quickly as possible, but some questions require internal discussions before we can provide a solid answer.
@Slavo can follow up with you specifically regarding the Enterprise plan.