A starter kit that integrates Laravel with Vue CLI, Inertia.js, TailwindCSS and Vuetify

Overview

Laravel Viltify

Total Downloads Latest Stable Version License

Laravel Viltify

Laravel Viltify is a heavily opinionated Laravel starter kit. It's intent is to seamlessly integrate Vue, Inertia.js, Laravel, TailwindCSS and Vuetify, so you don't waste your time learning how to do it and focus on writing your application, leaving setup behind.

Requirements

  • Operating System: This package should work on MacOS and Linux. If you're using Windows, you're gonna need WSL.

  • Vue CLI: Under the hood, this package will call the Vue CLI tool. Make sure you have Vue CLI V4 installed before continuing. If you don't, don't worry. The installation is fairly simple.

Quick Start

HEADS UP: this package is meant to be used ONLY ON FRESH LARAVEL INSTALLATIONS.

# Create a new Laravel project
composer create-project laravel/laravel my-app

# Enter the project folder
cd my-app

# Install Laravel Viltify
composer require dalpizzol/laravel-viltify

# Create your base tables
php artisan migrate

# Run the installer
php artisan viltify:install

# Remove the package so you don't accidentally run it again in the future
composer remove dalpizzol/laravel-viltify

# Enter the resources folder
cd resources

# Lift the devserver
npm run serve

HEADS UP: By the default, the devserver will lift at port 8080.

Why would I use this instead of Laravel Breeze or Laravel Jetstream?

This package is actually heavily based on Laravel Breeze. A lot of code was simply ripped off that. But there's some advantages here:

Vue CLI instead of Laravel Mix

This package actually turns your resources folder into a Vue app generated by Vue CLI. This means that inside resources you can do things like vue add some-vue-cli-plugin which you can't when using Laravel Mix. Vue CLI is also much more stable than Laravel Mix and much more focused and battle tested for use with Vue, so you are probably going to save some time avoiding common issues related to Laravel Mix.

This also allows you to use Vue CLI's GUI inside resources, if that's your thing...

Vuetify's full power in your hands

While official Laravel starter kits delivers a dozen Vue components, they are fairly simple. Laravel Viltify comes with Vuetify UI component library already installed and configured so you can take advantage of 70+ highly customizable, responsive and beautiful components based on Google's Material Design.

The perfect Marriage between Vuetify and TailwindCSS

Laravel Viltify comes with Vuetify and TailwindCSS already configured so you can use both without worrying about class collisions. All you have to do is to prefix your tailwind classes with tw-.

Inertia.js conveniences

The v-link global component

Laravel Viltify offers a globally registered v-link component which is a Vuetify v-btn component wrapped by an Inertia.js Link component. This way you can use Inertia.js links everywhere without having to remember to include the Link component locally on every component and they can use every style available to v-btn components. Inertia's Link component is also registered globally.

This is an Inertia.js link">
<v-link :href="someUrl" color="success" rounded outlined x-large>This is an Inertia.js linkv-link>

Server driven toast notifications

It also ships with a server driven toast notification system specifically crafted to work nicely with Inertia.js. This means you can do things like this:

// Success message
return redirect()
  ->route('dashboard')
  ->toast('Laravel Viltify is awesome');

// Error message
return redirect()
  ->route('dashboard')
  ->toast('You didn\'t give Laravel Viltify a star. =(', 'error');

Easily create custom endpoints

If you need a separate build for an entirely different endpoint, for instance, and admin area, you can use the pages prop at resources/vue.config.js.

  pages: {
    ...page('main', 'app'),
    ...page('admin', 'app-admin')
  },
  // The following disables prefetch links generation for each endpoint
  chainWebpack: config => {
    config.plugins.delete('prefetch-main'),
    config.plugins.delete('prefetch-admin')
  }

Then, you need to instruct Inertia to use the app-admin.blade.php view when rendering an admin page.

return Inertia::setRootView('app-admin')
  ->render('admin/Dashboard');

Isolated client side environment settings

When using Laravel Mix, client side environment settings are put into MIX_ prefixed variables inside .env file. Here, since our resources folder is actually a Vue CLI generated app, you can leverage the pattern shipped by Vue CLI do deal with environment variables. Laravel Viltify comes out of the box with a resources/.env.local for the devserver and a resources/.env.production example file, so you can deal with every client side setting separated from Laravel settings.

Resonable defaults with production builds in mind

Code Splitting out of the box

Since we're dealing with SPAs, Laravel Viltify makes sure that code splitting takes place. All the files needed by any route are loaded on demand by default.

Material Design Icons JS SVG instead of WebFont

By default Vuetify comes configured to use @mdi/js instead of a regular WebFont, so it enforces that you only ever load the icons you really need. Learn more here.

License

This software is provided free of charge and without restriction under the MIT License

