PHPackages                             myra/starter-kit - 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. [Admin Panels](/categories/admin)
4. /
5. myra/starter-kit

ActiveProject[Admin Panels](/categories/admin)

myra/starter-kit
================

A production-ready Laravel + Inertia.js + Vue 3 admin dashboard with user management, roles &amp; permissions, media manager, email system, backups, and more.

v2.0.0(2mo ago)08MITVuePHP ^8.2CI passing

Since Mar 3Pushed 2mo agoCompare

[ Source](https://github.com/spideyrex/myra-starter-kit)[ Packagist](https://packagist.org/packages/myra/starter-kit)[ Docs](https://github.com/spideyrex/myra-starter-kit)[ RSS](/packages/myra-starter-kit/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (67)Versions (4)Used By (0)

Myra Starter Kit
================

[](#myra-starter-kit)

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.

[![Version](https://camo.githubusercontent.com/f8beea826028036d44f3d3253b890723c068d03c9b7cbbcee25cabd5f5222538/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d322e302e302d363336366631)](https://camo.githubusercontent.com/f8beea826028036d44f3d3253b890723c068d03c9b7cbbcee25cabd5f5222538/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d322e302e302d363336366631)[![Tests](https://github.com/spideyrex/myra-starter-kit/actions/workflows/tests.yml/badge.svg)](https://github.com/spideyrex/myra-starter-kit/actions/workflows/tests.yml)[![Laravel](https://camo.githubusercontent.com/cefd0d247fb4898c829a8e41b76d9663721d33c7b486e081b00e91141ca83051/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322d4646324432303f6c6f676f3d6c61726176656c266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/cefd0d247fb4898c829a8e41b76d9663721d33c7b486e081b00e91141ca83051/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322d4646324432303f6c6f676f3d6c61726176656c266c6f676f436f6c6f723d7768697465)[![Vue](https://camo.githubusercontent.com/46dda7609bed30be7842c1300cd75330e2f5074b73bc9ab88acc275ae0aea3ee/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5675652d332e352d3446433038443f6c6f676f3d767565646f746a73266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/46dda7609bed30be7842c1300cd75330e2f5074b73bc9ab88acc275ae0aea3ee/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5675652d332e352d3446433038443f6c6f676f3d767565646f746a73266c6f676f436f6c6f723d7768697465)[![TypeScript](https://camo.githubusercontent.com/87eb18eb8c5eec761c47493170fcdfbb587410828d8704f80c9e965c221e0948/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d3331373843363f6c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/87eb18eb8c5eec761c47493170fcdfbb587410828d8704f80c9e965c221e0948/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d3331373843363f6c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465)[![Tailwind](https://camo.githubusercontent.com/9d14755f5e82e75ed4404e670cadf9190a05e7052958af457a6a0eb5bd4e7aae/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e645f4353532d342e322d3036423644343f6c6f676f3d7461696c77696e64637373266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/9d14755f5e82e75ed4404e670cadf9190a05e7052958af457a6a0eb5bd4e7aae/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e645f4353532d342e322d3036423644343f6c6f676f3d7461696c77696e64637373266c6f676f436f6c6f723d7768697465)[![License](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e)](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e)

 [![Myra dashboard](public/docs/screenshots/dashboard.png)](public/docs/screenshots/dashboard.png)

---

Table of Contents
-----------------

[](#table-of-contents)

- [Highlights](#highlights)
- [Screenshots](#screenshots)
- [Scaffolding CLI](#scaffolding-cli)
- [Security &amp; Access Control](#security--access-control)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Requirements](#requirements)
- [Installation](#installation)
- [Default Roles](#default-roles)
- [AI Assistant](#ai-assistant)
- [Internationalization](#internationalization)
- [Theme System](#theme-system)
- [Project Structure](#project-structure)
- [Key URLs](#key-urls)
- [Documentation](#documentation)
- [License](#license)

---

Highlights
----------

[](#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 &amp; 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
-----------

[](#screenshots)

Dashboard (light)Dashboard (dark)[![Dashboard](public/docs/screenshots/dashboard.png)](public/docs/screenshots/dashboard.png)[![Dashboard dark](public/docs/screenshots/dashboard-dark.png)](public/docs/screenshots/dashboard-dark.png)User managementRoles &amp; permission matrix[![Users](public/docs/screenshots/users.png)](public/docs/screenshots/users.png)[![Roles](public/docs/screenshots/roles.png)](public/docs/screenshots/roles.png)Articles (CMS)Media manager[![Articles](public/docs/screenshots/articles.png)](public/docs/screenshots/articles.png)[![Media](public/docs/screenshots/media.png)](public/docs/screenshots/media.png)Appearance / theme settingsAI settings[![Appearance](public/docs/screenshots/settings-appearance.png)](public/docs/screenshots/settings-appearance.png)[![AI settings](public/docs/screenshots/settings-ai.png)](public/docs/screenshots/settings-ai.png)Security (2FA &amp; sessions)Public homepage[![Security](public/docs/screenshots/security.png)](public/docs/screenshots/security.png)[![Homepage](public/docs/screenshots/homepage.png)](public/docs/screenshots/homepage.png)Feature demosForm builder demo[![Demos](public/docs/screenshots/demo.png)](public/docs/screenshots/demo.png)[![Form builder](public/docs/screenshots/demo-form-builder.png)](public/docs/screenshots/demo-form-builder.png)> 50+ full screenshots (every module + all 18 demos) live in [`public/docs/screenshots/`](public/docs/screenshots) and the bundled documentation.

---

Scaffolding CLI
---------------

[](#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 &amp; Access Control
-----------------------------

[](#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 via `Gate::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`/`visible` toggles.
- **Per-user data isolation** — `OwnedByUser` global 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
--------

[](#features)

### Core

[](#core)

- **User Management** — CRUD, soft deletes, status management, role assignment, impersonation, bulk actions, CSV export
- **Roles &amp; 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

[](#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

[](#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

[](#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
----------

[](#tech-stack)

LayerTechnology**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
------------

[](#requirements)

- PHP 8.4+
- Node.js 18+
- MySQL / PostgreSQL / SQLite
- Composer 2+

---

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

[](#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=sqlite` in `.env`, run `touch database/database.sqlite`, then `php 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
-------------

[](#default-roles)

The seeder creates five roles:

RoleAccess**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-only44 permissions across 17 modules are grouped by prefix (`users`, `roles`, `pages`, `articles`, …) in the permission matrix. Generated modules add their own automatically.

---

AI Assistant
------------

[](#ai-assistant)

Configure a provider under **Settings → AI** (master toggle, provider, API key, model, base URL, temperature, max tokens):

ProviderDefault modelNotesOpenAI (default)`gpt-4o-mini`custom base URL supportedAnthropic`claude-sonnet-4-5`OpenRouter`openai/gpt-4o-mini`any listed modelOllama`llama3.1`self-hosted, no keyThe rich text editor gains a **Sparkles** menu: generate, improve, fix grammar, shorten, lengthen, summarize, and change tone — streamed via Server-Sent Events.

---

Internationalization
--------------------

[](#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
------------

[](#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
-----------------

[](#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
--------

[](#key-urls)

URLDescription`/`Public homepage`/blog`, `/blog/{slug}`Public articles`/pages/{slug}`Public static pages`/login`, `/register`Auth`/dashboard`Admin dashboard`/admin/users`, `/admin/roles`User &amp; role management`/admin/articles`, `/admin/pages`, `/admin/categories`, `/admin/media`CMS &amp; media`/admin/settings`General, SEO, Appearance, Social, Maintenance, Homepage, AI`/admin/email-templates`, `/admin/email-logs`, `/admin/email-settings`Email`/admin/firebase-settings`, `/admin/notifications`Push &amp; notifications`/admin/activity-logs`, `/admin/backups`, `/admin/system-health`, `/admin/api-tokens`System`/admin/demo`Feature demos`/docs`Full documentation---

Documentation
-------------

[](#documentation)

Comprehensive docs ship with the project at [`public/docs/index.html`](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
-------

[](#license)

MIT License. See [LICENSE](LICENSE) for details.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance86

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

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 ~51 days

Total

3

Last Release

68d ago

Major Versions

v1.5 → v2.0.02026-06-13

### Community

Maintainers

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

---

Top Contributors

[![spideyrex](https://avatars.githubusercontent.com/u/7654292?v=4)](https://github.com/spideyrex "spideyrex (51 commits)")

---

Tags

laravelinertiadashboardadminvuemyra

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/myra-starter-kit/health.svg)

```
[![Health](https://phpackages.com/badges/myra-starter-kit/health.svg)](https://phpackages.com/packages/myra-starter-kit)
```

###  Alternatives

[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

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

UnoPim Laravel PIM

10.8k2.5k](/packages/unopim-unopim)

PHPackages © 2026

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