Skip to content

O que é Arqel?

Arqel é um framework open-source MIT para construir admin panels em Laravel 12+/13 com Inertia 3 e React 19.2+. Posiciona-se como alternativa ao Filament e Laravel Nova.

Filosofia

Três escolhas opinativas formam o coração do projeto:

1. Server-driven UI

Resources, Fields, Tables e Forms são declarados em PHP. O front-end React apenas consome o JSON serializado pelo servidor. Você descreve o que o admin é, não como os componentes são montados:

php
final class PostResource extends Resource
{
    protected static string $model = Post::class;

    public function fields(): array
    {
        return [
            Field::text('title')->required(),
            Field::slug('slug')->fromField('title'),
            Field::textarea('body'),
        ];
    }
}

Esse arquivo gera index, create, edit, show, routes, validation rules e Inertia payload.

2. Inertia-only

Arqel proíbe TanStack Query, SWR ou outras fetch libs no Resource CRUD (ADR-001). Inertia props são o estado default. O resultado: zero impedance mismatch entre Laravel e React, navegação SSR-natural, e um modelo mental único — "props vêm do servidor, callbacks voltam pro servidor".

3. Laravel-native

Policies, Gates, FormRequest, Eloquent — usados directamente. Arqel não tem Role model, não tem permission table, não tem ACL paralela. Se você sabe Laravel, sabe Arqel.

Stack

CamadaTecnologia
BackendPHP 8.3+ · Laravel 12+
BridgeInertia 3
FrontendReact 19.2+ · TypeScript 5.6+ strict
UIshadcn CLI v4 (new-york) · Radix UI · Tailwind CSS v4
TabelasTanStack Table v8
BundlerVite 5 (app) · tsup (libs)
TestesPest 3 · Vitest · Playwright

Pacotes

Instalação one-line

bash
composer require arqel-dev/framework

O meta-package arqel-dev/framework puxa todo o stack PHP. Se quiseres saber o que há por baixo:

PHP

PacoteResponsabilidade
arqel-dev/frameworkMeta-package — agrega tudo abaixo
arqel-dev/corePanels, Resources, rotas polimórficas, Inertia bridge, command palette, telemetry
arqel-dev/authLogin/Register/Forgot/Reset/Verify bundled (Inertia React pages) + AbilityRegistry
arqel-dev/fields21 field types + ValidationBridge
arqel-dev/tableTable builder + Columns + Filters
arqel-dev/formForm builder + Layout components + FormRequest gen
arqel-dev/actionsRowAction, BulkAction, ToolbarAction, HeaderAction
arqel-dev/navNavigationItem, NavigationGroup, BreadcrumbsBuilder

JavaScript

Os pacotes JS são instalados automaticamente pelo arqel:install:

PacoteResponsabilidade
@arqel-dev/typesTypeScript types partilhados (zero runtime)
@arqel-dev/reactcreateArqelApp, <ArqelProvider>, <ThemeProvider>, contexts
@arqel-dev/hooksuseResource, useArqelForm, useTable, useNavigation, useFlash, useCanAccess
@arqel-dev/uiAppShell + Sidebar (shadcn sidebar-07) + DataTable + FormRenderer + 16 primitivas shadcn
@arqel-dev/authLoginPage / RegisterPage / ForgotPasswordPage / ResetPasswordPage / VerifyEmailNoticePage (split-screen login-04)
@arqel-dev/fields21 rich inputs registados via FieldRegistry
@arqel-dev/themeTokens semânticos + dark-mode + ThemeToggle (FOUC-safe)

Comparação com Filament e Nova

CritérioFilamentNovaArqel
BridgeLivewireVue/InertiaInertia + React
Stack frontendAlpine + TailwindVue 3React 19 + shadcn (Radix) + Tailwind v4
LicençaMITComercialMIT
Validation clientparcialparcialZod via ValidationBridge
TypeScriptparcialstrict + exactOptionalPropertyTypes
Field count30+25+21 cobrindo casos canônicos

Não-objetivos

Arqel não vai entregar:

  • Form builder visual (drag-drop) — declarative-only
  • Multi-tenancy completo na Fase 1 — apenas scaffold
  • Real-time collab — Phase 4 considera Laravel Reverb
  • ORM custom — só Eloquent

Próximos passos

Licença MIT — construído com Inertia + React + Laravel.