PHPackages                             larastash/vue - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. larastash/vue

ActiveProject[Framework](/categories/framework)

larastash/vue
=============

The skeleton application for the Laravel framework.

2.0.10(4w ago)07MITPHPPHP ^8.3

Since Apr 9Pushed 4w agoCompare

[ Source](https://github.com/larastash/vue)[ Packagist](https://packagist.org/packages/larastash/vue)[ RSS](/packages/larastash-vue/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (15)Versions (14)Used By (0)

Vue Starter Kit
===============

[](#vue-starter-kit)

A modern starter kit for building full-stack applications with **Laravel**, **Inertia.js**, and **Vue 3**.

Pre-configured with dark mode, flash toasts, state management, and a clean project structure — ready to build on top of.

Tech Stack
----------

[](#tech-stack)

LayerTechnology**Backend**Laravel, PHP 8.3+**Frontend**Vue 3, JavaScript**Routing**Inertia.js v3**Styling**Tailwind CSS v4**State**Pinia + pinia-plugin-persistedstate**Toasts**vue-sonner**Icons**@lucide/vue**Date**dayjs (Russian locale)Features
--------

[](#features)

- **Dark Mode** — light / dark / system with OS-level listener, persisted in localStorage
- **Flash Toasts** — Laravel `session('flash')` messages automatically shown as toasts
- **Confirm Dialog** — programmatic `await confirm()` pattern via Promise
- **Auth Helpers** — `useUser()` composable with roles, permissions, `can()`/`cannot()`, `is()`/`isNot()`
- **Auth Components** — `` and `` render-slot components
- **Scope Component** — inline reactive state without a store
- **Utility Helpers** — `plural()`, `truncate()`, `formatNumber()`, `formatCurrency()`, `formatDate()`, `copyToClipboard()`, `dataGet()`, `uid()`, `sleep()`
- **Pinia Persistence** — app and theme stores persisted out of the box
- **CSS Architecture** — split into `theme.css`, `base.css`, `components.css`, `utilities.css`

Requirements
------------

[](#requirements)

- PHP 8.3+
- Composer
- Node.js 20+
- npm

Installation
------------

[](#installation)

```
# Clone the repository
git clone https://github.com/larastash/vue.git my-app
cd my-app

# Install PHP dependencies
composer install

# Install Node dependencies
npm install

# Configure environment
cp .env.example .env
php artisan key:generate

# Run database migrations
php artisan migrate

# Start development servers
composer run dev
```

> The `VITE_APP_NAME` variable in `.env` controls the page ``.

Project Structure
-----------------

[](#project-structure)

```
resources/js/
├── app.js                    # Entry point: Inertia, Pinia, dayjs setup
├── components/
│   ├── Scope.vue             # Inline reactive state via scoped slot
│   ├── Toaster.vue           # Pre-styled vue-sonner toaster
│   └── auth/
│       ├── Authenticated.vue # Renders slot only for authenticated users
│       └── Guest.vue         # Renders slot only for guests
├── composables/
│   ├── useApp.js             # Access to the app store
│   ├── useConfirm.js         # Programmatic confirm dialog (Promise-based)
│   ├── useFlash.js           # Flash messages + auto-toast watcher
│   ├── usePageProps.js       # Access to Inertia page props
│   ├── useTheme.js           # Theme toggle (light/dark/system cycle)
│   └── useUser.js            # Current user, roles, permissions, guards
├── layouts/
│   ├── Application.vue       # Main app layout (with Toaster)
│   └── Guest.vue             # Guest layout (with Toaster)
├── lib/
│   ├── helpers.js            # Utility functions (plural, truncate, format...)
│   └── utils.js              # cn() — Tailwind class merger
├── pages/
│   └── Welcome.vue           # Demo page with theme toggle & Scope example
└── stores/
    ├── appStore.js           # Global app state (extend as needed)
    └── themeStore.js         # Theme state with system preference listener

```

Composables
-----------

[](#composables)

### `useUser()`

[](#useuser)

Access the authenticated user from Inertia shared props. Returns a `reactive` object — always access properties through the object, do not destructure.

```
const user = useUser();

// user.data        — raw user object (or null)
// user.isAuthenticated
// user.can('edit-posts')
```

PropertyDescription`data`Current user object (or `null`)`id`User ID`isAuthenticated`Whether the user is logged in`isGuest`Whether the user is a guest`isEmailVerified`Whether the email is verified`initials(length?)`User name initials`roles`User roles array`permissions`User permissions array`hasRole(...roles)`Has any of the given roles`hasAnyRole(...roles)`Has any of the given roles`hasAllRoles(...roles)`Has all of the given roles`can(permission)`Has the permission`cannot(permission)`Does not have the permission`is(otherUser)`Same user by ID`isNot(otherUser)`Different user by ID`get(path, default?)`Dot-notation access to user fields`has(path)`Check existence via dot-notation### `useTheme()`

[](#usetheme)

Cycle through light → dark → system themes.

```
const { currentTheme, isDark, toggleTheme, setTheme } = useTheme();
```

### `useConfirm()`

[](#useconfirm)

Promise-based confirm dialog.

```
const { confirm } = useConfirm();

const ok = await confirm({
  title: 'Delete record?',
  message: 'This action cannot be undone.',
  variant: 'danger',
});

if (ok) {
  // proceed
}
```

### `useFlash()` / `useFlashToasts()`

[](#useflash--useflashtoasts)

Access Laravel flash messages. Call `useFlashToasts()` once in your layout to auto-show toasts.

```
// In a layout:
useFlashToasts();

// In a component:
const { has, get, flash } = useFlash();
if (has('success')) console.log(get('success'));
```

Laravel side:

```
return back()->with('flash', ['success' => 'Saved!']);
```

### `usePageProps()`

[](#usepageprops)

Access to Inertia page props.

```
const { prop } = usePageProps();
const appName = prop('appName', 'Laravel');
```

Components
----------

[](#components)

### ``

[](#scope)

Inline reactive state without creating a store or ref in the parent.

```

  {{ data.count }}

```

### `` / ``

[](#authenticated--guest)

Conditional rendering based on auth state. Slot props are the full `useUser()` reactive object.

```

  Hello, {{ data.name }}

  Please log in

```

CSS Architecture
----------------

[](#css-architecture)

Styles are split into focused files imported in `resources/css/app.css`:

FilePurpose`theme.css`Theme variables and custom animations`base.css`Global base styles (body, scrollbar, focus resets)`components.css`Component-level styles (NProgress bar)`utilities.css`Custom Tailwind utilities (`scrollbar-none`)PHP Helpers
-----------

[](#php-helpers)

Global helper functions available server-side (via `app/helpers.php`):

- `user($guard?)` — get the authenticated user
- `plural($n, $forms, $includeNumber)` — Russian pluralization

License
-------

[](#license)

Open-source under the [MIT license](https://opensource.org/licenses/MIT).

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance94

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

13

Last Release

29d ago

Major Versions

1.0.1 → 2.0.02026-05-06

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/19103498?v=4)[chipslays](/maintainers/chipslays)[@chipslays](https://github.com/chipslays)

---

Top Contributors

[![chipslays](https://avatars.githubusercontent.com/u/19103498?v=4)](https://github.com/chipslays "chipslays (21 commits)")

---

Tags

frameworklaravel

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/larastash-vue/health.svg)

```
[![Health](https://phpackages.com/badges/larastash-vue/health.svg)](https://phpackages.com/packages/larastash-vue)
```

###  Alternatives

[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[unopim/unopim

UnoPim Laravel PIM

10.1k2.2k](/packages/unopim-unopim)[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

3861.7k](/packages/codewithdennis-larament)[ercogx/laravel-filament-starter-kit

This is a Filament v5 Starter Kit for Laravel 13, designed to accelerate the development of Filament-powered applications.

441.7k](/packages/ercogx-laravel-filament-starter-kit)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
