Vue
Install the free VuiAdmin Vue admin dashboard template. Nineteen screens, MIT licensed.
The Vue admin dashboard template: nineteen screens, MIT licensed, and a live demo at vuejs.viliha.com you can click through before installing anything.
Prerequisites
Node.js 20 or later.
Install
git clone https://github.com/myviliha/free-vuejs-admin-dashboard.git
cd free-vuejs-admin-dashboard
npm install
npm run devThe dev server starts on http://localhost:3000.
Scripts
| Script | What it does |
|---|---|
npm run dev | Vite dev server on port 3000 |
npm run build | Static build into dist/, one HTML file per route |
npm run preview | Serve the built dist/ locally |
npm run check-types | vue-tsc --noEmit |
npm test | Route table, sidebar, screen mount and vendored package checks |
Real URLs, and about fifty lines of router
Addresses are /alerts, not #/alerts, and there is no vue-router dependency. src/router.ts is a
small amount of Composition API over history.pushState, with one delegated click listener so every
link in the app stays a plain <a href>. That means the middle mouse button, a held modifier and the
right-click menu all keep working, which a <RouterLink> wrapper has to reimplement.
FREE_ROUTES from @viliha/vui-core decides what counts as an address, so a path this app cannot
answer falls to the not-found screen rather than rendering an empty shell.
If your app needs nested routes, guards or lazy route-level chunks, swap in vue-router. Nineteen
flat routes did not justify the dependency here, and that is the only reason it is absent.
One HTML file per route
vite.config.ts writes alerts.html and alerts/index.html for every route, plus a 404.html. Both
spellings, because static hosts disagree about which one answers /alerts, and the pair costs a few
kilobytes of identical markup. The result is that a deep link is a file read rather than a host rewrite
rule, so this edition has the same hosting requirements as the React and HTML ones.