CLI tool
Tencent/tdesign-vue-next-starter avatar
Tencent/tdesign-vue-next-starter

tdesign-vue-next-starter: a Vue 3 admin skeleton for TDesign

A starter-kit for TDesign Vue Next UI components

1,039 stars249 forksVueMIT

At a glance

What is it?
The tdesign-vue-next-starter repository is a starter kit for building an admin interface on Tencent's TDesign Vue Next components, with Vite, Pinia, TypeScript, dark mode, several layout variants, a mock data layer and a CLI that generates the project. It suits a developer who needs a working admin shell rather than a component set, and the choice is TDesign rather than an unstyled approach.
Who is it for?
Adopt tdesign-vue-next-starter if you are building a back office on TDesign Vue Next and want the directory structure, routing, store setup and layout wiring already done. Skip it if you are building a consumer-facing product, since this is an admin skeleton, and skip it if you have standardised on another component library, since the whole point is TDesign's design language.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly Vue, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 21, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the starter is, and who it is for

TDesign Vue Next Starter is a starter kit for TDesign Vue Next UI components, and the description is that it is TDesign-based, developed with Vue 3, Vite, Pinia and TypeScript. It offers customisable theme configuration, and it aims to provide a project out of the box, a configuration-style middle and background project, which is the Chinese phrase for an admin and back-office application. The features list spells out what you get. Various provided pages for development, a complete directory structure, code specification configuration, dark mode support, custom theme colours, various space layouts, and a mock data scheme. The primary language is Vue, the licence is MIT, the default branch is `develop`, the last push was on 2026-10-03, and the releases are 0.14.0 on 2026-06-30, 0.13.1 on 2025-06-17 and 0.12.0 on 2025-01-06. The homepage is the TDesign starter documentation site for Vue Next.

The CLI, and the quick start it gives you

The project is initialised with a CLI tool, `tdesign-starter-cli`, and the usage section gives two commands:

bash
## install tdesign-starter-cli
npm i tdesign-starter-cli@latest -g

## create project
td-starter init

The second command is the interesting one, because `td-starter` is not the same name as the package you installed, and the difference between the two spellings is a small thing that will cost a user a minute. After the project exists, the develop step is the conventional pair:

bash
## install dependencies
npm install

## set up
npm run dev

and the build has a production target and a test target:

bash
## build
npm run build

## build for test
npm run build:test

The manifest also has a `dev:mock` script that opens the browser in a mock mode, which is the fastest way to see the screens with data before any backend exists.

The modes, and the environment files behind them

The scripts are structured around Vite modes, and each one maps to an environment file in the repository root, where there are `.env`, `.env.development`, `.env.site` and `.env.test`. The `dev` script runs `vite --open --mode development`, `dev:mock` runs the same in mock mode, `dev:linux` runs it without opening the browser, and `build` runs `vue-tsc --noEmit && vite build --mode release`, while `build:test` and `build:site` use the test and site modes. The `build:type` script runs only the type check, which is worth knowing because a full build does the type check first and will fail on a type error before Vite is even invoked. The mock directory at the root and the `mockjs` type dependency explain where the mock data scheme lives, and the `dev:mock` script is what makes the starter usable before you have written a backend.

The dependency set, and what each choice implies

The dependency list is where a starter kit shows its priorities. The component library is `tdesign-vue-next` with `tdesign-icons-vue-next` alongside it, so the icons match the components. The state layer is Pinia at version 3, with `pinia-plugin-persistedstate` for persisting store state across reloads, which is a small detail that saves a lot of work in an admin app where filters and table state should survive a navigation. `vue-router` at version 5 handles the routing, `vue-i18n` the localisation, `axios` the HTTP calls and `qs` the query strings. `@vueuse/core` is the composables library, `dayjs` the date handling, `echarts` the charts, `lodash` the general utilities, `nprogress` the route progress bar, and `tvision-color` the colour manipulation that TDesign's theming leans on. The dev dependencies use `@antfu/eslint-config` for the linting rules, `commitlint` for the commit messages, and `@vitejs/plugin-vue`.

The tooling, and the strictness of the lint setup

The lint configuration is worth a note because it is stricter than a default. The `lint` script runs ESLint over the Vue, JavaScript and TypeScript sources with `--max-warnings 0`, so a warning fails the command, and there is a `lint:fix` counterpart. Stylelint is handled separately, running over the HTML, Vue, CSS, Sass and Less sources, again with a fix variant. The commit messages are checked too, with `commitlint.config.js` at the root and a `prepare` script that installs the husky hooks, and the contributing guide names the Angular convention for commits and the Vue style guide for code. The `format` and `prettier` setup sits in `.prettierrc.js` and the stylelint configuration is in `stylelint.config.js`. There is also a `.cnb.yml` and a `.cnb/` directory, which is the CNB continuous integration platform, alongside the GitHub workflows.

The tests, and the community versions

There is an honest gap in the test story. The `test` script is `echo "no test specified,work in process"` and `test:coverage` says the same, so the scripts exist and do nothing yet. That is stated plainly in the manifest rather than hidden, which is worth crediting, and it means the starter gives you a project skeleton rather than a project with a working test harness. The second thing the README covers is community versions. There are kinds of community versions of the starter kit based on TDesign Vue Next, with a link to a community versions page for detail, and if you have developed one you are asked to open an issue or submit a pull request so it can be listed. The browser support table is specific, with Edge 84 or newer, Firefox 83 or newer, Chrome 84 or newer and Safari 14.1 or newer, which sets the floor for the generated project.

Editorial conclusion

Adopt tdesign-vue-next-starter if you are building a back office on TDesign Vue Next and want the directory structure, routing, store setup and layout wiring already done. Skip it if you are building a consumer-facing product, since this is an admin skeleton, and skip it if you have standardised on another component library, since the whole point is TDesign's design language. Before you start, note that the repository's own test scripts are placeholders that print no test specified, so there is no automated test suite to lean on, and that linting runs with `--max-warnings 0`, so a warning fails the build.

Frequently asked questions

What is the tdesign-vue-next-starter?

A starter kit for TDesign Vue Next UI components, developed with Vue 3, Vite, Pinia and TypeScript. It provides various pages for development, a complete directory structure, code specification configuration, dark mode, custom theme colours, several space layouts and a mock data scheme.

How do I create a new project from the TDesign starter?

Install the CLI with `npm i tdesign-starter-cli@latest -g`, then run `td-starter init`. After that `npm install` sets up the dependencies and `npm run dev` starts the development server.

How do I run the TDesign starter with mock data?

The dev:mock script runs Vite in mock mode, and there is a mock directory at the repository root along with the mockjs types. The dev script runs the same server in development mode, and dev:linux runs it without opening the browser.

Does the TDesign starter have automated tests?

Not yet. The test and test:coverage scripts are placeholders that print that no test is specified and the work is in process. Linting, on the other hand, is enforced, with ESLint running with --max-warnings 0 and Stylelint over the styles.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. Tencent/tdesign-vue-next-starter on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/tencent-tdesign-vue-next-starter.svg)](https://hysenlabs.com/projects/tencent-tdesign-vue-next-starter)