The Vue.js Framework
Branch: dev
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci chore: use puppeteer-core (#4929) Feb 3, 2019
.github Update Jan 24, 2019
benchmarks refactor: use PascalCase for components names (#4396) Nov 24, 2018
distributions feat(vue-app): universal fetch (#5028) Feb 14, 2019
examples chore(examples): fix links to vue-meta repo (#5018) Feb 12, 2019
packages chore(deps): update all non-major dependencies (#5038) Feb 15, 2019
scripts fix: improve nuxt version number when running from git (#4946) Feb 4, 2019
test Merge remote-tracking branch 'origin/2.x' into dev Feb 15, 2019
.all-contributorsrc chore: change profile line for kevinmarrec [skip ci] Jan 24, 2019
.editorconfig Add editorconfig Dec 15, 2016
.eslintignore refactor core into sub-packages (#4202) Oct 30, 2018
.eslintrc.js feat(server): timing option for `Server-Timing` header (#4800) Jan 19, 2019
.gitignore feat: upgrade to jest 24 (#4868) Feb 12, 2019
.npmrc fix(ci): use instead of Sep 2, 2018
.yarnrc chore: upgrade dependecies Sep 13, 2018 v2.4.3 Feb 6, 2019 Create Oct 20, 2017 doc: add Jan 3, 2019
LICENSE chore: update core team info (#3950) Sep 24, 2018 chore: change browserstack image Feb 14, 2019 chore: add release plan [skip ci] (#4853) Jan 28, 2019
azure-pipelines.yml feat: upgrade to jest 24 (#4868) Feb 12, 2019
babel.config.js fix(tests): make assets in test consistent with build Nov 14, 2018
jest.config.js feat: upgrade to jest 24 (#4868) Feb 12, 2019
lerna.json v2.4.3 Feb 6, 2019
package.json chore(deps): update request-promise-native Feb 15, 2019
renovate.json chore(renovate): ignore thread-loader Dec 19, 2018
yarn.lock chore(deps): update all non-major dependencies (#5038) Feb 15, 2019

Build Status Azure Build Status  Coverage Status Downloads Version License Discord

Support us

Hire Nuxt

Vue.js Meta Framework to create complex, fast & universal web applications quickly.



  • Automatic transpilation and bundling (with webpack and babel)
  • Hot code reloading
  • Server-side rendering OR Single Page App OR Static Generated, you choose 🔥
  • Static file serving. ./static/ is mapped to /
  • Configurable with a nuxt.config.js file
  • Custom layouts with the layouts/ directory
  • Middleware
  • Code splitting for every pages/
  • Loading just the critical CSS (page-level)

Learn more at

Consulting from the Nuxt team

Get help with that tough bug or make sure your Nuxt app is ready to deploy. For $250 an hour, get technical support, advice, code reviews, and development from the Nuxt core team: Hire Nuxt on Otechie

Professional support with TideLift

Professionally supported Nuxt.js is now available!

Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional grade assurances from the experts who know it best, while seamlessly integrating with existing tools.

Get supported Nuxt with the Tidelift Subscription.


Become a partner and get your logo on our README on GitHub and every page of website with a link to your site. [Become a partner]


Become a sponsor and get your logo on our README on GitHub with a link to your site. [Become a sponsor]


Support us with a monthly donation and help us continue our activities. [Become a backer]

Getting started

$ npx create-nuxt-app <project-name>

It's as simple as that!


👉 We recommend to start directly with our cli create-nuxt-app for the latest updates.

Or you can start by using one of our starter templates:

  • starter: Basic Nuxt.js project template
  • express: Nuxt.js + Express
  • koa: Nuxt.js + Koa
  • adonuxt: Nuxt.js + AdonisJS
  • micro: Nuxt.js + Micro
  • nuxtent: Nuxt.js + Nuxtent module for content heavy sites

Using nuxt.js programmatically

const { Nuxt, Builder } = require('nuxt')

// Import and set nuxt.js options
let config = require('./nuxt.config.js') = (process.env.NODE_ENV !== 'production')

let nuxt = new Nuxt(config)

// Start build process (only in development)
if ( {
  new Builder(nuxt).build()

// You can use nuxt.render(req, res) or nuxt.renderRoute(route, context)

Learn more:

Using nuxt.js as a middleware

You might want to use your own server with your configurations, your API and everything awesome your created with. That's why you can use nuxt.js as a middleware. It's recommended to use it at the end of your middleware since it will handle the rendering of your web application and won't call next().


Learn more:

Render a specific route

This is mostly used for nuxt generate and test purposes but you might find another utility!

nuxt.renderRoute('/about', context)
.then(function ({ html, error }) {
  // You can check error to know if your app displayed the error page for this route
  // Useful to set the correct status code if an error appended:
  if (error) {
    return res.status(error.statusCode || 500).send(html)
.catch(function (error) {
  // And error appended while rendering the route

Learn more:


Please take a look at or directly in

Production deployment

To deploy, instead of running nuxt, you probably want to build ahead of time. Therefore, building and starting are separate commands:

nuxt build
nuxt start

For example, to deploy with now a package.json like follows is recommended:

  "name": "my-app",
  "dependencies": {
    "nuxt": "latest"
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start"

Then run now and enjoy!

Note: we recommend putting .nuxt in .npmignore or .gitignore.

Core team

Sébastien Chopin

📝 🐛 💻 🎨 📖 💬 👀 📢

Alexandre Chopin

🎨 📖 📋 📦 💬 📢

Pooya Parsa

🐛 💻 🔌 💬 👀 🔧

Clark Du

🐛 💻 💡 👀 ⚠️ 🔧

Alexander Lichter

💬 🐛 💻 💡 👀 ⚠️

Jonas Galvez

💬 🐛 💻 💡 👀 ⚠️

Dmitry Molotkov

💬 🐛 💻 🤔 👀

Kevin Marrec

💻 🤔 📦 👀


Thank you to all our contributors!


Please refer to our Contribution Guide

Cross-browser testing

Thanks to BrowserStack!



If you discover a security vulnerability regarding Nuxt.js, please send an e-mail to the team via! All security vulnerabilities will be promptly addressed.