This is my opinionated template for bootstrapping React-based web apps. It follows a few basic principles based on my own experience:
- Always use TypeScript,
- No RSC, they overcomplicate the app,
- No Node.js, Bun is used for package management, building and possibly serving,
- No Babel, only SWC is used,
- No ESLint, it overcomplicates everything.
-
Vite for building and as a super fast development server,
-
SWC for bundling,
-
Biome for fast, no-bullshit linting and formatting,
-
TanStack Router for routing and fetching,
-
Jotai for sane state management,
-
Tailwind for mildly simple inline styling.
-
shadcn/ui for simple prebuilt components.
dev
: Starts the development server,build
: Type checks, lints and formats and builds for production,check
: Lints and formats the code.
src/
assets/
components/
Counter.tsx
main.tsx
routeTree.gen.ts
routes/
__root.tsx
index.lazy.tsx
stores/
counter.ts
vite-env.d.ts