finds.dev← search

// the find

jaredpalmer/tsdx

★ 11,458 · TypeScript · MIT · updated Feb 2026

Zero-config CLI for TypeScript package development

TSDX is a zero-config CLI for scaffolding, building, testing, and publishing TypeScript npm packages, with this entry covering a '2.0' rewrite that swaps the original Rollup/Babel/Jest/ESLint stack for bun, bunchee, vitest, oxlint, and oxfmt. It's aimed at people who want a single CLI to handle dual ESM/CJS builds and declaration files for a library (plain or React) without hand-rolling a build pipeline.

Dual ESM/CJS output with a correctly wired package.json exports map (separate .d.ts/.d.cts, import/require conditions) is handled for you, which is exactly the part people get wrong writing this by hand. The tool-stack swap (oxlint/oxfmt instead of ESLint/Prettier, vitest instead of Jest, bunchee instead of raw Rollup config) is a real, measurable speed win, and the README is upfront about what replaced what rather than hiding it. The `create` command with basic/react templates gets you from nothing to a testable, lintable package in one command, including a Vite-powered example app for the React template.

Development is hard-locked to bun, not merely supported — a real adoption cost for teams standardized on npm/pnpm/yarn, even though the published build output itself is package-manager-agnostic. oxlint and oxfmt are young tools; betting a library's formatting and linting on them is a bet on things still stabilizing, unlike the Prettier/ESLint combo they replace. There's no mention of monorepo support, multi-entry-point builds, or an escape hatch for custom bundler config — all things the original TSDX took complaints about — and bunchee's ceiling for non-trivial builds isn't addressed here. It's a ground-up rewrite of a project that had gone quiet for years, and this doc shows no changelog or version history to gauge how battle-tested 2.0 actually is yet.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →