vue skeleton mvp

VueJs, Vuetify, Vue Router and Vuex skeleton MVP written on JavaScript using async/await built to work with API REST skeleton:


VueJS Vuetify Vue Router Vuex - Basic Project Skeleton

Software License
npm downloads
Codacy Badge

Getting started

This is a basic VueJs, Vuetify, Vue Router and Vuex skeleton written on JavaScript using async/await. Great for building a starter web app.

This project is created to help other developers create a basic VueJS app in an easy way. This basic example shows how powerful and simple JavaScript and VueJS can be. Do you want to contribute? Pull requests are always welcome to show more features.

Buy me a coffee

Hi! I’m Daniel Avellaneda, I’m an open source enthusiast and devote my free time to building projects in this field.

I’m the creator and maintainer of node-express-mongodb-jwt-rest-api-skeleton and vue-skeleton-mvp

These projects are a “starter web app kit” for any developer who wants to build their own app without starting from scratch: API + Frontend

Both projects have been downloaded thousands of times by web developers around the world.

I’m doing my best to provide you a good experience when using my apps, so if you like what I’m doing and wish to say “thanks!”, please buy me a coffee ☕

Buy Me A Coffee

Feel free to send me a tweet, share this with others or make a pull request


  • Vuetify
  • Multiple environment ready (development, production).
  • Vue router
  • Vuex
  • i18n ready.
  • Google Analytics ready.
  • Ready to add to home screen in iOS and Chrome, checks if there´s an app update every 2 hours and reloads page (When a web app is added as stand alone there´s no reload button in the browser so new .js files from a new build never get loaded)
  • Landing page.
  • Protected home page.
  • Login.
  • Signup.
  • Forgot password.
  • Account verification.
  • User profile.
  • Users admin area with CRUD operations.
  • Cities admin area with CRUD operations.
  • Testing with Cypress and mocha/chai.
  • NPM script for keeping good source code formatting using prettier and ESLint.
  • Use of ESLint for good coding practices.
  • Use of prettier for beautiful format.
  • Ability to refresh token
  • JWT Tokens, make requests with a token after login with Authorization header with value Bearer yourToken where yourToken is the signed and encrypted token given in the response from the login process.


A demo of this Frontend is located at:

Login credentials

email: [email protected]
password: 12345

IMPORTANT: Database resets every 30 mins like “12:00am, 12:30am, 1:00am” and so on. So anything you do will be lost after a short time.

Demo is also linked to a Node.js express.js MongoDB JWT REST API project that shows how this frontend can be integrated to an API.
Repo is here:
Running demo is here:

How to install

Using Git (recommended)

  1. Clone the project from github. Change “myproject” to your project name.
git clone ./myproject

Using manual download ZIP

  1. Download repository
  2. Uncompress to your desired directory

Install npm dependencies after installing (Git or manual download)

cd myproject
npm install
npm update


This project uses Vue Router HTML5 History Mode, this means when you are in development mode you can hit Cmd+R (mac) or F5 (Windows) to reload the page and it will work, but when the project is built you will have problems, so will need to do a small change in your web server to make that work. Please read the official Vue Router documentation here:

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Run your tests

npm run test

Lints and fixes files

npm run lint

Formatting markdown files

npm run remark

Run your end-to-end tests

npm run test:e2e

Run your unit tests

npm run test:unit

Customize configuration

See Configuration Reference.

Bugs or improvements

Feel free to report any bugs or improvements. Pull requests are always welcome.


This project is open-sourced software licensed under the MIT License. See the LICENSE file for more information.