myra / starter-kit
A production-ready Laravel + Inertia.js + Vue 3 admin dashboard with user management, roles & permissions, media manager, email system, backups, and more.
Package info
github.com/spideyrex/myra-starter-kit
Language:Vue
Type:project
pkg:composer/myra/starter-kit
Requires
- php: ^8.2
- bacon/bacon-qr-code: ^3.0
- inertiajs/inertia-laravel: ^2.0
- kreait/laravel-firebase: ^7.0
- laravel/framework: ^12.0
- laravel/sanctum: ^4.0
- laravel/tinker: ^2.10.1
- myra/framework: ^1.0
- pragmarx/google2fa-laravel: ^2.3
- spatie/laravel-activitylog: ^4.12
- spatie/laravel-backup: ^9.0
- spatie/laravel-health: ^1.38
- spatie/laravel-medialibrary: ^11.21
- spatie/laravel-permission: ^7.2
- spatie/laravel-settings: ^3.3
- tightenco/ziggy: ^2.0
Requires (Dev)
- fakerphp/faker: ^1.23
- laravel/breeze: ^2.3
- laravel/pail: ^1.2.2
- laravel/pint: ^1.24
- laravel/sail: ^1.41
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- phpunit/phpunit: ^11.5.3
This package is auto-updated.
Last update: 2026-06-08 09:07:51 UTC
README
A production-ready Laravel 12 + Inertia.js + Vue 3 admin dashboard starter kit with a Filament-style code generator, role-based access control, per-user data isolation, a built-in CMS, an AI writing assistant, and 55+ UI components โ so you can ship admin panels with very little hand-written code.
Table of Contents
- Highlights
- Screenshots
- Scaffolding CLI
- Security & Access Control
- Features
- Tech Stack
- Requirements
- Installation
- Default Roles
- AI Assistant
- Internationalization
- Theme System
- Project Structure
- Key URLs
- Documentation
- License
Highlights
- ๐ ๏ธ Filament-style generators โ scaffold pages, full CRUD resources, or pages cloned from any of 18 feature demos, with routes, sidebar nav, and permissions auto-wired.
- ๐ Shield RBAC โ convention-based
{module}.{ability}permissions synced from config, with a super-admin bypass and an editable permission matrix. - ๐ค Per-user data isolation โ non-super-admins see only their own records; super-admins see everything.
- ๐ CMS โ articles, pages, and categories with a Tiptap editor, server-side HTML sanitization, draft/publish workflow, and public blog.
- ๐ค AI assistant โ bring-your-own-key writing assistant (OpenAI, Anthropic, OpenRouter, or self-hosted Ollama) streamed into the rich text editor.
- ๐งฑ Schema-driven forms & tables โ declarative builders with 20+ field types, inline editing, filters, grouping, and reordering.
- ๐ i18n, ๐จ 10 theme presets + dark mode, ๐ in-app + Firebase push notifications, and two-factor auth enforced after login.
Screenshots
| Dashboard (light) | Dashboard (dark) |
|---|---|
![]() |
![]() |
| User management | Roles & permission matrix |
|---|---|
![]() |
![]() |
| Articles (CMS) | Media manager |
|---|---|
![]() |
![]() |
| Appearance / theme settings | AI settings |
|---|---|
![]() |
![]() |
| Security (2FA & sessions) | Public homepage |
|---|---|
![]() |
![]() |
| Feature demos | Form builder demo |
|---|---|
![]() |
![]() |
50+ full screenshots (every module + all 18 demos) live in
public/docs/screenshots/and the bundled documentation.
Scaffolding CLI
Generate admin modules from the terminal โ routes, sidebar nav, and Spatie permissions are wired automatically (idempotent markers; pass --print to emit snippets instead of editing files).
# Single page (controller + Vue page) + view permission + route + nav php artisan make:myra-page Analytics # Full CRUD resource (controller, service, 3 Vue pages) + 4 permissions + 6 routes php artisan make:myra-resource Product --model # Clone any Feature Demo into a runnable page โ e.g. a Student page from the form builder php artisan make:myra-component Student form-builder
Component keywords (clone the matching demo): form-builder, rich-text-editor, repeater-field, conditional-fields, wizard, field-types, global-search, data-table, bulk-actions, advanced-filters, inline-editing, grouping, import-export, action-modals, soft-deletes, infolist, relation-manager, widgets, reordering.
Newly generated permissions appear in the Roles matrix immediately, so a super-admin can grant a new page to any role with one click.
Other commands:
php artisan app:install # migrations, seeders, shield:generate, interactive admin php artisan shield:generate # sync {module}.{ability} permissions from config/shield.php php artisan content:sanitize # backfill-sanitize existing stored HTML (--dry-run to preview)
Security & Access Control
- Two-factor authentication enforced after login โ 2FA users must pass the TOTP/recovery challenge before reaching any protected route (middleware-gated, throttled).
- Account state enforcement โ suspended/pending users cannot log in and are logged out mid-session.
- Shield RBAC โ permissions declared in
config/shield.php; super-admin bypasses all checks viaGate::before. - Role assignment guards โ only super-admins can assign
admin/super-admin; disabled roles are unassignable; the same rules apply to CSV import. - Role protections โ super-admins/admins are hidden from lower roles, admins can't manage other admins, and roles have super-admin-controlled
active/visibletoggles. - Per-user data isolation โ
OwnedByUserglobal scope on content models; media scoped to the uploader; public pages explicitly exempt. - Hardening โ server-side HTML sanitization (defense-in-depth with client DOMPurify), SVG uploads blocked, CSV formula-injection escaping, whitelisted sort columns + capped pagination, Content-Security-Policy + HSTS in production, and a production-safe seeder.
- Editable login tagline + server-enforced sign-up toggle.
Features
Core
- User Management โ CRUD, soft deletes, status management, role assignment, impersonation, bulk actions, CSV export
- Roles & Permissions โ Spatie RBAC with permission matrix, role cloning, active/visible toggles, grouped permissions
- Dashboard โ stats, user-growth charts, activity feed, role/status breakdowns, configurable widgets
- Activity Log โ full audit trail with CSV export
- Media Manager โ uploads via Spatie Media Library, scoped per uploader
- System Health โ database, cache, disk, and environment checks
- Backups โ on-demand DB + file backups (Spatie Backup)
- API Tokens โ Laravel Sanctum token creation/revocation
Content
- Articles, Pages, Categories โ Tiptap rich text, featured images, SEO meta, draft โ published โ archived workflow, public blog at
/blog - Homepage Builder โ configurable hero, features, testimonials, pricing, CTA, navbar, and footer
Communication
- Email Templates โ database-driven with variable substitution + test sends
- Email Log โ audit trail with export
- Push Notifications โ Firebase Cloud Messaging (web push)
- In-App Notifications โ real-time bell with read/unread tracking and per-user preferences
Developer Experience
- Scaffolding CLI, Command Palette (
Cmd/Ctrl+K), 20+ interactive feature demos, full TypeScript coverage, XLSX/CSV export, image editor, and schema-driven form/table/infolist/widget builders
Tech Stack
| Layer | Technology |
|---|---|
| Backend | Laravel 12, PHP 8.4 |
| Frontend | Vue 3.5 (TypeScript), Inertia.js 2 |
| Styling | Tailwind CSS 4.2 (oklch) |
| UI | shadcn-vue, Reka UI, Lucide icons |
| Tables | TanStack Vue Table |
| Rich Text | Tiptap |
| Charts | Chart.js via vue-chartjs |
| Maps | MapLibre GL (shadcn-vue wrappers) |
| Forms | Vee-Validate + Zod |
| Auth / RBAC | Sanctum, Google2FA, Spatie Permission |
| Media / Settings / Backups / Health / Activity | Spatie packages |
| AI | OpenAI ยท Anthropic ยท OpenRouter ยท Ollama |
| Push / Real-time | Firebase Cloud Messaging (Kreait), Laravel Echo + Pusher |
| i18n | vue-i18n (en, ms, zh) |
| Build | Vite 7 |
Requirements
- PHP 8.4+
- Node.js 18+
- MySQL / PostgreSQL / SQLite
- Composer 2+
Installation
Clone the repository and install dependencies โ everything needed is committed, so it installs with no private access or tokens:
# 1. Get the code git clone https://github.com/spideyrex/myra-starter-kit.git my-app cd my-app # 2. PHP + JS dependencies composer install npm install # 3. Environment cp .env.example .env php artisan key:generate # 4. Configure your database in .env (MySQL/PostgreSQL/SQLite), then run setup # (migrations + seeders + shield:generate + interactive admin account) php artisan app:install # 5. Run it (Laravel server + Vite dev server + queue worker + log viewer) composer dev
Visit http://localhost:8000 and sign in with the admin account you created in step 4.
Quickest start (SQLite, zero DB config): set
DB_CONNECTION=sqlitein.env, runtouch database/database.sqlite, thenphp artisan app:install.
For production, build assets instead of composer dev: npm run build, and set APP_ENV=production, APP_DEBUG=false, SESSION_ENCRYPT=true, SESSION_SECURE_COOKIE=true in .env.
Default Roles
The seeder creates five roles:
| Role | Access |
|---|---|
| super-admin | Full access (bypasses all checks via Gate::before) |
| admin | All permissions |
| manager | Users, content, email, media, notifications (no system settings) |
| editor | Content + media (create/edit) |
| viewer | Read-only |
44 permissions across 17 modules are grouped by prefix (users, roles, pages, articles, โฆ) in the permission matrix. Generated modules add their own automatically.
AI Assistant
Configure a provider under Settings โ AI (master toggle, provider, API key, model, base URL, temperature, max tokens):
| Provider | Default model | Notes |
|---|---|---|
| OpenAI (default) | gpt-4o-mini |
custom base URL supported |
| Anthropic | claude-sonnet-4-5 |
|
| OpenRouter | openai/gpt-4o-mini |
any listed model |
| Ollama | llama3.1 |
self-hosted, no key |
The rich text editor gains a Sparkles menu: generate, improve, fix grammar, shorten, lengthen, summarize, and change tone โ streamed via Server-Sent Events.
Internationalization
vue-i18n with lazy-loaded locales (en, ms, zh) and a header language switcher. Add a locale by dropping a JSON file in resources/js/i18n/locales/ and registering it in resources/js/i18n/index.ts.
Theme System
10 shadcn color presets (Zinc, Slate, Stone, Red, Rose, Orange, Green, Blue, Violet, Yellow) selectable from Settings โ Appearance, plus custom sidebar colors, logo/favicon upload, dark mode, and per-mode oklch values applied at runtime across admin and public pages.
Project Structure
app/
โโโ Admin/Traits/ # SearchableQuery, ExportableQuery, HasSampleData
โโโ Console/Commands/ # app:install, shield:generate, content:sanitize, Myra/ generators
โโโ Http/
โ โโโ Controllers/Admin/ # admin controllers
โ โโโ Controllers/Auth/ # authentication
โ โโโ Middleware/ # Shield, 2FA, active-user, registration, security headers
โโโ Models/ # Eloquent models (+ Traits/OwnedByUser)
โโโ Services/ # business logic (incl. Services/Ai)
โโโ Settings/ # Spatie settings classes
โโโ Support/ # HtmlSanitizer, Csv
config/ # shield.php (RBAC map), myra.php (generator registry)
resources/js/
โโโ Pages/Admin/ # admin modules + Demo/ (18 feature demos)
โโโ Pages/{Auth,Public,Errors}/
โโโ components/ui/ # 55+ shadcn-vue components
โโโ composables/ # form/table/infolist/widget builders + helpers
โโโ i18n/locales/ # en, ms, zh
database/migrations ยท seeders
stubs/admin/ # generator templates
Key URLs
| URL | Description |
|---|---|
/ |
Public homepage |
/blog, /blog/{slug} |
Public articles |
/pages/{slug} |
Public static pages |
/login, /register |
Auth |
/dashboard |
Admin dashboard |
/admin/users, /admin/roles |
User & role management |
/admin/articles, /admin/pages, /admin/categories, /admin/media |
CMS & media |
/admin/settings |
General, SEO, Appearance, Social, Maintenance, Homepage, AI |
/admin/email-templates, /admin/email-logs, /admin/email-settings |
|
/admin/firebase-settings, /admin/notifications |
Push & notifications |
/admin/activity-logs, /admin/backups, /admin/system-health, /admin/api-tokens |
System |
/admin/demo |
Feature demos |
/docs |
Full documentation |
Documentation
Comprehensive docs ship with the project at public/docs/index.html (served at /docs): the form/table builders, every artisan command, RBAC/Shield, data isolation, role protections, the notification system, and all admin modules โ with screenshots throughout.
License
MIT License. See LICENSE for details.











