VuiAdmin docs

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 dev

The dev server starts on http://localhost:3000.

Scripts

ScriptWhat it does
npm run devVite dev server on port 3000
npm run buildStatic build into dist/, one HTML file per route
npm run previewServe the built dist/ locally
npm run check-typesvue-tsc --noEmit
npm testRoute 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.

Next

On this page