Comments
  • composer require error

    composer require error

    On a fresh installation of Laravel 9.1.0 (MacOS 12.2.1), I'm getting a composer error:

    `cd viltify

    🔋 15:36 in viltify/ › composer require dalpizzol/laravel-viltify

    Using version ^0.1.2 for dalpizzol/laravel-viltify ./composer.json has been updated Running composer update dalpizzol/laravel-viltify Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages.

    Problem 1 - Root composer.json requires dalpizzol/laravel-viltify ^0.1.2 -> satisfiable by dalpizzol/laravel-viltify[v0.1.2]. - dalpizzol/laravel-viltify v0.1.2 requires illuminate/filesystem ^8.42 -> found illuminate/filesystem[v8.42.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.

    You can also try re-running composer require with an explicit version constraint, e.g. "composer require dalpizzol/laravel-viltify:*" to figure out if any version is installable, or "composer require dalpizzol/laravel-viltify:^2.1" if you know which you need.

    Installation failed, reverting ./composer.json and ./composer.lock to their original content.`

    opened by thomasdeater 7
  • vue-github-button vue 3 issue

    vue-github-button vue 3 issue

    Hi @MtDalPizzol,

    First of all thanks for the great starter kit. appreciate all the hard work you did.

    I installed this starter kit as mentioned in the readme file. when I did npm run serve I got vue-github-button error. after investigation it was that vue-github-button for vue 2 is npm install vue-github-button@1 and not npm install vue-github-button cause the package is using vue 2.

    opened by aneesdev 2
  • Não consigo limpar e reorganizar a estrutura.

    Não consigo limpar e reorganizar a estrutura.

    Captura de Tela 2021-12-27 às 08 22 10

    Esse é o erro que retorna:

    There's already a package called "resources-tmp" registered. This command has had no effect. If this command was run in another folder with the same name, the other folder is still linked. Please run yarn unlink in the other folder if you want to register this folder.

    Isso ocorre quando tendo fazer "yarn link --fix"

    opened by luizmagao 2
  • Error TTY mode is not supported on Windows platform

    Error TTY mode is not supported on Windows platform

    Good morning!

    I'm trying to install following the steps above, but I'm getting the following error:

    | Symfony\Component\Process\Exception\RuntimeException | | --- | | TTY mode is not supported on Windows platform | | at vue3\vendor\symfony\process\Process.php:1061|

    image

    Greetings!

    opened by angelinchaustipy 1
  • broken generator (?)

    broken generator (?)

    php  @  8.01.11
    npm  @  8.19.2
    node @ 18.10.0
    

    🚀 Invoking generators... ERROR Error: Cannot find module '../presets/undefined' Require stack: - /tmp/l9viltify/resources-tmp/node_modules/vue-cli-plugin-vuetify/generator/index.js - /tmp/l9viltify/resources-tmp/package.json Error: Cannot find module '../presets/undefined' Require stack:

    • /tmp/l9viltify/resources-tmp/node_modules/vue-cli-plugin-vuetify/generator/index.js
    • /tmp/l9viltify/resources-tmp/package.json at Module._resolveFilename (node:internal/modules/cjs/loader:985:15) at Module._load (node:internal/modules/cjs/loader:833:27) at Module.require (node:internal/modules/cjs/loader:1051:19) at require (node:internal/modules/cjs/helpers:103:18) at module.exports (/tmp/l9viltify/resources-tmp/node_modules/vue-cli-plugin-vuetify/generator/index.js:15:10) at Generator.initPlugins (/usr/local/Cellar/vue-cli/5.0.8/libexec/lib/node_modules/@vue/cli/lib/Generator.js:180:13) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Generator.generate (/usr/local/Cellar/vue-cli/5.0.8/libexec/lib/node_modules/@vue/cli/lib/Generator.js:198:5) at async Creator.create (/usr/local/Cellar/vue-cli/5.0.8/libexec/lib/node_modules/@vue/cli/lib/Creator.js:209:5) at async create (/usr/local/Cellar/vue-cli/5.0.8/libexec/lib/node_modules/@vue/cli/lib/create.js:72:3) Couldn't create Vue CLI project.
    opened by xerc 1
  • Node v17.8.0: --openssl-legacy-provider is not allowed in NODE_OPTIONS

    Node v17.8.0: --openssl-legacy-provider is not allowed in NODE_OPTIONS

    I followed the advice from https://github.com/MtDalPizzol/laravel-viltify#troubleshooting for node v17.8.0

    ❯ node --version
    v17.8.0
    
    ~/Webprojects/local/php/laravel/l9-viltify/resources master*
    ❯ jq ".scripts" package.json
    {
      "serve": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve",
      "build": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build",
      "lint": "vue-cli-service lint"
    }
    
    ~/Webprojects/local/php/laravel/l9-viltify/resources master*
    ❯ npm run serve
    
    > [email protected] serve
    > NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve
    
    node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
    
    opened by kiryph 0
