We’ve been quietly working on something that most users won’t notice at first glance — but will feel immediately. Starting with the latest dev ntopng version, the entire UI build pipeline has been improved from the ground up. The result: the UI loads in roughly half the time, and data from the backend arrives faster too. Here’s the full picture of what changed and why it matters.
From Webpack to Vite: A New Build Pipeline
For years, ntopng’s frontend was generated using Webpack — a tool that served us well, but was showing its age in terms of output efficiency. We’ve now migrated to Vite, a modern build tool designed from scratch for leaner, faster output.
| Metric | Before | After (Vite) |
| UI Size | 3.5 MB | 400kb |
| Page Load Time | Baseline | ~2x faster |
That’s a UI bundle reduction of ~8.7x — from 3.5 MB down to roughly 400 KB of JavaScript delivered to your browser on every page load.
Additionally, Gzip compression on API responses has ben enabled by default, allowing to transfer less data between the ntopng backend and UI. Compression must be requested by the browser so this depends on the end browser used. For users monitoring busy networks, a single API call can return tens of kilobytes of JSON. With gzip, that payload is compressed before transmission and decompressed transparently by the browser.
This is especially impactful for:
- High-traffic environments where flow tables and alert lists are dense.
- Remote access over slower or higher-latency connections.
- Embedded or constrained deployments where bandwidth matters.
What This Means in Practice
If you’ve ever noticed a brief pause when loading the ntopng dashboard — particularly on first load, or when navigating to data-heavy views, that friction should now be noticeably reduced. The combination of a smaller JS bundle and compressed API payloads means less data over the wire and faster rendering from start to finish.
There are no configuration changes required on your end. Both improvements are active automatically in the latest release.
What’s Next
This work is part of a broader effort to modernize ntopng’s frontend architecture. Having Vite in place gives us a faster development feedback loop and opens the door to further improvements — including more granular lazy loading, better caching strategies, and continued reduction of unnecessary dependencies. The end goal is to move to an all vuejs based UI to also introduce automated UI testing.
s always, feedback from the community helps shape our priorities. If you notice performance regressions or unexpected behaviour after upgrading, please report them: https://www.ntop.org/support/need-help/bug-report/
