VueViteAdmin dashboardStarter

vite-ts-starter — Vue Admin dashboard Template

By pdsuwwz

A TypeScript admin management template based on Vite and Vue 3, integrating Element Plus, Vuex 4, i18n and ESLint engineering configuration, with example pages for login, list and detail.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-02View source

What stands out

A quick read of the recorded project description.

01

Vue 3 + Vite + TypeScript combination, with Element Plus for UI

02

Built-in i18n, supporting language switching at the VueRouter route level

03

Integrates ESLint, Stylelint, Husky, lint-staged and Vitest

04

Wraps Axios, an IconFont component and a global $ModalDialog plugin

05

Presets route authentication and Nprogress, and provides login, list and detail example pages

06

Modular directory structure, with pages, routes and styles decoupled by module

Template Details

vite-ts-starter is a front-end foundation template for small and medium-sized B2B admin management systems. It is built with Vue 3 (setup syntax) + Vite + TypeScript, uses Element Plus for UI, Vuex 4 for state management, and includes built-in development and standardization tools such as i18n internationalization, ESLint, Stylelint, Husky, lint-staged and Vitest.

The template provides business flow examples for three core pages: login, list and detail. It wraps Axios, an IconFont component and a global $ModalDialog plugin, and presets route authentication and an Nprogress progress bar. The project uses a modular directory organization, so page components, route components and styles can be decoupled by module, making secondary business development on this basis easier.

This repository is one of several tech-stack templates maintained by the author. The same series also provides a Pinia version, a JavaScript version and a Naive UI version, which can be chosen as needed. Before use, note the environment requirements: Node >= 22.12.x, Pnpm 9.x, and it is recommended to install the specified version of the VSCode ESLint extension.

VueViteAdminStarter

Is it right for your project?

Use Cases

  • Quickly building the front-end skeleton of a small or medium-sized B2B admin management system
  • Serving as a starting template for a Vue 3 + TypeScript + Element Plus project
  • Admin backends that need route-level internationalization and multi-language extension
  • Front-end teams that want unified code standards and unit test configuration

Suitable For

  • Front-end developers using Vue 3 and TypeScript to develop admin management systems
  • Teams that need ready-to-use engineering configuration (Lint, Git Hook, testing)
  • Projects that prefer the Element Plus and Vuex 4 technology choices
  • Management systems that need multi-language support and want to switch languages by route

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Environment requirements: Node >= 22.12.x, Pnpm 9.x

  2. 2

    Use pnpm i to install dependencies and pnpm dev to start the development server

  3. 3

    Run pnpm test or pnpm test:coverage to execute unit tests

  4. 4

    If Husky does not take effect, run pnpm run prepare to initialize

  5. 5

    The default language is English; defaultLanguageLocale can be modified in src/locales/index.ts

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean that external services or third-party assets are free.

Must comply with when using

  • The code of this version may be used, modified, used commercially and distributed free of charge.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete 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

  • Demo images, fonts, icons and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments or AI may charge separately.
  • The runtime environment requires Node >= 22.12.x; versions below this cannot be used normally.
  • The package manager requires Pnpm 9.x.
  • It is recommended to install the specified version of the VSCode ESLint extension (dbaeumer.vscode-eslint >= v3.0.5 pre-release).
  • If Husky does not take effect, run pnpm run prepare to initialize.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

* Node >= 22.12.x

Original README

* Node >= 22.12.x * Pnpm 9.x * **VSCode Extension `dbaeumer.vscode-eslint` >= v3.0.5 (pre-release)**

Original README

* **VSCode Extension `dbaeumer.vscode-eslint` >= v3.0.5 (pre-release)**

Original README

* If Husky is not working, it may be due to incomplete initialization. Try running the following command to initialize:

Original README
https://github.com/pdsuwwz/vite-ts-starter/blob/main/LICENSEhttps://github.com/pdsuwwz/vite-ts-starter/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-04. 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 · 96 / 100
Technologies
Vue · Vite
Website type
Admin dashboard · 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
2025-12-19
Screenshot last checked
2026-10-04

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 Vue 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.

