Starter template based on Vite and React TypeScript, including routing, type definitions, and basic directory structure
Viact — Vite Starter Template
By MR-Mostafa
Viact is a starter template based on Vite and React TypeScript, with built-in RTL styles, development proxy, mock REST API, UnoCSS, Storybook, and ESLint/Prettier configurations.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Built-in UnoCSS atomic CSS engine, with a set of custom class name rules defined in acss.ts
Supports RTL styles (PostCSS RTLCSS plugin) and global RTL style files
Provides API request proxy in development to handle CORS issues
Mock REST API service based on json-server, located in the mock folder
Integrates Storybook, ESLint, Prettier, Conventional Commit, and VSCode configuration
Template Details
Viact is a starter template for React TypeScript projects, using Vite as the build tool. It provides an opinionated base configuration, including routing (React Router DOM), TypeScript, UnoCSS atomic CSS, PostCSS RTL support with autoprefixer, ESLint, Prettier, Conventional Commit, Storybook, ErrorBoundary, and a mock REST API service based on json-server. The template also supports absolute imports via ~/..., API request proxying in development (to handle CORS issues), Sass/Scss/Less, and automatic image compression during production builds. HTTPS is enabled by default in development mode (https://localhost:3000/), and can be disabled via the dev:http script.
Before use, Node.js >= 16 and Yarn >= 1 are required. You can generate a repository from the GitHub template, or clone it locally and run yarn install and yarn run reset to clean up unnecessary files and git history. The README provides a list of scripts (dev, dev:http, build, preview, analyze, reset, mock:server, storybook, build-storybook) and a directory structure explanation, and reminds you to update the index.html title, favicon, and the name, description, author, keywords, homepage, repository, and bugs fields in package.json.
The template is MIT licensed, allowing free use, modification, commercial use, and distribution of this version of the code, but when distributing copies or substantial portions of the code, the copyright notice and the full MIT license notice must be retained. Third-party assets such as demo images, fonts, and icons must be checked against their respective licenses; external services such as domains, hosting, and databases may incur additional charges.
Is it right for your project?
Use Cases
- Scenarios requiring rapid setup of a React TypeScript project foundation
- Projects needing RTL style support or multilingual layouts
- Development phases requiring a mock REST API or proxying backend interfaces to bypass CORS
- Component development using UnoCSS atomic styles with Storybook
Suitable For
- Frontend developers using React and TypeScript
- Projects needing basic structure including routing, state management directories, and utility functions
- Teams wanting unified ESLint, Prettier, commit conventions, and editor configuration
- Developers needing mock APIs or proxy interfaces during development
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Node.js >= 16 and Yarn >= 1
- 2
Can generate a repository from the GitHub template, or clone and run yarn install and yarn run reset
- 3
Development mode uses HTTPS by default (https://localhost:3000/), can be disabled with yarn run dev:http
- 4
Configure API proxy by editing the proxy field in .vite.config.js as needed
- 5
When using the template, update the index.html title, favicon, and project information fields in package.json
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in a public repository; the free scope is the code of this version, and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version of the code are allowed.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Using this template requires Node.js 16 or higher installed locally, and Yarn 1 or higher for dependency installation and script execution.
- After cloning locally, run yarn run reset to clean up unnecessary files and clear git history; otherwise, the template's original commit history will be retained.
- To use the development proxy feature, you must manually edit the proxy field in .vite.config.js; the template does not automatically configure the backend address.
- The mock REST API feature depends on json-server and is only used during development; it is not a production backend service.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; they cannot be judged solely based on the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
📦 [Node.js >=16](https://nodejs.org/) - 📦 [Yarn >=1](https://yarnpkg.com/)
Original README
yarn run reset # Reset and clean all files you don't need, and clean git history
Original README
For Set Proxy, please see and edit the `proxy` field in file `.vite.config.js`
Original README
https://github.com/MR-Mostafa/Viact/blob/main/LICENSEhttps://github.com/MR-Mostafa/Viact/blob/main/README.mdWe use `json-server` to create mock REST APIs.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 77 / 100
- Technologies
- Vite · React
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2022-08-15
- Screenshot last checked
- 2026-10-02
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Vite as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: b0ac3ec6c335d622c36f33e98b390c3991c49387bc6ac1cf22a9a992892983fd
2026-10-02T22:06:37.438Z
Source file / repository<p align="center">
<img src="./src/assets/images/viact.png" alt="Viact Logo" width="300">
</p>
# ⚡️ Viact
<p>Viact is a starter template for React TypeScript that uses Vitejs, which supports RTL for specific styles, proxy fetching API (to fix CORS errors) and a simple mock REST API server. <br />Additionally, Is set up VScode, Storybook, ErrorBoundary, UnoCss (atomic CSS engine), Eslint, Prettier, and more.</p>
# Synopsis & Motivation
<p>It's an opinionated setup for modern web applications (a GitHub template). This is a set of essential (and minimal) libraries, components, and utilities that developers typically require when developing React applications.</p>
<p>Almost all projects need to have a router, a UI framework, error handling, base file/folder structure, a builder, some developer tools (eslint, prettier, postcss, etc), and many more. As a starter kit, we tried to include the best options available in the above fields.</p>
# Features
<p>Viact is a minimalist starter template, it includes:</p>
- ⚡️ [Vite](https://vitejs.dev/) - Next Generation Frontend Tooling
- ⚛️ [React 18](https://reactjs.org/) - A JavaScript library for building user interfaces
- 🏄 [React Router DOM](https://reactrouter.com/)
- 💎 [TypeScript (of course)](https://www.typescriptlang.org/)
- 🎨 [UnoCSS](https://github.com/antfu/unocss) - the instant on-demand atomic CSS engine
- ✅ Safety - Https is enabled by default in development `https://localhost:3000/`
- 🔨 [EsLint](https://eslint.org/) - Pluggable JavaScript linter
- 🌀 [Prettier](https://prettier.io) - Opinionated Code Formatter
- 📭 [PostCss](https://postcss.org/) - Supports RTL for specific styles & autoprefixer (add vendor prefixes)
- ☄️ [Conventional Commit](https://commitlint.js.org/#/)
- 🎯 Absolute import by using `~/...`
- ⚙️ Proxying API Requests in Development
- 🔥 The easiest way to mock REST APIs! Based on (json-server)[https://github.com/typicode/json-server]
- 📕 [Storybook](https://storybook.js.org/)
- 🗃️ Minify images (image compressor) Automatically (in production)
- 🖌️ Support Sass/Scss/Less
# Prerequisites
- 📦 [Node.js >=16](https://nodejs.org/)
- 📦 [Yarn >=1](https://yarnpkg.com/)
# Getting Started
### GitHub Template
[Create a repo from this template on GitHub.](https://github.com/MR-Mostafa/Viact/generate)
### Clone to local
<p>If you would prefer to do it manually, use the following:</p>
```bash
git clone https://github.com/MR-Mostafa/Viact.git
cd Viact
```
<p>After that, follow these steps to clean the git history and install the dependencies:</p>
```bash
yarn install # Install all dependencies
yarn run reset # Reset and clean all files you don't need, and clean git history
```
# Folder Structure
<p>Simple folder structures, no configuration needed, just the files you need:</p>
```
Viact
├── .storybook # Storybook configuration
├── .vite-cache # Vite cache (for faster builds)
├── .vscode # VSCode configuration
├── mock # Full fake REST API server (Create a mock API server with `json-server`)
├── node_modules # Node modules
├── postcss # Postcss RTLCSS Plugin
└── src # Your source code that will be compiled to dist folder
| ├── api
| ├── assets
| | ├── fonts
| | ├── images
| | └── styles
| | ├── utils # Utility styles
| | ├── styles.rtl.scss # Global rtl styles
| | └── styles.scss # Global styles
| ├── components
| ├── constants
| ├── containers
| ├── env
| ├── pages
| ├── sections
| ├── store
| ├── types
| ├── utils
| ├── App.tsx
| ├── main.tsx
| └── Routes.tsx
├── .gitignore
├── index.html
├── package.json
├── README.md
├── vite.config.js
...
```
# Available Scripts
<p>In this project, you can run the following scripts:</p>
| Script | Description |
| ------------------------ | ------------------------------------------------------------------------------ |
| yarn run dev | Runs the app in the development mode. (With HTTPS) |
| yarn run dev:http | Runs the app in the development mode. (**Without** HTTPS) |
| yarn run build | Builds the app for production to the `dist` folder. |
| yarn run preview | Builds the app for production to the `dist` folder, and run locally server. |
| yarn run analyze | Builds the app for production to the `dist` folder, and active analyze mode. |
| yarn run reset | Reset and clean all files you don't need, and clean git history. |
| yarn run mock:server | Run the server for the fake rest API. |
| yarn run storybook | Run the documentation for the UI. |
| yarn run build-storybook | Builds the documentation for the UI. |
# UnoCSS
Plese see this link for more information about UnoCSS:<br />
- [Unocss](https://github.com/unocss/unocss)
- [Let’s Define Exactly What Atomic CSS is](https://css-tricks.com/lets-define-exactly-atomic-css/)
- [Atomic CSS](https://acss.io/)
- [Reimagine Atomic CSS](https://antfu.me/posts/reimagine-atomic-css)
### The default CSS Preset (Atomic CSS Class)
As you might know, Tailwind and Windi CSS transform specific class names in the HTML file (or in the JSX or TSX file) to specific property styles as you need them(on-demand). <br />
A number of rules have been defined for the use of commonly used styles, Which is defined in the following file:
```
./acss.ts
```
- Support all utilities styles
- Support css Pseudo Classes/Elements
- Support group selectors, like .navbar a {...}
- Support CSS variables
### Rules:
- In classNames, spaces cannot be used (because a new class has already been defined). <br />Therefore, the underscore(_) sign should be used instead of a space. We will now replace the underscore(_) sign with a space.
- **For Group Selectors:**
- Group Selectors must start with @
- All selectors must end with dollar sign ($)
- The classname can only contain one dollar sign ($)<br />
**example:**
```
space between
👆
@.wrapper_p$fs[16px] => .wrapper p{font-size: 16px;}
👇 👇
👇 end group selectors
👇
start group selectors
```
#### example
You can use utility classes in your components and stylesheets as usua.
| ACSS ClassName | Corresponding CSS |
| ------------------ | --------------------------------------------------------- |
| pt-[10] | padding-top: 1.5rem; **The default unit is the rem** |
| py-[1.5rem] | padding-top: 1.5rem; <br /> padding-bottom: 1.5rem; |
| bd-[1px_solid_#F5F5F5] | border: 1px solid #F5F5F5; |
| bdt-[1px_solid_#F5F5F5] | border-top: 1px solid #F5F5F5; |
| br-[10px] | border-radius: 10px; |
| bgc-[#fff] | background-color: #fff; |
| w-[100vw] | width: 100vw; |
| fs-[1.2em] | font-size: 1.2em |
| text-[center] | text-align: center |
| px-[1rem] | padding-left: 1rem; <br /> padding-right: 1rem; |
| @.navbar_a$fs-[1.4rem] **Group Selectors** | .navbar a { font-size: 1.4rem; } |
| @.github:hover_svg$fill-[#fff] | .github:hover svg { fill: #fff !important; } |
| hover:bg[red] **Pseudo Classes** | elem:hover{background: red;} |
| after:cnt[text] **Pseudo Elements** | elem::after{content: "text"} |
| root:[--primary:#0d6efd] **Global CSS variables** | :root {--primary: #0d6efd;} |
| elem:[--primary:#0d6efd] **Local CSS variables** | elem {--primary: #0d6efd;} |
# Set Proxy (If you need)
For Set Proxy, please see and edit the `proxy` field in file `.vite.config.js`
# Fake REST API (If you need)
To create mock REST APIs, see the `mock` folder. <br />
We use `json-server` to create mock REST APIs. Plese see the following link for more information:<br />
[json-server](https://github.com/typicode/json-server)
# Checklist
Be sure to follow the checklist when updating your information using this template
- [ ] Change the title in `index.html`
- [ ] Change the favicon in `./src/assets/images`
- [ ] Change the `name, description, author, keywords, homepage, repository and bugs` field in `package.json`
And, enjoy :)
Explore similar templates
Compare previews and descriptions within the same stack and category.

react-starter-kit
A full-stack SaaS monorepo starter built on Vite and React, with Bun, TypeScript, tRPC, Drizzle ORM, Better Auth, Stripe, and Cloudflare Workers. It includes email OTP, passkey, Google OAuth, organizations, subscription billing, Drizzle migrations, seed scripts, and Terraform infrastructure.
Vite · SaaS

cove
Cove is a minimal TanStack Start starter template maintained by mugnavo, integrating React, TanStack Router/Query, Tailwind CSS, shadcn/ui, Drizzle ORM with PostgreSQL, Better Auth, Vite Plus, and Nitro.
Vite · SaaS

vite-react-boilerplate
A production-ready Vite + React starter template with TypeScript, Tailwind CSS, TanStack Router/Query/Table, Storybook, React Hook Form + Zod, Vitest and Playwright testing, plus Husky/Commitizen/Commitlint commit conventions.
Vite · Starter

react-vite-admin
A backend management starter built on Vite and React, integrating Recoil, React Query, TypeScript, and Axios, with Ant Design-style interface screenshots. Suitable as a starting point for management-side projects, licensed under MIT, with Chinese documentation and common scripts.
Vite · Admin dashboard

typescript-react_best_practices-vite_template
A Vite + React + TypeScript starter template by CodelyTV, preconfigured with Jest and React Testing Library unit tests, Cypress end-to-end tests, ESLint and Prettier using Codely's shared configuration, GitHub Actions workflows, a Makefile, and Sass.
Vite · Starter

cloudflare-starter-kit
A Cloudflare Workers project scaffolding template maintained by kriasoft, using Vite and TypeScript, with three built-in workspaces: api, app, and edge, and preconfigured local testing, multiple environments, and a GitHub Actions deployment workflow.
Vite · Starter
