All processing happens locally in your browser. No uploads. No tracking. Full privacy.
Select JavaScript Files
A practical, privacy-first build system running entirely in the browser
This system is basically a mini build tool that runs fully inside your browser. You pick JavaScript files, it minifies them, and you download the optimized versions.
No servers. No uploads. No waiting on external APIs. Everything happens locally. Think of it like a lightweight version of Webpack or Vite—but stripped down and focused only on minification.
This is where you interact with the tool:
This is the “brain” of the system. It:
This is where the actual minification happens using Terser. Each worker processes a file independently.
Instead of doing everything on the main thread (which would freeze the UI), the system spreads work across multiple Web Workers.
So while one file is being compressed, others are processed in parallel. The UI stays smooth the whole time.
At the core of everything is Terser, a powerful JavaScript minifier. It takes your code and performs a bunch of transformations:
const result = await Terser.minify(code, {
compress: {
passes: 2
},
mangle: true,
format: {
comments: false
}
});
Basically: same logic, smaller file, faster load time.
JavaScript normally runs on a single thread. That means heavy tasks can freeze the page.
Web Workers fix that by spawning isolated threads. Each file gets its own worker (or shared pool of workers).
const MAX_WORKERS = Math.min(3, navigator.hardwareConcurrency || 4);
This ensures:
Once all files are minified, they need to be downloaded. Instead of giving you 20 separate downloads, we bundle everything into a ZIP file.
const zip = new JSZip();
files.forEach(file => {
zip.file(file.name, file.blob);
});
const blob = await zip.generateAsync({ type: "blob" });
Then we generate a temporary download link using URL.createObjectURL.
This system is fast, but it still has limits.
A big focus of this system is making it feel instant and transparent.
This helps users actually understand what’s happening instead of waiting blindly.
One of the strongest points: nothing leaves the browser.
This removes a lot of risk:
| Feature | Browser Tool | Node.js Build Tools |
|---|---|---|
| Privacy | ✔ Fully local | ❌ Often server-based pipelines |
| Setup | ✔ Zero config | ❌ Requires tooling |
| Automation | ❌ Limited | ✔ Strong CI/CD support |
| Performance | âš– Medium scale | âś” Highly scalable |
This system is more than just a utility—it’s a demonstration of what modern browsers can do. It turns the browser into a lightweight build environment.
By combining:
you get a surprisingly powerful, fully local development tool.