# reduxjs/redux-templates for Vite and Expo

> This monorepo provides official Redux project templates for Vite and Expo, plus a Redux Toolkit app-structure example for the Redux Essentials tutorial. It is aimed at developers who want a TypeScript starting point rather than a Redux library installed into an empty application.

**reduxjs/redux-templates** — Official Redux templates for Vite, Create-React-App, and more

- Repository: https://github.com/reduxjs/redux-templates
- Website: https://redux.js.org
- Stars: 1,508 · Forks: 278
- Language: TypeScript
- License: MIT
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/reduxjs-redux-templates

## What reduxjs/redux-templates supplies to new projects

The repository solves the starting-point problem for developers who want to build on Redux but do not want to assemble a project structure from scratch. Its `packages/` directory contains `vite-template-redux` for Vite projects and `expo-template-redux-typescript` for Expo projects. Both entries are identified as TypeScript templates. This makes the repository relevant to web and React Native application work that uses Redux as its state management choice.

The repository also contains `examples/rtk-app-structure-example`, described as a standalone example of the Redux Toolkit app structure used in the Redux Essentials tutorial. That is a different role from the templates. A template is intended to be copied into a new application, while the example supplies a specific reference structure for documentation and learning.

This is not a CLI that creates arbitrary applications or an npm package that exposes a runtime API. The README directs users to copy a template with `tiged`. The project therefore trades configurability for a predefined starting point. Developers who need a different bundler, non-TypeScript configuration or a custom application layout may need to adapt the copied project.

## The monorepo layout and supported project targets

Based on the repository layout, the codebase is organized as a pnpm workspace. `packages/` holds distributable starting points, while `examples/` holds documentation-oriented sample code. `pnpm-workspace.yaml`, `pnpm-lock.yaml` and the root `package.json` provide the visible workspace configuration. This separation makes it possible for each template or example to remain a plain project while the repository tooling handles validation across multiple packages.

The current target set is narrow. The README names Vite and Expo as the maintained template locations, and it explicitly says that the older Create-React-App and React Native CLI templates were removed. Their final version remains available under the `archive/cra-and-rn-cli` tag. Anyone following installation instructions should therefore distinguish between the default branch and that archive when looking for a legacy setup.

The root scripts cover repository tooling rather than application behavior. The root `package.json` defines `format`, `format-check`, `lint`, `lint-fix`, `type-check` and `test:templates`. The README says each package also has its own `lint`, `format`, `type-check` and `test` scripts. This arrangement allows the same general quality checks to be applied without treating the monorepo itself as a deployed application.

## Copying the Vite template with tiged

The README gives one direct way to copy a template into a separate application directory. For a Vite project, use the documented `tiged` command. The destination name in the example is `my-app`.

```sh
npx tiged reduxjs/redux-templates/packages/vite-template-redux my-app
```

The command points at the repository path `packages/vite-template-redux`, so it copies the Vite template rather than the Expo template or the documentation example. After the copy, the developer changes into the new directory and follows the README in the copied project. The repository-level README does not provide the full application start command for that template, so it would be inaccurate to invent one here.

The copy step matters because `tiged` is used to retrieve a plain project. Once copied, the destination becomes the application that the developer edits. The template repository is not required to become a runtime dependency of that application. For Expo, the source path would instead be `packages/expo-template-redux-typescript`, but the root README does not print a separate command for that copy operation.

## Working inside the Redux templates workspace

Contributors and developers inspecting the monorepo itself use pnpm rather than treating the root as a standalone application. The README instructs contributors to run `pnpm install` at the root and then work inside a package folder as they would in a standalone project. The declared package manager is `pnpm@11.5.0`.

```sh
pnpm install
```

This installs the workspace dependencies represented by `pnpm-lock.yaml`. It is the appropriate first step for editing or validating the repository. It is not the documented first step for using a copied template in a new application, because the README presents `npx tiged` as the template retrieval path.

The package folders are intended to remain ordinary projects. That means a developer can inspect each folder's own scripts and README instead of relying on a special monorepo command for every operation. The root does, however, provide `pnpm test:templates`, which copies templates into a temporary folder and runs their install, test, lint and build scripts. That command is intended to check the templates as reusable artifacts, not to deploy an application.

```sh
pnpm test:templates
```

