A sane way to start your next TypeScript project. Fast, strict, and minimal.
| Tool | Purpose |
|---|---|
| Bun | Runtime, test runner |
| tsdown | Build (rolldown-based) |
| oxlint | Linting (type-aware) |
| oxfmt | Formatting |
| TypeScript 5 | Strict mode, all the way |
No ESLint. No Prettier. No slow tooling.
# Install dependencies
bun install
# Run the app
bun dev
# Build for production
bun run build
# Run the built output
bun startbun run check # Run all checks (format, lint, typecheck, test)
bun run fix # Auto-fix format and lint issues
bun run typecheck # TypeScript type checking
bun run lint # Lint with type-aware rules
bun run format # Format with oxfmt
bun test # Run tests
bun run outdated # Interactive dependency updates
bun run clean # Clean build caches
bun run nuke # Clean everything including node_modulessrc/
index.ts # Entry point
tsconfig.json # Strict TypeScript config
.oxlintrc.json # Linter config (correctness: error, perf: warn)
.oxfmtrc.jsonc # Formatter config (no semis, double quotes)
- Strict TypeScript -- no
any, noascasts - No semicolons, double quotes
- Imports are auto-sorted
- Tests use
bun:test
MIT