Bundlejs
An online tool to quickly bundle & minify your projects, while viewing the compressed gzip/brotli bundle size, all running locally on your browser.
Install / Use
/learn @okikio/BundlejsREADME
bundlejs
✨ WOOOOOOH!! ✨ The bundlejs api is now out at deno.bundlejs.com and/or edge.bundlejs.com, bundle your code and get a badge.
Check out the announcement tweet
I see a badge, you see a badge, we all see badges!!!
To create a badge just replace the domain
bundlejs.comdomain withdeno.bundlejs.comand add/?badge, yeah, that simple
<a href="https://www.producthunt.com/posts/bundle-6?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-bundle-6" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=300568&theme=dark" alt="bundle - An online npm package bundle size checker | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
A small online tool for checking the minified gzip/brotli size of npm packages.
I used monaco-editor for the code-editor, esbuild as bundler and treeshaker respectively, denoflate as a wasm port of gzip, deno_brotli as a wasm port of brotli, deno_lz4 as a wasm port of lz4, bytes to convert the compressed size to human readable values, esbuild-visualizer to visualize and analyze your esbuild bundle to see which modules are taking up space and, umami for private, publicly available analytics and general usage stats all without cookies.
This project was greatly influenced by @hardfists neo-tools and @mizchi's uniroll projects.
bundlejs is a quick and easy way to bundle your projects, minify and see it's gzip size. It's an online tool similar to bundlephobia, but bundle does all the bundling locally on you browser and can treeshake and bundle multiple packages (both commonjs and esm) together, all without having to install any npm packages and with typescript support.
The project isn't perfect, and I am still working on an autocomplete, hover intellisence, better mobile support and the high memory usage of esbuild and monaco as well as some edge case packages, e.g. monaco-editor.
If there is something I missed, a mistake, or a feature you would like added please create an issue or a pull request and I'll try to get to it. You can contribute to this project at okikio/bundle.
bundle uses Conventional Commits as the style of commit, and the Commitizen CLI to make commits easier.
You can join the discussion on github discussions.
Some of bundlejs.com's latest features were inspired by egoist/play-esbuild and hyrious/esbuild-repl, check them out they each use esbuild in different ways.
URL Queries & Shareable Links
You can now use search queries in bundle, all you need to do is add this to the url
?q={packages}&treeshake={methods to treeshake}
e.g.
You want react, react-dom, vue, and @okikio/animate, but only want the Animate and toStr methods exported from @okikio/animate.
You would add this to the url bundlejs.com/?q=react,react-dom,vue,@okikio/animate&treeshake=[*],[*],[*],[{Animate,toStr}]
If you only want a couple packages and don't care to treeshake, then all you need is something like this, bundlejs.com?q=react,react-dom,vue,@okikio/animate
There is another way to share a reproduciable bundle, the sharable link. Shareble links look like this /?share=PTAEGEB... with the string value of the input code editor being compressed into a string and placed into the URL.
In order to create a shareble link, you click the Share button, it copies the share url to your clipboard, and from there you can paste where you wish.
If you would like to bundle your code when the share URL is loaded, add
bundleto the url, e.g. /?bundle&q=@okikio/animate or /?bundle&share=PTAEGEBs...
Badges
You can also add bundle badges, they look like this,
All you need to do is to add this to your README.md
# Light Mode Badge
[](https://bundlejs.com/)
# Dark Mode Badge
[](https://bundlejs.com/)
Another options is to use the API, e.g.
[](https://bundlejs.com/?q=spring-easing)
You can use the URL Queries & Shareable Links above, to create unique bundles, when users clicks on the badge.
How does Bundlejs work?
Docs: https://deepwiki.com/okikio/bundlejs/
Overview****
This document provides a comprehensive introduction to bundlejs, an online tool for checking npm package bundle sizes. bundlejs runs entirely in the browser, performing bundling, minification, and compression locally to accurately determine package sizes without server-side processing.
For specific components of the system architecture, see System Architecture. For details on how bundling works, see Core Bundling Process.
What is bundlejs?****
bundlejs is a browser-based tool that allows developers to:
- Check the bundled, minified, and compressed size of npm packages
- Bundle multiple packages together (both CommonJS and ESM formats)
- Visualize bundle composition with treemap, sunburst, and network views
- Tree-shake packages to see optimized sizes
- Share bundle configurations via URLs and embed size badges in documentation
The tool uses esbuild-wasm for bundling and provides accurate size measurements using Gzip, Brotli, and LZ4 compression algorithms.
Sources: README.md16-22 package.json2-4 src/pug/about.pug14-20
Core Features****
bundlejs provides several key features that differentiate it from similar tools:
| Feature | Description | | ------------------------ | ------------------------------------------------------------------ | | Local Processing | All bundling and analysis happens in the browser using WebAssembly | | Multiple Package Support | Bundle and analyze multiple packages together | | Tree Shaking | Analyze only the specific exports you need from a package | | TypeScript Support | Built-in support for TypeScript and JSX | | Compression Options | View sizes with Gzip, Brotli, and LZ4 compression | | Bundle Visualization | Analyze bundle composition with interactive visualizations | | Shareable URLs | Create and share bundle configurations via URL parameters | | Size Badges | Generate badges to display package sizes in documentation | | Monaco Editor | Full-featured code editor with syntax highlighting and formatting |
Sources: README.md17-24 src/pug/faq.pug23-63
Core Components****
BundleEvents System
The event system serves as the central communication hub for bundlejs. It coordinates actions between the UI, web workers, and other components. The main event emitter is BundleEvents, defined in src/ts/index.ts39
Key events include:
bundle: Triggers the bundling processresult: Returns bundling resultschart: Returns visualization datalog/info/warning/error: Handles various message types
Sources: src/ts/index.ts153-271 [src/ts/index.ts353-452](https://github.com/
Related Skills
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
108.0kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
review-duplication
100.1kUse this skill during code reviews to proactively investigate the codebase for duplicated functionality, reinvented wheels, or failure to reuse existing project best practices and shared utilities.
