Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A beginner-friendly headless Drupal 8 starter with Nuxt.js and JSON API, consuming Contenta CMS to build SEO-friendly Vue.js sites.

Free Bootstrap 4 design system with over 100 components, pre-built pages, and a full UI kit for faster web projects.
Contenta Vue Nuxt is a boilerplate starter that pairs a headless Drupal 8 backend with a Nuxt.js front end, using the JSON API module to build an SEO-friendly Vue.js site with minimal setup.
Contenta Vue Nuxt is a Nuxt.js application that consumes the Contenta CMS public API to display a fictional recipes site. It is built for beginners in headless Drupal, keeping the barrier to entry low by avoiding over-engineered architecture. The project runs on Node 10.x and npm 5 or higher, and it provides both a development server with hot reload and a production build pipeline. It is a community example, currently looking for a new maintainer.
lib directory, which are called from asyncData() on pages.pages, components, layouts, and lib; pages are automatically mapped to URLs (for example, pages/recipes.vue becomes /recipes).test/unit directory contains tests that you can run with npm test.page.tpl.php templates.asyncData() within a small, real project.npm install and npm run dev, and the Nuxt app starts on localhost:3000 consuming Contenta's public API.pages and lib.lib functions at your own Drupal 8 JSON API endpoints.The code is split across pages, components, layouts, and lib. Pages are Nuxt components that trigger SSR and are reachable by their file path; asyncData() loads data from the Contenta API before rendering. Layouts act as wrapper templates around pages, and lib holds the business logic and API-fetching functions that can be called either from components or the Vuex store.
You need Node 10.x and npm 5 or higher. The installation commands are npm install for dependencies, npm run dev to serve with hot reload at localhost:3000, and npm run build followed by npm run start for production.
The current maintainer says they are looking for a new maintainer because their interests changed and they no longer work with Contenta. The repository remains available for learning and for anyone who wants to adopt it.
Edit the dev script in package.json to include a PORT environment variable, for example set PORT=5000 before running the Nuxt command.