On Windows, the README documents a specific path constraint. The default 8.3 short form of the temporary folder breaks `vite build`, so it recommends setting `TEMP` to the long-form location before running the template check. The repository example is `export TEMP="$USERPROFILE\AppData\Local\Temp"`, which is a shell command using the user's Windows profile path.

## Template validation and repository tooling

The repository has a specific contribution workflow rather than an application deployment workflow. Formatting and linting use `oxfmt` and `oxlint`, while TypeScript checking uses `tsc`. The root scripts apply these tools to the repository configuration, and the README states that each package has its own corresponding scripts.

The distinction between formatting, linting, type checking and testing is useful when evaluating maintenance work on a template. A copied project can carry these checks into its own development process, but the root README does not claim that the templates automatically update a user's application or enforce a particular production architecture. The repository's tests validate template behavior and packaging. They do not replace application-specific tests.

The root `test:templates` command is also a useful boundary for understanding what maintainers verify. It copies each template into a temporary folder in the same way as `tiged`, then runs install, test, lint and build scripts. This checks that a template can be copied and used as a project. The README does not state that the command verifies deployment targets, native devices or every possible downstream environment.

The package configuration pins the package manager and includes tooling versions such as `typescript`, `oxlint`, `oxfmt` and `tsx`. Those versions are repository maintenance details, not a promise that every copied application must retain them unchanged. After copying a template, the destination project's dependency and tool versions should be reviewed against its own requirements.

## Legacy templates and the limits of the maintained path

The clearest limitation is the removal of the older Create-React-App and React Native CLI templates. The README does not say that those templates were merely hidden from the package list; it states that they were removed. It provides the `archive/cra-and-rn-cli` tag as the location of their last preserved version. A developer who needs one of those project targets must deliberately inspect that archive rather than expecting the current default branch to contain it.

The root documentation also leaves several application-level questions to each folder's README. The root documentation does not explain deployment, environment variables, backend integration or state persistence for the copied templates. It does not provide a universal command for starting every target. This is reasonable for a collection of plain projects, but it means adoption requires reading the selected folder's own instructions rather than relying on the root README alone.

The repository is not archived, and its last push was on 2026-09-28. The listed releases are older, with `v2.0.0` dated 2022-04-24, followed by releases in 2021 and 2020. The repository data therefore shows a current push but does not, by itself, establish a release cadence or compatibility matrix for every Vite, Expo, Node or React version. The specific dependency versions and build behavior should be checked in the selected template before adoption. The repository is licensed under MIT, which is the declared license, but license review remains a separate consideration from whether the template fits a project's architecture.

## Conclusion

Developers who want an official, TypeScript-oriented Redux starting point should inspect the Vite or Expo template and follow that folder's README before copying it. Developers seeking Create-React-App or React Native CLI templates should use the archive tag instead, while teams needing application-specific state architecture should first compare the template with their own requirements. For this repository, the first verification is whether `vite-template-redux` or `expo-template-redux-typescript` matches the intended build target.

## FAQ

### How do I create a new Vite project from reduxjs/redux-templates?

The README gives a `tiged` command that copies `packages/vite-template-redux` into a directory named `my-app`. After copying, follow the README in the new project for its setup and start commands.

### Does reduxjs/redux-templates support Expo with TypeScript?

Yes. The README lists `packages/expo-template-redux-typescript` as the Expo template and identifies it as TypeScript-based. Installation and setup instructions are delegated to the README in that folder.

### Are Create-React-App and React Native CLI templates still in the default branch?

No. The README says those older templates were removed. Their last version is preserved under the `archive/cra-and-rn-cli` tag.

### How are the Redux project templates checked in this repository?

The root `test:templates` script copies each template into a temporary folder and runs its install, test, lint and build scripts. On Windows, the README notes that a long-form `TEMP` path may be required because the default 8.3 short path breaks `vite build`.

### What is the difference between the templates and the example app?

Templates are stored in `packages/` and are intended to be copied into new projects. The `examples/rtk-app-structure-example` directory is a standalone example of the Redux Toolkit app structure used in the Redux Essentials tutorial.

## Sources

- [License: MIT](https://github.com/reduxjs/redux-templates/blob/master/LICENSE)
- [Project website](https://redux.js.org)
- [README](https://github.com/reduxjs/redux-templates/blob/master/README.md)
- [reduxjs/redux-templates on GitHub](https://github.com/reduxjs/redux-templates)
- [Releases](https://github.com/reduxjs/redux-templates/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/reduxjs-redux-templates
