Search by

zofe / rapyd-admin

zofe

rapyd admin for laravel

Package info

github.com/zofe/rapyd-admin

pkg:composer/zofe/rapyd-admin

Fund package maintenance!

zofe

Other

Statistics

Installs: 327

Dependents: 4

Suggesters: 0

Stars: 861

Open Issues: 0

v9.13.3 2026-09-16 20:09 UTC

This package is auto-updated.

Last update: 2026-09-16 20:10:17 UTC


README

Build Status Total Downloads Latest Stable Version

rapyd.dev

Rapyd Admin is an open-source admin panel for Laravel: a light alternative to Nova, Filament and Backpack for teams building SaaS products, and for development with AI agents. Plain Livewire + Blade files that live in your codebase, auth and multi-tenancy included, one command to start.

Live demo →

Why Rapyd Admin

  • Plain code, no DSL. No resource classes to learn: the generators write ordinary Livewire components and Blade views into app/Modules, yours to edit. A unified x-rpd:: component set gives every table, form and detail page the same shape.
  • Built for SaaS. Login, registration, 2FA and Google sign-in (Fortify + Socialite), roles and permissions (Spatie), multi-tenant Companies with 1–3 tiers, activity log, workflows. All bundled, all optional.
  • Agent-friendly. Flat, self-contained module folders with consistent naming, php artisan rpd:context to brief an agent, and a verification loop (tests, browser) an agent can run by itself.

Quick start

Requires PHP 8.2+, Laravel 12 or 13 and Livewire 4.

composer create-project laravel/laravel myapp && cd myapp
composer require zofe/rapyd-admin:^9 -W
php artisan rpd:make:setup     # .env, database, configs, migrations, admin user, home page
php artisan serve

Log in with admin@laravel / admin. You get a sidebar with Users, Companies, Roles & Permissions and Logs, a landing page, and an app/Modules folder ready for your own modules.

-W lets Composer downgrade Guzzle to 7 on Laravel 13: laravel/socialite still requires it through league/oauth1-client. Google sign-in appears on the login page as soon as GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET are set, see docs/AUTH.md.

What's included

Module What it gives you
Auth Fortify login, registration, password reset, email verification, 2FA; Google sign-in; users, roles and permissions pages; impersonation
Companies Multi-tenant company hierarchy (1–3 tiers), owner/member role, data scoping through Limit and Authorize
Addresses Postal addresses attachable to any model, with an embeddable editor
Workflow Symfony Workflow state machines on your models, with transition buttons and history embeds
Log Application log viewer with error analysis by AI, and an activity log of what users do
Search Global search box in the navbar across the models you configure
Layout Bootstrap 5.3 admin shell (sidebar, topbar, dark mode), the reference theme

Every module can be copied into your app with php artisan rpd:eject Module when you need to change it deeply. Details in docs/MODULES.md.

rapyd.dev

Your first module in two minutes

php artisan rpd:make all Article --module=Blog

creates app/Modules/Blog with a table, a detail page and a form for Article, its routes and a sidebar entry (if the model does not exist yet, the command asks for its fields and creates it):

app/Modules/Blog/
├── Livewire/ArticlesTable.php   ArticlesView.php   ArticlesEdit.php
├── Views/articles_table.blade.php   articles_view.blade.php   articles_edit.blade.php   menu.blade.php
├── config.php                   layout, menu entry and position
└── routes.php

The views are short because the work is done by the components:

<x-rpd::table title="Articles" :items="$items">
    <x-slot name="filters">
        <x-rpd::input col="col-8" model="search" placeholder="search..." />
    </x-slot>
    <table class="table">
        <thead><tr><th><x-rpd::sort model="id" label="id" /></th><th>title</th></tr></thead>
        <tbody>
        @foreach ($items as $article)
            <tr><td>{{ $article->id }}</td><td>{{ $article->title }}</td></tr>
        @endforeach
        </tbody>
    </table>
</x-rpd::table>
<x-rpd::edit title="Article">
    <x-rpd::input model="article.title" label="Title" />
    <x-rpd::rich-text model="article.body" label="Body" />
</x-rpd::edit>

Tables, detail pages, forms, every field type and the navigation components are documented in docs/COMPONENTS.md.

Make it yours

Colours, from .env, no build step (quote the values: an unquoted # is a comment):

RAPYD_PRIMARY="#6a1c9a"        # buttons, links, active items
RAPYD_SIDEBAR_BG="#1e293b"     # optional: sidebar, topbar and content backgrounds
RAPYD_SIDEBAR_TEXT="#f8fafc"

Brand: RAPYD_BRAND, RAPYD_LOGO_SIDEBAR, RAPYD_LOGO_LOGIN, RAPYD_FAVICON, RAPYD_CUSTOM_CSS. RAPYD_THEME=<name> activates an installed theme, RAPYD_THEME_SWITCH=true lets each visitor pick one from the navbar (see docs/THEMES.md). RAPYD_AUTH_LINKS=false hides the Login / Register links of the frontend navbar (the routes stay, e.g. a public site whose login is reached from /login).

A different look: the admin shell is a theme, a folder of Blade layouts plus compiled assets activated with RAPYD_THEME. Start from any Bootstrap 5 template, follow the contract in docs/THEMES.md and check it with php artisan rpd:theme:check. Ready to use: zofe/theme-tabler, the Tabler template (composer require zofe/theme-tabler, then RAPYD_THEME=tabler).

A single view: publish it to resources/views/vendor/rpd (components) or resources/views/vendor/layout (layouts) and edit the copy. A whole module: php artisan rpd:eject Auth.

Working with AI agents

php artisan rpd:context            # JSON brief: modules, routes, models, config, extension patterns
php artisan rpd:context --format=text --no-routes

Paste it at the start of a session, or add to your CLAUDE.md / AGENTS.md:

Rapyd Admin app. Run `php artisan rpd:context --format=text` before changing modules.
New modules: `php artisan rpd:make all Model --module=Name`; follow the structure of app/Modules/*.
Verify with `vendor/bin/phpunit` and a browser check of the page you touched.

The package itself is developed this way: see docs/AI.md for the agent brief, the AI error analysis in the log viewer and the browser verification loop.

Modules and marketplace

Anything beyond the bundle is a Composer package with the same structure as a bundled module: composer require, php artisan migrate, done. Available today: zofe/shop-module, zofe/payments-module (Stripe, GoCardless, Paddle), zofe/ai-module. Premium modules and themes will be distributed through a private Composer repository for subscribers. How to write one: docs/MODULES.md.

Testing

vendor/bin/phpunit            # in the package: PHPUnit + Orchestra Testbench, the same suite as CI

Documentation

Credits

License

MIT — http://opensource.org/licenses/MIT