finds.dev← search

// the find

inertiajs/pingcrm

★ 2,326 · PHP · MIT · updated Feb 2025

A demo application to illustrate how Inertia.js works.

The official reference implementation for Inertia.js, showing how to wire a Laravel backend to a Vue 3 frontend without a separate API layer. It's a CRM with contacts, organizations, users, and reports — enough structure to see Inertia patterns in a realistic context without drowning in complexity. Aimed squarely at Laravel developers evaluating whether Inertia fits their stack.

The shared component library (Layout, SearchFilter, Pagination, etc.) demonstrates real-world Inertia patterns you'd actually copy into a project, not toy examples. Server-side filtering and pagination done through Inertia's `preserveState` approach is shown properly across all three resource types. CI is wired up with separate jobs for coding standards, static analysis (PHPStan), and tests — a demo app with this level of tooling hygiene is genuinely useful as a starting template. SSR support is included via `ssr.js`, so you can see the full-stack Inertia setup including server-side rendering without hunting for a separate example.

Test coverage is thin — two feature test files for contacts and organizations, a stub unit test, and nothing for users, auth, images, or reports. If you're using this to understand how to test Inertia apps, it won't show you much. The `ReportsController` returns what appears to be placeholder data with no real aggregation logic, so the 'Reports' section is decorative. Last meaningful update was early 2025 and some dependencies will have drifted; don't fork this expecting a production-ready starting point without updating the lockfiles. No role-based access control despite having a multi-user, multi-account data model — the account scoping in models is there but permissions are not.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →