Thomas Camlong fd7bcb2231 test(perf): fiber-tree probe, and the client-side diagnosis it produced
probe-fiber-tree.mts walks the live React tree and reports which components are
mounted, what DOM they render and their props. Heap snapshots only give minified
names like `y`, and source maps do not help because the snapshot records runtime
names — props shape plus rendered DOM identifies a component reliably. It injects
a DevTools hook stub before load so React registers every root; climbing from one
DOM node's fiber missed most of the tree (2,093 fibers vs 3,918).

What it found, on a 28-widget board:

- The most-mounted component is @mantine/core/Box (513). It is the primitive every
  Mantine component renders through, so it is a symptom of how much is mounted
  rather than a bug. Proportions match the 650 MB session snapshot (13% vs 17%),
  so the minified `y` there is almost certainly Box.
- 71 Menu -> Popover -> PopoverDropdown triplets are mounted for context menus that
  are almost never opened. Isolated with the existing enableRightClickOnWidgets
  flag: 3,918 fibers with them, 3,554 without — 364 fibers, 9%, scaling with item
  count. The dropdown contents are already lazy; the wrappers are not.

A fix that deferred the Menu until first right-click was reverted: it broke
right-click and inflated the tree to 20,107 fibers, because the replayed
contextmenu event re-entered the arming handler. Doing it properly needs one
board-level menu instead of one per item. The Playwright check that caught this is
in the findings — a fiber count alone would have read as a win.

Also records that the demo account had completed_board_tour = 0, so earlier rounds
measured the first-time-user path; completing it moves the tree by 38 fibers, so
the published numbers stand.
2026-08-09 10:37:33 +02:00
2026-08-07 17:41:07 +00:00
2024-11-05 21:11:14 +01:00

  Latest Release (Semver)   CI Status  

Live Demo 🎮 • Install 💻 • Translations 🈺 • Discord 👋

  • 🖌️ Highly customizable with an extensive drag and drop grid system
  • ✨ Integrates seamlessly with your favorite self-hosted applications
  • 📌 Easy and fast app management - no YAML involved
  • 👤 Detailed and easy to use user management with permissions and groups
  • 👥 Support for single sign on via OIDC / LDAP
  • 🙊 Safe encryption using BCrypt and AES-256-CBC for your valuable data
  • 🕔 Realtime widget updates using WebSockets, tRPC and Redis
  • 🔍 Search through thousands of data points in supported integrations or your data in Homarr using the fast built-in search
  • 🦞 Icon picker with over 11K icons
  • 🚀 Compatible with any major consumer hardware (x86, Raspberry Pi, old laptops, ...) and most OS (Windows, Linux, TrueNAS, Unraid)
  • 🖥️ Extensive Kubernetes support with Helm for efficient scaling & high reliability




Please click here for official installation instructions




Homarr is a free-to-use open source project maintained by volunteers and developers from all over the world. We publish under the Apache License 2.0 license which allows commercial usage. We invest multiple hours daily in providing support, developing Homarr, integrating to third party software and more. We also pay for licensing and server hosting fees. Please consider helping us cover these costs to enable the future development of Homarr. Thank you!

Please click here to sponsor us at OpenCollective

You can also support us by helping with translating the entire project to as many languages as possible or contributing directly to the code or documentation. Please read our Contribution Guidelines. All contributions, regardless of their size or scope, are welcome and highly appreciated! Thank you ❤️

Sponsors

Thanks to your generous sponsors, we can continue to build Homarr. Check them out for high-quality and easy-to-use development tools. Feel free to contact us at homarr-labs@proton.me if you wish to become a sponsor.

Covered by Argos Visual Testing
Supported by PikaPods

S
Description
A modern and easy to use dashboard. 40+ integrations. 20K+ icons built in. Authentication out of the box. No YAML, drag and drop configuration.
https://homarr.dev Readme Apache-2.0
243 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 89.5%
MDX 7%
Go 1.8%
CSS 0.9%
JavaScript 0.4%
Other 0.3%