Review declaration: codex-user-requested-batch-review-20261017 · 2026-10-16

Inspect the recorded source material

SHA-256: ecb15f6c085259a17b1c306dd114e06a9b24e5d5e506a9a86ff01f7044f57419

2026-10-04T12:25:18.860Z

Source file / repository
# vite-ts-starter

English | [中文](README-zh.md)

[![Deploy](https://github.com/pdsuwwz/vite-ts-starter/workflows/gh-pages/badge.svg)](https://github.com/pdsuwwz/vite-ts-starter/actions/workflows/deploy.yml)
[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/pdsuwwz/vite-ts-starter/deploy.yml?branch=main)](https://github.com/pdsuwwz/vite-ts-starter/deployments/activity_log?environment=github-pages)
[![thanks](https://badgen.net/badge/thanks/♥/pink)](https://github.com/pdsuwwz)
[![License](https://img.shields.io/github/license/pdsuwwz/vite-ts-starter?color=blue)](https://github.com/pdsuwwz/vite-ts-starter/blob/main/LICENSE)

🐬 A Starter template built on Vite 7.x + Vue 3.x + Element Plus 2.x + TypeScript + Husky + lint-staged.

A ready-to-use prototype template framework for quickly developing management systems using Vue3 + Vite7 + TS, with continuous updates on the latest tech stack 💪

[🚀 Online Playground](https://pdsuwwz.github.io/vite-ts-starter/#en)


## 🌱 Different Versions
Five different tech stack repo templates are maintained. Try them and pick the one that fits you.

- 💥 (Recommended) [TS + Pinia + 🌐 Low-coupling (i18n) multilingual Vite7 + Vue3 + TS + Element-Plus2 + vue-i18n@next](https://github.com/pdsuwwz/vue-boilerplate-i18n)

- ⚡️ TS + Pinia [Vite5 + Vue3 + TS + Pinia + Element-Plus2 + useLocale + i18n](https://github.com/pdsuwwz/pinia-starter-ts)
- ⚡️ JS + Pinia [Vite5 + Vue3 + Pinia + Element-Plus2 + useLocale + i18n](https://github.com/pdsuwwz/vite-pinia-starter)

- ⚡️ TS + Vuex4 (Current Repo)[Vite7 + Vue3 + TS + Vuex4 + Element-Plus2 + useLocale + i18n](https://github.com/pdsuwwz/vite-ts-starter)
- ⚡️ JS + Vuex4 [Vite5 + Vue3 + Vuex4 + Element-Plus2 + useLocale + i18n](https://github.com/pdsuwwz/vite-starter)

## 🪄 Using Different UI Libraries

If you prefer using [Naive UI](https://www.naiveui.com/) as your UI library, we've also prepared several corresponding template projects for you. You can use these as a foundation for secondary business development and customization:

- 🏄‍♂️ [Naive UI basic template](https://github.com/pdsuwwz/vite-naive-template)
- 🗂️ [Naive UI Tab switching demo](https://github.com/pdsuwwz/vue3-tab-demo)


## 🎉 Features

* Supports __Vite 7 + Vue 3 + TypeScript__
* UI framework: __Element Plus 2.x__
* State management: __Vuex 4__
* Code standardization: __Husky + lint-staged__
* Unit testing framework: ~~__Jest__~~ upgraded to __Vitest__
* Built-in __ESlint__ and __Stylelint__, expandable for your desired Lint configuration
* Built-in encapsulation of a **potentially useful** Axios, to be used with Vuex Actions when needed
* Encapsulated \<IconFont \/> component for direct use of IconFont icons
* Built-in global **$ModalDialog** plugin, supports dynamic service-style calls to display any component
* Built-in i18n, supports language switching at VueRouter route level, allows writing internationalization config files and extending other languages
* Pre-configured route authentication, along with Nprogress, just modify the `permission.ts` file
* Comes with a modular component development environment, allowing decoupling of page components, route components, styles, etc. in the modules directory
* Highly encapsulated yet flexible, with an abstracted complete business process for reference, involving three core pages: login, list, and details
* Saves your configuration time, the project's **lightweight** nature allows you to focus solely on writing your business code


## Environment Support

* Vue 3.x
* Node >= 22.12.x
* Pnpm 9.x
* **VSCode Extension `dbaeumer.vscode-eslint` >= v3.0.5 (pre-release)**


## Screenshot

<img width="1440" alt="image" src="https://user-images.githubusercontent.com/19891724/154829635-46de24db-e4c5-409f-9fa5-6a9770ace166.png">
<img width="1440" alt="image" src="https://user-images.githubusercontent.com/19891724/154829667-a84787b0-0104-4466-bb9e-9f586be66778.png">


## Install

Run `pnpm i` to install the dependencies.

```bash
pnpm i
```

## Run

Run `pnpm dev` to start the frontend dev server.

```bash
pnpm dev
```

## Test

Unit Testing.

```bash
pnpm test
```

Test code coverage.

```bash
pnpm test:coverage
```

## 🌍 Internationalization (i18n) Setup

This project supports multi-language settings, with `English` as the default language.

### Default Language Configuration


The default language is set through the [`defaultLanguageLocale`](src/locales/index.ts#L43) constant. To change the default language, simply modify the value of this constant:

```ts
export const defaultLanguageLocale = 'en'
```

### Extending Supported Languages

The project currently supports the following languages, as detailed in [src/locales/index.ts](src/locales/index.ts#L13):

```ts
export const localesMapping = [
  {
    localeCode: 'zh-hans',
    localeName: '简体中文',
    localeLang: {...}
  },
  {
    localeCode: 'en',
    localeName: 'English',
    localeLang: {...}
  }
]
```

To add support for a new language:

  * Add a new language object to the [`localesMapping`](src/locales/index.ts#L13) array
  * Create a corresponding language file in the [`src/locales/lang/`](src/locales/lang/) directory (e.g., de.ts for German)

    ```
    ./lang
    ├── en.ts
    └── zh-hans.ts
    ```
  * Import and merge the `Element Plus` language pack and custom language file, ensuring both UI components and custom content are localized.


## 💡 Tip

* If Husky is not working, it may be due to incomplete initialization. Try running the following command to initialize:

```bash
pnpm run prepare
```


## 😎 Awesome

* [awesome-vite](https://github.com/pdsuwwz/awesome-vite)
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

vuestic-admin

vuestic-admin

Vuestic Admin is an open-source Vue 3 admin template maintained by Epicmax, built on Vuestic UI with Vite, Pinia, and Tailwind CSS. It provides a ready-to-run dashboard with a dark theme, global configuration, i18n internationalization, and responsive layout.

Vue · Admin dashboard

vitesse

vitesse

Vitesse is an opinionated Vite + Vue 3 starter template maintained by antfu-collective, offering file-based routing, component and API auto-import, Pinia, UnoCSS, PWA, i18n, Markdown, vite-ssg, TypeScript, Vitest, and Cypress.

Vue · Starter

v3-admin-vite

v3-admin-vite

v3-admin-vite is an AI-friendly Vue3 admin template built on Vue3, Vite, TypeScript, and Element Plus. It keeps a lean structure with detailed comments, supports backend-controlled dynamic route permissions, page-level and button-level permissions, multiple themes and layouts, and mobile compatibility.

Vue · Admin dashboard

vue-typescript-admin-template

vue-typescript-admin-template

A Vue 2.6 + TypeScript + Element UI admin template ported from vue-element-admin, offering type safety and enterprise features like permission authentication, internationalization, dynamic themes, editors, charts, Excel/PDF handling, and PWA support.

Vue · Admin dashboard

vue-antd-admin

vue-antd-admin

Vue Antd Admin is the Vue implementation of Ant Design Pro, providing an out-of-the-box front-end and design solution for admin dashboards.

Vue · Admin dashboard

coreui-free-vue-admin-template

coreui-free-vue-admin-template

CoreUI's official free Vue admin template, MIT licensed, built on Vue 3 and the CoreUI component library with Vue Router, Pinia, and Vite.

Vue · Admin dashboard