hubertalva / laravel-vermicelli-starter-kit
An opinionated Laravel starter kit for building modern Inertia and Vue applications.
Package info
github.com/HubertAlva/laravel-vermicelli-starter-kit
Language:Vue
Type:project
pkg:composer/hubertalva/laravel-vermicelli-starter-kit
Requires
- php: ^8.3
- inertiajs/inertia-laravel: ^3.0
- laravel/chisel: ^0.1.0
- laravel/fortify: ^1.37.2
- laravel/framework: ^13.17
- laravel/tinker: ^3.0
- laravel/wayfinder: ^0.1.14
- spatie/laravel-data: ^4.23
- spatie/laravel-db-snapshots: ^2.10
- spatie/laravel-medialibrary: ^11.23
- spatie/laravel-permission: ^8.3
- spatie/laravel-query-builder: ^7.3
- spatie/laravel-sluggable: ^4.0
- spatie/laravel-tags: ^4.12
- spatie/laravel-typescript-transformer: ^3.3
- symfony/http-client: ^8.1
- symfony/mailgun-mailer: ^8.1
Requires (Dev)
- fakerphp/faker: ^1.24
- larastan/larastan: ^3.9
- laravel/boost: ^2.2
- laravel/pail: ^1.2.5
- laravel/pao: ^1.0.6
- laravel/pint: ^1.27
- laravel/sail: ^1.53
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.9.3
- pestphp/pest: ^5.3
- pestphp/pest-plugin-laravel: ^5.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-24 02:23:13 UTC
README
A clean, opinionated Laravel starter kit built to speed up development and provide a solid foundation for real-world applications.
Built with Laravel, Inertia.js, and Vue, with a strong focus on developer experience and real-world structure.
Requirements
- PHP 8.3+
- Composer
- Node.js & NPM
- MySQL or SQLite
Installation Steps
1. Install the Laravel Installer (if not already installed)
composer global require laravel/installer
Make sure the Composer bin directory is in your system's PATH.
2. Create a New Laravel Project with Vermicelli Starter Kit
laravel new my-project --using=hubertalva/laravel-vermicelli-starter-kit
This command will:
- Create a new Laravel application
- Install the Vermicelli Starter Kit
- Set up all necessary dependencies
3. Navigate to Your Project
cd my-project
4. Configure Your Database
Edit the .env file and update the database connection details:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_username
DB_PASSWORD=your_database_password
5. Configure Domain and Admin Subdomain
Vermicelli is designed to work with a main domain and an admin subdomain.
Set your local domain in the .env file; the admin panel is served from admin.<domain>:
APP_URL=http://yourdomain.local
APP_DOMAIN, ADMIN_DOMAIN and SESSION_DOMAIN are derived from APP_URL and only need to be set to override them.
The session cookie is shared with the admin subdomain automatically, except on localhost, where browsers don't allow
it (you'll need to log in separately at admin.localhost).
Local development (recommended)
Add domain aliases to your system hosts file:
127.0.0.1 yourdomain.local
127.0.0.1 admin.yourdomain.local
If you are using Laravel Valet, Laragon, or Docker, configure the domain according to your environment instead of editing the hosts file manually.
Optional: Web Server Configuration
Depending on your local setup, you may need to ensure that both the main domain and the admin subdomain point to the
project’s public/ directory.
Both domains should resolve to:
/path/to/your-project/public
If one of the domains shows a 404 or loads the wrong site, this is usually the cause.
6. Start the Development Server
composer run dev
Your application will be available at:
Vermicelli uses subdomains for the admin panel by default. Configuring a local domain early helps ensure authentication, sessions, and cookies work correctly across subdomains.
What’s Included
Authentication & Authorization
- Laravel Fortify: login, registration, password reset, email verification, 2FA and passkeys
- Roles and permissions with
spatie/laravel-permission(adminrole seeded byPermissionRoleSeeder) - Admins are redirected to the admin panel after login
Admin Panel
- Served from the
admin.subdomain and protected by theadmin.viewpermission - Collapsible sidebar (
resources/js/lib/navLinks.ts) filtered by permission, breadcrumbs, theme switcher and user menu - Pages under
resources/js/pages/admin/getAdminLayoutautomatically - Example CRUD for users (roles, locked users) and posts (Markdown content with image uploads, thumbnail, tags, drafts, trash/restore)
- A test form showcasing every form component
Public Site
- Blog (published posts with pagination) and contact form (queued email to
MAIL_TO_ADDRESS)
Form & Table Components
resources/js/components/form: text, textarea, password, number, phone (mask), checkbox, switch, radio, select, combobox, tags, tags listbox, date, date-time, file, image, gallery and Markdown inputs, all with label/description/error support and precognitive validationresources/js/components/table/DataTable.vue: server-side paginated, searchable and filterable tables (TanStack Table), with row prefetching
Layouts
AppLayout: public site with header, footer and toasts (default for pages)UserLayout: authenticated user area (dashboard and settings)AdminLayout: admin panelAuthLayout: authentication pages
SEO Basics
Seocomponent for title, meta description and Open Graph tags
Packages
- Spatie: data, db-snapshots, medialibrary, permission, query-builder, sluggable, tags, typescript-transformer
- Mailgun mailer
- Frontend: TanStack Table, md-editor-v3, markdown-it, vue-imask, Tailwind Typography
Localization
- Spanish localization is included by default
Development Tools
php artisan snapshot:create/snapshot:loadfor database snapshotsphp artisan typescript:transformgeneratesresources/js/types/generated.d.tsfrom the Data classesphp artisan editor:cleanup-images(scheduled hourly) removes unused editor uploads- Local admin user (
admin@example.com/password) seeded withphp artisan db:seed
Purpose
This starter kit is meant to be a starting point, not a full framework.
It provides common building blocks so you can focus on building features instead of setting up the same things over and
over again.
License
The Laravel Vermicelli Starter Kit is open-sourced software licensed under the MIT license.