bunup is a free, open source build & deployment project written in TypeScript and released under MIT. It has 525 GitHub stars, 14 forks and 1 open issues, and was last pushed 5 months ago. On this registry it ranks #82 of 84 tracked projects in Build & Deployment, with 5 head-to-head comparisons available.

What is bunup?

Bunup is an MIT-licensed TypeScript and React library bundler built on Bun's native bundler, made for developers who publish packages to npm and want fast builds with minimal configuration.

What it is

Bunup is a build tool for TypeScript libraries that runs on Bun's native bundler. It sits in the Bun and npm ecosystem: it is installed as the bunup package and invoked through bunx bunup, and it is itself written in TypeScript under the MIT licence. The project ships a single command that compiles a library's source and writes the result to dist/, emitting ESM JavaScript alongside .d.ts type declarations in one pass.

The concrete problem it solves is the assembly line a library author normally has to wire up by hand: bundling JavaScript, generating type declarations, supporting a second module format, and exposing the right package.json exports. Bunup handles those steps in one command โ€” --format esm,cjs adds CommonJS output, and --exports generates and syncs package exports automatically. Because it produces .d.ts files itself, a separate type-generation step is not required, which shortens the path from source to a publishable package.

Key capabilities

  • bunx bunup builds a TypeScript library to dist/ with ESM output and .d.ts type declarations.
  • --format esm,cjs emits CommonJS alongside ESM for consumers on older module systems.
  • --exports generates and syncs package.json exports automatically.
  • CSS is imported directly, with built-in CSS Modules support.
  • Declaration splitting produces smaller, cleaner type bundles.
  • Workspace support builds multiple packages from one config and one command.
  • Batteries-included checks include unused dependency detection alongside auto-exports.

Who uses it and how

  • Library authors publishing TypeScript packages to npm, who need ESM plus type declarations without hand-written build config.
  • React component library authors, covered by examples for plain CSS, CSS Modules, and Tailwind CSS styling.
  • Monorepo teams, addressed by a workspace example that builds several packages from one configuration and one command.
  • New projects started from the scaffold, which spins up a TypeScript or React component library, or a basic starter, in about ten seconds.

Getting started

Build a library by running bunx bunup, or scaffold a new one with bunx @bunup/cli@latest create. The tool is distributed as the npm package bunup, with documentation at https://bunup.dev.

How it compares

The facts provided name no competing or similar tools, so bunup stands alone in this registry rather than being contrasted with alternatives. Its only stated point of difference is that it is built on Bun's native bundler.

When to use it โ€” and when not to

Bunup requires Bun in the build pipeline, since it is built on Bun's native bundler and run through bunx, so teams that cannot add Bun to their toolchain should look elsewhere. It is also a young, small project โ€” roughly 525 stars, 15 forks, and a single open issue โ€” so the maintainer base and community surface are limited, and the README is a short overview rather than deep operational guidance. Pick it if a Bun-based build and one-command ESM, CommonJS, and .d.ts output match the library you are shipping.

project readme (upstream, from github) โ€” read inline

Logo

Bunup

NPM Version Built with Bun sponsor

Bunup helps you ship TypeScript/React libraries faster with great DX โ€” built on Bun's native bundler.

Performance

Instant builds by design. With Bunโ€™s native speed, builds and rebuilds are extremely quick, even in monorepos. Faster feedback loops, higher productivity, calmer flow.

๐Ÿš€ Quick Start

Create a TypeScript file:

// src/index.ts
export function greet(name: string): string {
	return `Hello, ${name}!`;
}

Build it instantly:

bunx bunup

Outputs to dist/ with ESM and .d.ts types.

Need CommonJS too?

bunx bunup --format esm,cjs

Want to generate and sync package exports automatically?

bunx bunup --exports

Scaffold

Spin up a modern, ready-to-publish TypeScript or React component library (or a basic starter) in ~10 seconds:

bunx @bunup/cli@latest create

See more in Scaffold with Bunup.

Features

  • โšก Instant builds โ€” lightning-fast by default
  • ๐ŸŽจ CSS support out of the box โ€” import CSS directly, with built-in CSS Modules support.
  • ๐Ÿ“ TypeScript declarations โ€” clean, accurate .d.ts files
  • ๐Ÿช“ Declaration splitting โ€” smaller, cleaner type bundles
  • ๐Ÿ”‹ Batteries included โ€” auto-exports, unused dependency detection, and more
  • ๐Ÿ—๏ธ Workspace-ready โ€” build multiple packages from one config and one command

For more, see the full documentation: https://bunup.dev

๐Ÿ“š Examples

Check out the examples directory for example usage:

โค๏ธ Contributing

We welcome contributions! Please read the contributing guide.

Contributors

Sponsors



Frequently asked questions

Is bunup free to use?

bunup is open source under the MIT licence. There is no licence fee and no seat count โ€” you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does bunup do?

๐Ÿ“ฆ Bundles your TypeScript libraries faster than you can say "bundle"

What is bunup written in?

bunup is primarily written in TypeScript. Its source is publicly available at https://github.com/bunup/bunup, and it has 525 GitHub stars.