PHPackages                             waaseyaa/inertia - 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. [API Development](/categories/api)
4. /
5. waaseyaa/inertia

ActiveLibrary[API Development](/categories/api)

waaseyaa/inertia
================

Server-side Inertia.js v3 protocol adapter for Waaseyaa

v0.1.0-alpha.188(1mo ago)06061GPL-2.0-or-laterPHPPHP &gt;=8.5

Since Mar 19Pushed 1w agoCompare

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

READMEChangelogDependencies (4)Versions (157)Used By (1)

waaseyaa/inertia
================

[](#waaseyaainertia)

> **Optional / experimental — not the primary workspace UI.** Per charter directive **DIR-007** (`.kittify/charter/charter.md`), the committed workspace UI is the Nuxt SPA in `packages/admin/`. This L6 adapter is supported for distributions that prefer server-driven UI, but is **not** bundled by `waaseyaa/full`.

**Layer 6 — Interfaces**

Server-side Inertia.js v3 protocol adapter. A controller returns `Inertia::render($component, $props)`, producing an `InertiaResponse` that carries the Inertia page object. `InertiaMiddleware` reads the `X-Inertia-*` headers to tell an initial full-page load (HTML via `RootTemplateRenderer`) from an XHR navigation (JSON page object), and returns `409` + `X-Inertia-Location` on an asset-version mismatch. `OptionalProp` / `PropResolver` defer expensive props so partial reloads (`only` / `except`) recompute only requested keys. Implements the foundation contracts `InertiaPageResultInterface` and `InertiaFullPageRendererInterface`.

Install
-------

[](#install)

Ships in the `waaseyaa/framework` metapackage but is not pulled in by `waaseyaa/full`; add it explicitly: `composer require waaseyaa/inertia`. Register `Waaseyaa\Inertia\InertiaServiceProvider` (auto-discovered via `extra.waaseyaa.providers`) to wire the renderer and HTTP middleware.

Key API
-------

[](#key-api)

```
// Inertia — static response factory + shared-prop / version state.
Inertia::setVersion(string $version): void
Inertia::getVersion(): string
Inertia::setRenderer(RootTemplateRenderer $renderer): void
Inertia::getRenderer(): RootTemplateRenderer
Inertia::share(string $key, mixed $value): void
Inertia::render(string $component, array $props, bool $encryptHistory = false, bool $clearHistory = false): InertiaResponse
Inertia::reset(): void

// InertiaResponse implements InertiaPageResultInterface — readonly: component, props,
//   url, version, encryptHistory, clearHistory, preserveFragment, and the
//   deferred/merge/prepend/deepMerge/once prop sets.
public function toPageObject(): array

// InertiaMiddleware — #[AsMiddleware(pipeline: 'http', priority: 20)]
public function __construct(string $version)
public function process(Request $request, HttpHandlerInterface $next): Response

// PropResolver
public static function optional(\Closure $callback): OptionalProp
public function resolve(array $props, array $only = [], array $except = []): array

// RootTemplateRenderer implements InertiaFullPageRendererInterface
public function __construct(?\Closure $template = null, ?ViteAssetManager $assetManager = null)
public function render(array $pageObject): string

// InertiaServiceProvider implements HasMiddlewareInterface
public function register(): void
public function registerWithRoot(?string $root): void
public function middleware(EntityTypeManager $entityTypeManager): array
```

Usage
-----

[](#usage)

```
Inertia::setVersion('abc123');
Inertia::share('auth', fn() => ['user' => currentUser()]);
$response = Inertia::render('Users/Index', ['users' => [1, 2, 3]]);
$page = $response->toPageObject();
```

Page props override shared props of the same key; shared closures resolve fresh per `render()`; `toPageObject()` always injects `props.errors`.

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance96

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 66.7% 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 ~0 days

Total

156

Last Release

37d ago

PHP version history (2 changes)v0.1.0-alpha.38PHP &gt;=8.4

v0.1.0-alpha.176PHP &gt;=8.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/25d0ff572e93e3461e5180a920725d65691fd1e15e2d914b254dbbc2d6c393bd?d=identicon)[jonesrussell](/maintainers/jonesrussell)

---

Top Contributors

[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (44 commits)")[![jonesrussell](https://avatars.githubusercontent.com/u/499552?v=4)](https://github.com/jonesrussell "jonesrussell (22 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/waaseyaa-inertia/health.svg)

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

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35816.3M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24015.5M18](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172437.8k11](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93452.6k6](/packages/botman-driver-telegram)

PHPackages © 2026

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