Vue’s recommended starting point for a new Vite-powered Vue project is npm create vue@latest. It runs create-vue, the official Vue scaffolding tool, and lets you choose optional features such as TypeScript, Vue Router, Pinia, testing, and code-quality tools. A custom starter is worth maintaining when it captures choices you repeatedly make—not when it adds every available integration by default.
Start with Vue’s official scaffold
For a new Vue 3 application, Vue’s Quick Start recommends npm create vue@latest. The command installs and runs create-vue, which generates a Vite-powered project built around Vue Single-File Components. The prompts let you select the features that fit your project. Vue Quick Start and the create-vue repository document the current route.
As an Amazon Associate I earn from qualifying purchases.
Use the @latest suffix so npm resolves the current scaffold package rather than a cached older version; the repository also documents @legacy for choosing the legacy package. If you want a minimal starting point, create-vue supports --bare. Its command-line options also allow some choices, such as TypeScript and Vue Router, to be specified directly.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Choose the starting route that matches your preferences
| Starting route | What it provides | What you take on |
|---|---|---|
create-vue |
A Vue-specific scaffold with prompts for Vue-related integrations, built on Vite. | You choose which optional features to include and maintain the resulting dependencies. |
| Vite’s Vue template | A basic Vite template for Vue; Vite also offers a Vue TypeScript template. | You add and configure Vue-related integrations yourself. |
Both are documented ways to begin; the choice is about how much Vue-specific setup you want the scaffold to offer and how much configuration you prefer to own. Vite lists its available templates in the getting-started guide. Neither route is established as universally faster or better.
#1 Best Overall
Decide what belongs in a reusable starter
Before saving a scaffold as your personal baseline, identify which choices recur across your projects. Each addition brings configuration and a dependency to understand and maintain. The official prompts make these options available; they do not mean every application needs them.
TypeScript
Vue supports TypeScript, and create-vue can generate a TypeScript-ready project. But Vite’s dev server and bundler transpile TypeScript without checking types. Add a separate type-checking step to your editor or project scripts; a successful dev-server run alone does not establish that the code is type-error-free. Vue explains the distinction in its TypeScript overview.
Vue Router
Add Vue Router when the app needs URL-driven pages or single-page-application navigation. A small app centered on one view may not need a router at the outset. The scaffold offers it as an option, and Vue’s router guide covers installation and use. For production, the router installation guide advises pinning versions.
Pinia and shared state
Pinia is another create-vue option, but the availability of a global store is not a reason by itself to add one. Include it when your projects repeatedly need shared state managed across components; the official setup guidance does not establish a universal threshold for when that becomes necessary. If you include it, keep its purpose clear to anyone starting from your template.
Unit tests
For a Vite-based project generated by create-vue, Vue’s testing guide favors Vitest because it can use Vite’s configuration and transform pipeline. An existing Jest test suite may make Jest more appropriate during a migration. Choose a test runner based on the project’s testing needs and existing setup, rather than treating a scaffold option as proof that tests are written or passing. See Vue’s testing guide.
End-to-end tests and linting
create-vue also offers end-to-end testing and code-quality choices. Include them in a personal starter if they are part of your recurring workflow, and make the actual configured commands understandable to the next project. Adding tooling does not itself test the application or establish that it is production-ready.
Turn the scaffold into a starter you can maintain
- Generate a baseline: Run
npm create vue@latestand answer the prompts for the features this project needs. - Keep the baseline focused: Include recurring choices, not integrations added merely because they are available.
- Make checks explicit: If using TypeScript, ensure type checking is part of your editor or scripts; if adding tests or linting, document and use the configured commands.
- Review dependencies: Understand what the starter installs and keep versions and configuration maintained as the project evolves.
- Reuse the result deliberately: Treat the scaffold as a starting point, then remove or add features according to each app’s requirements.
Where Vue CLI fits
Vue’s current guidance recommends create-vue for new projects rather than Vue CLI. Vue CLI is webpack-based, while create-vue generates a Vite-powered project that then uses Vite and its plugin ecosystem. Vue CLI remains relevant when understanding or migrating an existing project, but it is not the default recommendation for a new starter. See Vue’s CLI guide and the create-vue repository.
Recommended Free Tools
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




