This CLI applications builds Tanstack Router applications that are the functional equivalent of Create React App.
To help accelerate the migration away from create-react-app we created the create-tsrouter-app CLI which is a plug-n-play replacement for CRA.
To maintain compatability with create-react-app you can build a new application by running:
| Command | Description |
|---|---|
npx create-tsrouter-app@latest my-app |
Create a new app |
npx create-tsrouter-app@latest my-app --template file-router |
Create a new file based app |
npx create-tsrouter-app@latest my-app --template typescript |
Create a new TypeScript app |
npx create-tsrouter-app@latest my-app --template javascript |
Create a new JavaScript app |
npx create-tsrouter-app@latest my-app --tailwind |
Add Tailwind CSS support |
If you don't specify a project name, the CLI will walk you through an interactive setup process:
npx create-tsrouter-app@latestThis will start an interactive CLI that guides you through the setup process, allowing you to choose:
- Project Name
- Router Type (File-based or Code-based routing)
- TypeScript support
- Tailwind CSS integration
- Package manager
- Git initialization
You can also use command line flags to specify your preferences directly:
npx create-tsrouter-app@latest my-app --template file-router --tailwind --package-manager pnpmAvailable options:
--template <type>: Choose betweenfile-router,typescript, orjavascript--tailwind: Enable Tailwind CSS--package-manager: Specify your preferred package manager (npm,yarn,pnpm, orbun)--no-git: Do not initialize a git repository
When using flags, the CLI will display which options were provided and only prompt for the remaining choices.
What you'll get is a Vite application that uses TanStack Router. All the files will still be in the same place as in CRA, but you'll get a fully functional Router setup under in app/main.tsx.
create-tsrouter-app is everything you loved about CRA but implemented with modern tools and best practices, on top of the popular TanStack set of libraries. Which includes @tanstack/react-query and @tanstack/react-router.
File Based Routing is the default option when using the interactive CLI. The location of the home page will be app/routes/index.tsx. This approach provides a more intuitive and maintainable way to structure your routes.
To explicitly choose File Based Routing, use:
npx create-tsrouter-app@latest my-app --template file-routerIf you prefer traditional code-based routing, you can select it in the interactive CLI or specify it by using either the typescript or javascript template:
npx create-tsrouter-app@latest my-app --template typescript- File Based Routing always uses TypeScript
- For Code Based Routing, you can choose between TypeScript and JavaScript
- Enable TypeScript explicitly with
--template typescript
Enable Tailwind CSS either through the interactive CLI or by adding the --tailwind flag. This will automatically configure Tailwind V4.
Choose your preferred package manager (npm, bun, yarn, or pnpm) either through the interactive CLI or using the --package-manager flag.
Extensive documentation on using the TanStack Router, migrating to a File Base Routing approach, as well as integrating @tanstack/react-query and @tanstack/store can be found in the generated README.md for your project.
Check out the Contributing guide.
MIT