PHPackages                             byeloff/thronekit - 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. byeloff/thronekit

ActiveLibrary[Framework](/categories/framework)

byeloff/thronekit
=================

Laravel + React + Inertia starter kit with Auth, i18n, LGPD/GDPR compliance, and WebSocket notifications.

02TypeScriptCI passing

Since May 19Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/byeloff/thronekit)[ Packagist](https://packagist.org/packages/byeloff/thronekit)[ RSS](/packages/byeloff-thronekit/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependenciesVersions (4)Used By (0)

 [![ThroneKit](./assets/thronekit-banner.png)](./assets/thronekit-banner.png)

 **Laravel + Inertia + React starter kit. Production-ready in one command.**

 [![Latest Version](https://camo.githubusercontent.com/ff2a1733ea028c8d85634b3a4617b863f92c7dde38300ffe1b6aaafc7481668e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6279656c6f66662f7468726f6e656b69742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/byeloff/thronekit) [![Total Downloads](https://camo.githubusercontent.com/0ab868ebfa6c339e665e5dfdb620e768c75aa4f9f3e269b72a80d48ba99a9993/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6279656c6f66662f7468726f6e656b69742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/byeloff/thronekit) [![PHP](https://camo.githubusercontent.com/6caa15003495643be73f70c6033009042189b7d38acf492a3d5fd04ffbb45059/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737374242343f7374796c653d666c61742d737175617265266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/6caa15003495643be73f70c6033009042189b7d38acf492a3d5fd04ffbb45059/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737374242343f7374796c653d666c61742d737175617265266c6f676f3d706870266c6f676f436f6c6f723d7768697465) [![Laravel](https://camo.githubusercontent.com/3fdb19b1865a346e4840d08846d80e1669181e4c0706d3e9edea0ae2733d4dec/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31312532422d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/3fdb19b1865a346e4840d08846d80e1669181e4c0706d3e9edea0ae2733d4dec/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31312532422d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c266c6f676f436f6c6f723d7768697465) [![React](https://camo.githubusercontent.com/b2e8aac9e5aeab7d0dba6295f37501d7d18c37711441f2c9f196274a768c8367/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3631444146423f7374796c653d666c61742d737175617265266c6f676f3d7265616374266c6f676f436f6c6f723d626c61636b)](https://camo.githubusercontent.com/b2e8aac9e5aeab7d0dba6295f37501d7d18c37711441f2c9f196274a768c8367/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3631444146423f7374796c653d666c61742d737175617265266c6f676f3d7265616374266c6f676f436f6c6f723d626c61636b) [![TypeScript](https://camo.githubusercontent.com/767c0a4f732d0ac157215f9238a4152804290b554b946b2489c21761d7110a6f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d3331373843363f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/767c0a4f732d0ac157215f9238a4152804290b554b946b2489c21761d7110a6f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d3331373843363f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465) [![Tailwind](https://camo.githubusercontent.com/e69b2b39f742d1fdada45863d8c34d665e9759b46b99c9f4105b46ff94d5ee89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642d76342d3338424446383f7374796c653d666c61742d737175617265266c6f676f3d7461696c77696e64637373266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/e69b2b39f742d1fdada45863d8c34d665e9759b46b99c9f4105b46ff94d5ee89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642d76342d3338424446383f7374796c653d666c61742d737175617265266c6f676f3d7461696c77696e64637373266c6f676f436f6c6f723d7768697465) [![License](https://camo.githubusercontent.com/44261f9ef42e390b549aaea057af4df1b92075dc5a18bc8b0cc60d1bf46c404c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6279656c6f66662f7468726f6e656b69742e7376673f7374796c653d666c61742d737175617265)](LICENSE)

---

ThroneKit drops a complete full-stack foundation into a fresh Laravel project. Auth, sidebar layout, trilingual i18n, shadcn/ui — all wired together and ready for your business logic. Opt-in modules add LGPD/GDPR compliance and real-time WebSocket notifications without touching the core.

---

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

[](#table-of-contents)

- [Requirements](#requirements)
- [Installation](#installation)
- [Module: Core](#-module-core)
    - [Auth &amp; 2FA](#auth--2fa)
    - [Sidebar Layout](#sidebar-layout)
    - [i18n — Three Locales](#i18n--three-locales)
    - [Role-based Access](#role-based-access)
    - [Admin: Users](#admin-users)
    - [Theme Editor](#theme-editor-dev-only)
    - [Security Headers](#security-headers)
- [Module: Compliance](#-module-compliance)
    - [Cookie Consent](#cookie-consent)
    - [Terms &amp; Conditions](#terms--conditions)
    - [Privacy Policy](#privacy-policy)
    - [Data Export &amp; Erasure](#data-export--erasure)
    - [Audit Trail](#audit-trail)
- [Module: Notifications](#-module-notifications)
    - [Admin CRUD](#admin-crud)
    - [Bell Dropdown](#bell-dropdown)
    - [Notification Preview](#notification-preview)
- [Stack &amp; Packages](#stack--packages)
- [Credits](#credits)
- [License](#license)

---

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

[](#requirements)

PHP≥ 8.2Laravel≥ 11Node.js≥ 20DatabasePostgreSQL 16 (recommended) · MySQL 8 · SQLite (tests)---

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

[](#installation)

```
# 1. Create a fresh Laravel project
laravel new my-project
cd my-project

# 2. Require ThroneKit
composer require byeloff/thronekit --dev

# 3. Run the interactive installer
php artisan thronekit:install
```

The installer prompts you to choose optional modules, then handles file scaffolding, Composer packages, npm packages, and migrations automatically.

**Non-interactive flags:**

```
# Core only
php artisan thronekit:install --modules=

# All modules
php artisan thronekit:install --modules=compliance,notifications

# Skip npm install / migrations (CI environments)
php artisan thronekit:install --skip-npm --skip-migrate
```

---

🏰 Module: Core
--------------

[](#-module-core)

> Always installed. No flags required.

The core gives you a fully functional application shell so you can start writing business logic immediately.

### Auth &amp; 2FA

[](#auth--2fa)

Powered by **Laravel Fortify**:

- Login, registration, password reset, email verification
- Two-factor authentication (TOTP app + recovery codes)
- Remember me, account lockout protection
- Settings pages: Profile · Security · Appearance

### Sidebar Layout

[](#sidebar-layout)

A persistent, collapsible icon sidebar built with the **shadcn/ui Sidebar** primitive and Inertia's persistent layout API. Dark / light / system theme with instant switching — no flash on load.

### i18n — Three Locales

[](#i18n--three-locales)

 [![Locale Switcher](./assets/screenshots/locale-switcher.png)](./assets/screenshots/locale-switcher.png)

ThroneKit ships with `pt_BR`, `en`, and `es` out of the box. Locale resolution priority:

1. `session('locale')` — explicit switch by the user
2. `users.locale` — persisted preference in the database
3. `cookie('locale')` — fallback for unauthenticated visitors
4. `config('app.locale')` — system default

The locale switcher in the top bar updates session, cookie, and user record in one request. On the frontend, `react-i18next` consumes the active locale JSON served as an Inertia shared prop — no extra HTTP round-trips.

### Role-based Access

[](#role-based-access)

Built on `spatie/laravel-permission`. ThroneKit pre-wires two roles:

RoleDefault access`superadmin`Full admin panel — users, roles, notifications, Horizon`admin`Notifications managementAdditional roles (`b2b`, `b2c`, …) are created and assigned via the Users admin.

### Admin: Users

[](#admin-users)

 [![Users Admin](./assets/screenshots/users-admin.png)](./assets/screenshots/users-admin.png)

Full-text search by name or email (Laravel Scout), filter by role, paginated. Each row shows role badges, email verification status, and join date.

 [![Edit Roles](./assets/screenshots/roles-modal.png)](./assets/screenshots/roles-modal.png)

Role assignment opens in a modal with one checkbox per role. Multiple roles supported. Changes take effect immediately without page reload.

### Theme Editor *(dev only)*

[](#theme-editor-dev-only)

 [![Theme Editor](./assets/screenshots/theme-editor.png)](./assets/screenshots/theme-editor.png)

Available at `/dev/theme-editor` in `local` environments only. Provides a live editor for Tailwind v4 CSS tokens:

- **Colors** — pick any `--background`, `--primary`, `--destructive`, etc. with a native color input; values are stored as `oklch()`
- **Typography** — font family presets (Instrument Sans, Inter, Geist, …)
- **Border radius** — global radius slider
- **Shadows** — preview and edit shadow tokens
- **Live preview** — buttons, badges, inputs, cards update in real time
- **Save** — writes directly to `resources/css/app.css`

### Security Headers

[](#security-headers)

A middleware applied globally that adds:

HeaderValue`Content-Security-Policy`Configurable per environment`X-Frame-Options``SAMEORIGIN``X-Content-Type-Options``nosniff``Referrer-Policy``strict-origin-when-cross-origin``Strict-Transport-Security``max-age=31536000; includeSubDomains`Local environment uses a permissive policy to allow Vite dev server. Production tightens it automatically.

---

🔒 Module: Compliance
--------------------

[](#-module-compliance)

> Optional. Requires `spatie/laravel-activitylog`, `spatie/laravel-cookie-consent`, `spatie/laravel-personal-data-export`.

```
php artisan thronekit:install --modules=compliance
```

Full LGPD (Lei 13.709/2018) and GDPR (EU 2016/679) compliance layer.

### Cookie Consent

[](#cookie-consent)

 [![Cookie Consent Banner](./assets/screenshots/cookie-consent.png)](./assets/screenshots/cookie-consent.png)

A granular consent banner with three categories:

CategoryDefaultCan be declined**Essential**Always onNo — required for auth, CSRF, locale**Analytics**OffYes**Marketing**OffYesThe user's decision is stored in a signed `cookie_consent` JSON cookie (12-month TTL) and synced to the server. Incrementing the `version` field forces re-consent from all users when categories change.

### Terms &amp; Conditions

[](#terms--conditions)

 [![Terms & Conditions](./assets/screenshots/terms.png)](./assets/screenshots/terms.png)

- Versioned `terms_and_conditions` table (slug + version + locale + Markdown content)
- Every acceptance recorded in `user_terms_acceptances` pivot with IP address, user agent, and timestamp
- `EnsureTermsAccepted` middleware blocks all authenticated routes and redirects to `/terms` until the current version is accepted
- New terms version? Create a new row with a different `version` value — all users get intercepted on their next request

### Privacy Policy

[](#privacy-policy)

 [![Privacy Policy](./assets/screenshots/privacy-policy.png)](./assets/screenshots/privacy-policy.png)

Static page at `/privacy-policy`. Pre-filled with placeholder legal text referencing LGPD art. 18 and GDPR art. 15-22. Replace before going to production.

### Data Export &amp; Erasure

[](#data-export--erasure)

Settings → Privacy (`/settings/privacy`):

RightEndpointImplementation**Portability**`POST /settings/privacy/export`Queued job generates ZIP with user JSON + activity log + accepted terms, sends by email**Erasure**`DELETE /settings/privacy``$user->anonymize()` replaces PII with `[anonymized]`, clears credentials, sets `anonymized_at`**Correction**Settings → ProfileStandard profile updateThe `Anonymizable` trait preserves all audit log references — foreign keys remain intact, only the PII columns are overwritten.

### Audit Trail

[](#audit-trail)

Every sensitive auth event is automatically logged to `activity_log` via `AuthActivitySubscriber`:

`login` · `logout` · `login_failed` · `login_lockout` · `password_reset` · `password_updated` · `2fa_enabled` · `2fa_disabled` · `2fa_confirmed` · `2fa_failed` · `2fa_recovery_codes_regenerated` · `2fa_recovery_code_used`

Each entry stores: IP address, user agent, guard name. Passwords and tokens are **never** logged.

---

🔔 Module: Notifications
-----------------------

[](#-module-notifications)

> Optional. Requires `laravel/reverb`.

```
php artisan thronekit:install --modules=notifications
```

A complete push notification system — admin composer, real-time delivery, and a bell UI component.

### Admin CRUD

[](#admin-crud)

 [![Notifications Admin](./assets/screenshots/notifications-admin.png)](./assets/screenshots/notifications-admin.png)

Full notification management at `/admin/notifications`:

- **List** with filter tabs: All · Drafts · Sent
- **Type badges**: Info · Action (Yes/No) · Link
- **Status**: Draft (editable) · Sent (read-only)
- **Recipient count** per notification
- **Actions**: View · Dispatch · Edit · Delete (drafts only)
- Create and edit open in a **side drawer** — no page navigation needed

**Targeting options:**

TargetDescriptionAll usersDelivered to every registered userBy roleSelect one or more roles (e.g. `admin`, `b2b`)Specific usersMulti-select from the user listThe body field supports **emoji** via an inline picker (cursor-aware insertion, dark mode, locale-aware labels powered by `emoji-mart`).

### Bell Dropdown

[](#bell-dropdown)

 [![Notification Bell](./assets/screenshots/notification-bell.png)](./assets/screenshots/notification-bell.png)

- Badge with unread count (synced via Inertia shared props + live WebSocket)
- Lazy loads notifications on first open
- Supports all three types inline:
    - **Info** — title + body + timestamp
    - **Action** — Yes / No buttons, marks as read on click
    - **Link** — clickable underlined label
- **Sound toggle** — a Web Audio API chime plays on arrival; preference persisted in `localStorage`
- Real-time delivery via **Laravel Reverb** on a private per-user channel (`App.Models.User.{id}`)

### Notification Preview

[](#notification-preview)

 [![Notification Preview](./assets/screenshots/notification-preview.png)](./assets/screenshots/notification-preview.png)

Before sending, a preview modal renders the notification exactly as it will appear in the bell dropdown — including action buttons with custom labels or the link. Three actions:

- **Continue editing** — return to the form
- **Save as draft** — store without dispatching
- **Save &amp; send** — store and dispatch immediately to all targeted users via a queued job

---

Stack &amp; Packages
--------------------

[](#stack--packages)

### Backend

[](#backend)

PackageVersionPurpose[![Laravel](https://camo.githubusercontent.com/1594a22aa6e327e306fabd1c31a74cb3803262bce6ead2bf3b9da7bedeefa3e1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2f6672616d65776f726b2d25354531332d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://laravel.com)^11Application framework[![Fortify](https://camo.githubusercontent.com/b3f3c89d50ffcbbd84489663e4f290396474bc0b02a2ffeace8be8b6ad91ff27/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2f666f72746966792d253545312d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://github.com/laravel/fortify)^1Headless authentication backend[![Reverb](https://camo.githubusercontent.com/a4e42d6405608fc5121a62bb0e1bb168fab906bb0bef585d54545c4eb40b7e51/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2f7265766572622d253545312d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://reverb.laravel.com)^1First-party WebSocket server[![Horizon](https://camo.githubusercontent.com/3ee65536a376176ca253dc58925de02c8de2bdd522c5f94b7629e13cb9115eee/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2f686f72697a6f6e2d253545352d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://horizon.laravel.com)^5Redis queue dashboard[![Scout](https://camo.githubusercontent.com/58baee4946a53401b1f7f5ca46aed17d73a0d81f32de925a3fe11df1955cd550/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2f73636f75742d25354531312d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://github.com/laravel/scout)^11Full-text search (database driver)[![Permission](https://camo.githubusercontent.com/4e61242a572470ff5471ea8b19f072eea0d997bd3803c5c17a41c6db6d76fef0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7370617469652f6c61726176656c2d2d7065726d697373696f6e2d253545362d3030394441343f7374796c653d666c61742d737175617265)](https://spatie.be/docs/laravel-permission)^6Roles &amp; permissions[![Activitylog](https://camo.githubusercontent.com/0ef7ce8aca12dfbae97eaac677a92f4206fb723b35617ef78b802e8912394e6d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7370617469652f6c61726176656c2d2d61637469766974796c6f672d253545342d3030394441343f7374796c653d666c61742d737175617265)](https://spatie.be/docs/laravel-activitylog)^4Audit trail *(compliance)*[![Cookie Consent](https://camo.githubusercontent.com/316b11ccf6cf24985f4e574d9e6ed70a2689621617b0882ddf906ca1065d619d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7370617469652f6c61726176656c2d2d636f6f6b69652d2d636f6e73656e742d253545332d3030394441343f7374796c653d666c61742d737175617265)](https://spatie.be/docs/laravel-cookie-consent)^3Cookie consent *(compliance)*[![Personal Data Export](https://camo.githubusercontent.com/dda4c3c18cf1891171b75a66b56ee8fc3c1809b4b366df28f9b6daa52622de8b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7370617469652f706572736f6e616c2d2d646174612d2d6578706f72742d253545342d3030394441343f7374796c653d666c61742d737175617265)](https://spatie.be/docs/laravel-personal-data-export)^4GDPR data export *(compliance)*[![Pest](https://camo.githubusercontent.com/6c1701041edf2fccf44904d559e3f5c17e2ea4ef4da0f1617eb4434404a1021d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706573747068702f706573742d253545342d4630353334303f7374796c653d666c61742d737175617265)](https://pestphp.com)^4Testing framework### Frontend

[](#frontend)

PackagePurpose[![Inertia](https://camo.githubusercontent.com/079e6230abd20c4136c30a741ff770aa26aa968a92fadf57aaa65ce67fe5f024/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f40696e65727469616a732f72656163742d253545332d3935353345393f7374796c653d666c61742d737175617265)](https://inertiajs.com)SPA bridge — no API needed[![React](https://camo.githubusercontent.com/93ba2ef691a479b04a93bc78aebd07acd18c78f7dc74e461c7fae3c826df04ad/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f72656163742d31392d3631444146423f7374796c653d666c61742d737175617265266c6f676f3d7265616374266c6f676f436f6c6f723d626c61636b)](https://react.dev)UI library[![TypeScript](https://camo.githubusercontent.com/bd75d3ff2df4b6a1c3b35907bca3698434d78dd4c4d26760c70261f665b8e517/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f747970657363726970742d352d3331373843363f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074)](https://www.typescriptlang.org)Type safety[![Tailwind](https://camo.githubusercontent.com/f7bee1337c49bea9f75900d6b67bda977ec0039a3e12714055e4314a02186253/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7461696c77696e646373732d76342d3338424446383f7374796c653d666c61742d737175617265266c6f676f3d7461696c77696e64637373)](https://tailwindcss.com)Utility-first CSS[![shadcn/ui](https://camo.githubusercontent.com/5053e55adcdd16c0b5722238e4796838b26d2a2e3ca17d51935946d93f31fcfe/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73686164636e25324675692d6c61746573742d3030303030303f7374796c653d666c61742d737175617265)](https://ui.shadcn.com)32 accessible UI components[![Lucide](https://camo.githubusercontent.com/471e3a3c2524baf5708b96c9210991b1358fbe4d9e40051bb39b5831809a45bc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c75636964652d2d72656163742d6c61746573742d4635363536353f7374796c653d666c61742d737175617265)](https://lucide.dev)Icon library[![i18next](https://camo.githubusercontent.com/f0a492a8dcc0a6163d66d7831a2996e8f8d08116d8e808cccf0d7afc838153db/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f72656163742d2d6931386e6578742d6c61746573742d3236413639413f7374796c653d666c61742d737175617265)](https://react.i18next.com)Frontend localization[![Echo](https://camo.githubusercontent.com/94c5ac6610ffa41ce3c4c85096b5e70190ab83cde77e494930130cb6fd277906/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d2d6563686f2d253545322d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://github.com/laravel/echo)WebSocket client[![emoji-mart](https://camo.githubusercontent.com/1b5d49eac29268491a81be0cc90682746b14ddd741adf94fb4a76551d1dd4a68/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f40656d6f6a692d2d6d6172742f72656163742d6c61746573742d4646434330303f7374796c653d666c61742d737175617265)](https://github.com/missive/emoji-mart)Emoji picker[![Sonner](https://camo.githubusercontent.com/d4a1ea628a70fcdc3ba2f3ed9e3fbe2d74b42962d8f8382d162bcec516a09cfd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736f6e6e65722d6c61746573742d3030303030303f7374796c653d666c61742d737175617265)](https://sonner.emilkowal.ski)Toast notifications[![Vite](https://camo.githubusercontent.com/e3c18fb6283341ebbb315e685c2a2ee7d287e92e47b11336ed8bb9b1e78ce9be/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f766974652d362d3634364346463f7374796c653d666c61742d737175617265266c6f676f3d76697465)](https://vitejs.dev)Build tool---

Credits
-------

[](#credits)

ThroneKit is built on the shoulders of outstanding open-source work.

ProjectAuthorRole in ThroneKit[Laravel](https://laravel.com)[Taylor Otwell](https://github.com/taylorotwell)Application framework[Inertia.js](https://inertiajs.com)[Jonathan Reinink](https://github.com/reinink)Full-stack SPA glue[React](https://react.dev)MetaUI rendering[Tailwind CSS](https://tailwindcss.com)[Adam Wathan](https://github.com/adamwathan)Utility-first styling[shadcn/ui](https://ui.shadcn.com)[shadcn](https://github.com/shadcn)Component library[Spatie](https://spatie.be)[Freek Van der Herten](https://github.com/freekmurze) &amp; teamPermission, Activitylog, Cookie Consent, Personal Data Export[Lucide](https://lucide.dev)Lucide ContributorsIcons[emoji-mart](https://github.com/missive/emoji-mart)[Missive](https://github.com/missive)Emoji picker[Sonner](https://sonner.emilkowal.ski)[Emil Kowalski](https://github.com/emilkowalski)Toast notifications[Pest](https://pestphp.com)[Nuno Maduro](https://github.com/nunomaduro)Testing[Vite](https://vitejs.dev)Evan You &amp; contributorsBuild tooling---

License
-------

[](#license)

MIT — see [LICENSE](LICENSE).

---

 Made with ♥ by [@byeloff](https://github.com/byeloff)

###  Health Score

21

—

LowBetter than 17% of packages

Maintenance57

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity16

Early-stage or recently created project

 Bus Factor1

Top contributor holds 95.2% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/18500325a416330c3056cff411bec57d6395e0ca722a34736572a09a60ea1cc6?d=identicon)[byeloff](/maintainers/byeloff)

---

Top Contributors

[![byeloff](https://avatars.githubusercontent.com/u/2762822?v=4)](https://github.com/byeloff "byeloff (20 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

### Embed Badge

![Health badge](/badges/byeloff-thronekit/health.svg)

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

###  Alternatives

[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[alizharb/laravel-modular

A professional, framework-agnostic modular architecture for Laravel 11+. Features zero-config autoloading, 29+ Artisan command overrides, and seamless Vite integration.

211.6k9](/packages/alizharb-laravel-modular)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

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