# Create-modern-react — production-ready React 19 + TypeScript + Tailwind + shadcn in 15 seconds

**URL:** <https://forum.devtalk.com/t/create-modern-react-production-ready-react-19-typescript-tailwind-shadcn-in-15-seconds/244651>\
**Category:** Frontend Libraries/Tools\
**Tags:** shadcn, typescript, react\
**Created:** [12 May 2026 15:26 UTC](https://forum.devtalk.com/t/create-modern-react-production-ready-react-19-typescript-tailwind-shadcn-in-15-seconds/244651 "2026-05-12T15:26:11Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![abhay-rana](https://forum.devtalk.com/user_avatar/forum.devtalk.com/abhay-rana/32/8064_2.png) [@abhay-rana](https://forum.devtalk.com/u/abhay-rana)\
**Post date:** [12 May 2026 15:26 UTC](https://forum.devtalk.com/t/create-modern-react-production-ready-react-19-typescript-tailwind-shadcn-in-15-seconds/244651/1 "2026-05-12T15:26:11Z")

</div>

Bit of a personal itch-scratch post — curious if anyone else runs into the same thing.

Every time I kick off a new React project I end up doing the same hour of setup: wire TypeScript strict mode, add Tailwind, pick a UI library, set up routing, build an API layer, configure ESLint, add path aliases… It’s not hard, just boring. And I kept making slightly different decisions each time, so projects never felt consistent.

So I spent some weekends building a CLI that does all of that for me: **[create-modern-react](https://github.com/abhay-rana/create-modern-react)**

```bash
npx create-modern-react my-app
cd my-app
yarn dev

```

The defaults I landed on after a few real projects:

- React 19 + TypeScript 5.9 strict
- Vite with SWC (noticeably faster than Babel for larger codebases)
- Tailwind CSS 4
- shadcn/ui for components (Button, Input, Card, Skeleton already wired)
- Wouter for routing — it’s 2KB vs React Router’s much larger bundle, and I’ve found it covers 95% of what I need
- Axios with a typed wrapper so API calls look like `getApi<User[]>('/users')` instead of raw fetch wrangling
- React Hot Toast, Error Boundary, and `~/` path aliases included

A few hooks I kept copy-pasting between projects are baked in too: `useLoader`, `useDebounce`, `useCancelToken`.

During setup the CLI asks if you want Redux Toolkit, React Hook Form + Zod, Ant Design instead of shadcn, or Husky for git hooks. Nothing gets added unless you ask for it.

* * *

I’ve used it as the base for a couple of my own projects now (a resume builder and an e-commerce frontend) and it’s held up well. But I’m aware my defaults are just my defaults — other people’s setups will differ.

Curious what you all think:

- Is Wouter a dealbreaker for you, or do you default to React Router anyway?
- Any obvious gaps in that stack that you always end up adding yourself?
- Would you swap anything out?

GitHub if you want to poke around:

> **[GitHub - abhay-rana/create-modern-react: ⚡ Scaffold production-ready React + TypeScript +...](https://github.com/abhay-rana/create-modern-react)**
>
> ⚡ Scaffold production-ready React + TypeScript + Tailwind + shadcn apps in 15 seconds

Happy to answer questions or take suggestions — it’s MIT and still pretty early.
