Analysis updated 2026-05-18
Bundle a local CommonJS JavaScript project into a single self-contained file to run with Node.
Inspect the resolved dependency graph of a JavaScript project as JSON.
Study how a JavaScript bundler works by reading a minimal, well-structured reference implementation.
Fork and extend this early-stage codebase to experiment with building a custom bundler.
| geekyjunk/stitchr | airirang/airirang-builder | aisurfer/mcp_ui_app_example | |
|---|---|---|---|
| Stars | 0 | 0 | 0 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | easy | moderate | moderate |
| Complexity | 3/5 | 3/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Stitchr is an experimental tool for bundling JavaScript files, written in TypeScript. Its purpose is to take a JavaScript project with multiple files that depend on each other, trace all the connections between them, and combine everything into a single output file that can run on its own. This is the same basic idea behind well-known tools like Webpack or Rollup, but Stitchr is a learning project rather than a production bundler. The way it works: you point Stitchr at an entry file, the tool parses that file to find any require() calls that load other local files, follows those to their files, and repeats until it has visited every file in the dependency chain. It then assigns each file a numeric ID, rewrites the require() calls to use those IDs, and wraps everything in a small runtime that handles module loading, caching, and execution order. The bundler is used from the command line. You run stitchr build <entry-file> and the output lands at dist/bundle.js by default. A flag is available to print the resolved dependency graph as JSON, useful for seeing exactly which files were discovered and in what order. At its current early stage, Stitchr only handles local CommonJS require() calls. It does not yet resolve packages from the npm ecosystem, does not handle ES module import syntax, and does not support dynamic require() calls. The roadmap lists those features as future work, along with source maps and automated tests. The project is released under the ISC license, a permissive open-source license that allows free use, modification, and distribution.
An experimental TypeScript JavaScript bundler that traces local CommonJS require() calls, assigns module IDs, and writes a self-contained output bundle.
Mainly TypeScript. The stack also includes TypeScript, Node.js, Babel.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.