NuxtVueLaravelStarter

laravel-nuxt — Nuxt Starter Template

By cretueusebiu

A Laravel and Nuxt decoupled starter kit with built-in login, registration, email verification, password reset, and Socialite third-party login, switchable between SPA and SSR.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-01View source

What stands out

A quick read of the recorded project description.

01

Laravel provides the backend API, Nuxt serves as the frontend client, with both frontend and backend code in the same repository

02

Built-in login, registration, email verification, and password reset flows

03

Integrates Laravel Socialite with GitHub as an example third-party login

04

Frontend includes VueI18n, ESLint, Bootstrap 4, and Font Awesome 5

05

Can switch between SPA and SSR modes; SSR requires modifying configuration and environment variables

Template Details

This is a starter project template that uses Laravel as the backend API and Nuxt as the frontend client, suitable for web applications that need a Vue frontend paired with a Laravel backend. The repository contains both server-side and client-side code, with the frontend located in the client directory, where routes are manually maintained via Nuxt's router-module.

Functionally, the template already includes login, registration, email verification, and password reset flows, and integrates Laravel Socialite with GitHub as an example provider. The frontend uses VueI18n for internationalization, along with ESLint, Bootstrap 4, and Font Awesome 5. The project supports both SPA and SSR modes, defaulting to SPA; enabling SSR requires modifying nuxt.config.js and adjusting environment variables.

There are several clear limitations in usage: routes must be manually added in client/router.js; email verification requires the App\User model to implement the MustVerifyEmail contract; Socialite requires creating a GitHub application and configuring the client ID and secret. Production deployment requires an additional process management tool to keep the Node service running, with the README using pm2 as an example and providing an Nginx reverse proxy configuration example. The repository was last updated in 2021, and dependency versions are based on the manifest at that time.

NuxtVueLaravelStarter

Is it right for your project?

Use Cases

  • Starting a new project that requires a Vue frontend and Laravel backend
  • Wanting ready-made basic flows for login, registration, email verification, and password reset
  • Web applications that need to integrate third-party login such as GitHub
  • Nuxt projects that need to choose between SPA and SSR

Suitable For

  • Developers familiar with the Laravel and Vue ecosystems
  • Web application projects that require a decoupled frontend-backend structure
  • Projects that want to start from an existing authentication flow and continue development

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Create the project using composer create-project --prefer-dist cretueusebiu/laravel-nuxt

  2. 2

    Configure the database connection in .env; when installing via git clone or download, you also need to run php artisan key:generate and php artisan jwt:secret

  3. 3

    Run php artisan migrate to complete database migrations, and run npm install to install frontend dependencies

  4. 4

    During development, start php artisan serve and npm run dev separately, then visit http://localhost:3000

  5. 5

    To enable SSR, set ssr: true in client/nuxt.config.js and configure APP_URL and CLIENT_URL; in production, a process management tool is needed to keep the Node service running

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not imply that external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Uses router-module, so routes are not automatically generated and must be manually added in client/router.js.
  • Email verification is not enabled by default; it becomes available only after the App\User model implements the MustVerifyEmail contract.
  • Socialite third-party login requires creating a GitHub application yourself and configuring the callback URL, client ID, and secret.
  • Production requires an additional process management tool (such as pm2) to keep the Node service running persistently.
  • Runs as SPA by default; enabling SSR requires manually modifying nuxt.config.js and adjusting environment variables.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; the code's MIT license alone cannot be used to judge them.
  • External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

This project uses [router-module](https://github.com/nuxt-community/router-module), so you have to add the routes manually in `client/router.js`.

Original README

To enable email verification make sure that your `App\User` model implements the `Illuminate\Contracts\Auth\MustVerifyEmail` contract.

Original README

To enable the provider create a new GitHub application and use `https://example.com/api/oauth/github/callback` as the Authorization callback URL.

Original README

In production you need a process manager to keep the Node server alive forever:

Original README

Edit `client/nuxt.config.js` and set `ssr: true`

Original README
https://github.com/cretueusebiu/laravel-nuxt/blob/master/LICENSEhttps://github.com/cretueusebiu/laravel-nuxt/blob/master/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 77 / 100
Technologies
Nuxt · Vue · Laravel
Website type
Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2021-05-30
Screenshot last checked
2026-10-01

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Nuxt as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 4a3529d63b373d80c0f58ca8b85f39d062a0e60492cde009b25ada451d4838ea

2026-10-01T02:28:34.813Z

Source file / repository
# Laravel-Nuxt

<a href="https://github.com/cretueusebiu/laravel-nuxt/actions"><img src="https://github.com/cretueusebiu/laravel-nuxt/workflows/tests/badge.svg" alt="Build Status"></a>
<a href="https://packagist.org/packages/cretueusebiu/laravel-nuxt"><img src="https://poser.pugx.org/cretueusebiu/laravel-nuxt/d/total.svg" alt="Total Downloads"></a>
<a href="https://packagist.org/packages/cretueusebiu/laravel-nuxt"><img src="https://poser.pugx.org/cretueusebiu/laravel-nuxt/v/stable.svg" alt="Latest Stable Version"></a>

> A Laravel-Nuxt starter project template.

<p align="center">
<img src="https://i.imgur.com/NHFTsGt.png">
</p>

## Features

- Nuxt 2
- Laravel 8
- SPA or SSR
- Socialite integration
- VueI18n + ESlint + Bootstrap 4 + Font Awesome 5
- Login, register, email verification and password reset

## Installation

- `composer create-project --prefer-dist cretueusebiu/laravel-nuxt`
- Edit `.env` and set your database connection details 
- (When installed via git clone or download, run `php artisan key:generate` and `php artisan jwt:secret`)
- `php artisan migrate`
- `npm install`

## Usage

### Development

```bash
# start Laravel
php artisan serve

# start Nuxt
npm run dev
```

Access your application at `http://localhost:3000`.

### Production

```bash
npm run build
```

### Enable SSR

- Edit `client/nuxt.config.js` and set `ssr: true` 
- Edit `.env` to set `APP_URL=http://api.example.com` and `CLIENT_URL=http://example.com`
- Run `npm run build` and `npm run start`

#### Nginx Proxy

For Nginx you can add a proxy using the follwing location block:

```
server {
    location / {
        proxy_pass http://http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
```

#### Process Manager

In production you need a process manager to keep the Node server alive forever:

```bash
# install pm2 process manager
npm install -g pm2

# startup script
pm2 startup

# start process
pm2 start npm --name "laravel-nuxt" -- run start

# save process list
pm2 save

# list all processes
pm2 l
```

After each deploy you'll need to restart the process:

```bash
pm2 restart laravel-nuxt 
```

Make sure to read the [Nuxt docs](https://nuxtjs.org/).

## Socialite

This project comes with GitHub as an example for [Laravel Socialite](https://laravel.com/docs/5.8/socialite).

To enable the provider create a new GitHub application and use `https://example.com/api/oauth/github/callback` as the Authorization callback URL.

Edit `.env` and set `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` with the keys form your GitHub application.

For other providers you may need to set the appropriate keys in `config/services.php` and redirect url in `OAuthController.php`.

## Email Verification

To enable email verification make sure that your `App\User` model implements the `Illuminate\Contracts\Auth\MustVerifyEmail` contract.

## Notes

- This project uses [router-module](https://github.com/nuxt-community/router-module), so you have to add the routes manually in `client/router.js`.
- If you want to separate this in two projects (client and server api), move `package.json` into `client/` and remove config path option from the scripts section. Also make sure to add the env variables in `client/.env`.

## Changelog

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.