Releases(v0.2.0)
Owner
Matheus Dal'Pizzol
Matheus Dal'Pizzol
It's a dashboard theme/UI-Starter Kit with Laravel, Inertia and Vue (JetStream).

TailAdmin Inertia It's a dashboard theme/UI-Starter Kit with Laravel, Inertia and Vue (JetStream). Setup Directions npm install composer install Chang

Sinan AYDOĞAN 121 Dec 31, 2022
Laravel Starter Kit (Inertia-SSR - Vue3 - Bootstrap 5)

Laravel Starter Kit (Inertia-SSR - Vue3 - Bootstrap 5) Use this starter kit to develop with Laravel 9 setup InertiaJs with Server Side Rendering (SSR)

Sourav Kumar Tah 16 Nov 16, 2022
Laravel backend Inertia and Vue starter template

Inertia.js - Vue.js ve Laravel Starter Template Yunus Emre Altanay If you want to make a single page application using laravel infrastructure. This re

Yunus Emre Altanay 3 Oct 21, 2021
Laravel Starter With Laravel, Vite, Vue 2, Inertia.js, Ziggy

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Oskars Germovs 1 Oct 29, 2021
Laravel Starter With Laravel, Vite, Vue 2, Inertia.js, Ziggy, Typescript

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Oskars Germovs 1 Oct 29, 2021
Starter - Laravel, Vue, Inertia, Tailwind, Vite

Starter - Laravel, Vue, Inertia, Tailwind, Vite Laravel-vite preset Laravel 9 Vue 3 Inertia Tailwind Vite Including Sail (Docker). php 8.1 mysql 8.0 p

Anatoliy 6 Dec 28, 2022
A Laravel-Vue-Tailwind SAAS Starter Kit.

Super SAAS Template My name is Julien Nahum, I've founded multiple Software-As-A-Service companies. This repo is the base I'm using to create a new SA

Julien Nahum 16 Dec 23, 2022
A Laravel-Vue SPA starter kit.

Laravel-Vue SPA A Laravel-Vue SPA starter kit. Features Laravel 8 Vue + VueRouter + Vuex + VueI18n + ESlint Pages with dynamic import and custom layou

Cretu Eusebiu 3k Jan 6, 2023
Laravel framework with integrated NuxtJs support, preconfigured for eslint, jest and vuetify.

Laravel framework with integrated NuxtJs support, preconfigured for eslint, jest and vuetify.

M² software development 53 Oct 24, 2022
A PHP notebook application build with PHP Symfony as back-end API and VueJS/Vuetify front-end.

PHPersonal Notes ?? - BETA RELEASE PHPersonal notes is an application to store your personal notes! PHPersonalnotes is build with Symfony/VueJS/Vuetif

Robert van Lienden 3 Feb 22, 2022
Building Student Management CRUD with LARAVEL VUE and INERTIA

Building Student Management CRUD with LARAVEL VUE and INERTIA. the amazing thing about I got by combining these technologies is we ca build single page application or SPA .

Tauseed 3 Apr 4, 2022
Clone do instagram utilizando Laravel, Vue, Inertia, Tailwind

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Bortolin Furlanetto 1 Jan 3, 2022
React laravel starter kit with tailwind css and vite js(laravel 9)

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Jerald Tonmoy Dias 2 Dec 23, 2022
A Laravel Starter Kit for Laravel. Built with Laravel 8.

Laravel Get Started Project Laravel Get Started Project is a basic crud app built with laravel 8. In this app a basic product crud created. Features i

Nazmul Hasan Robin 8 Nov 24, 2022
This is a laravel Auth Starter Kit, with full user/admin authentication with both session and token auth

About Auth Starter It's a Laravel 8 authentication markdown that will help you to understand and grasp all the underlying functionality for Session an

Sami Alateya 10 Aug 3, 2022
lara setups is a new star kit for installing latest and greetest version of vue js and bootstrap

Lara setups Introduction lara setups helps you to install latest bootstrap and vue.js version on your laravel project laravel team no longer supports

Mohammad khazaee 11 Jul 12, 2022
Laravel API starter Kit will provide you with the tools for making API's that everyone will love

Laravel API Starter Kit Laravel API starter Kit will provide you with the tools for making API's that everyone will love, API Authentication is alread

Jose Luis Fonseca 400 Dec 29, 2022
Laravel + Livewire + Bootstrap 5 UI starter kit.

bastinald/ui Laravel + Livewire + Bootstrap 5 UI starter kit. Requirements Laravel 8 NPM Features Bootstrap 5 pre-configured Textarea autosize Floatin

null 83 Dec 26, 2022
a free, open-source dashboard panel starter kit for Laravel

QAdmin a free, open-source dashboard panel starter kit for Laravel. Just intall and everything is ready Tech Stack Client: ruangAdmin, Bootstrap, Jque

null 30 Oct 11, 2022