Demo app (showcase)
apps/demo is the end-to-end app that demonstrates every Arqel package integrated in a single project: a blog admin with Posts, Tags, and Categories, including AI summary generation, workflow transitions (draft → review → published → archived), version history, and an audit log.
Why it exists
- Public showcase — runnable in ~2 minutes, the basis for screenshots and tutorials.
- Cross-package smoke test — exercises
arqel-dev/core+fields+workflowversioning+ai+auditin CI on every PR.
- Boilerplate — fork-friendly for anyone who wants to start with Arqel today.
Quick setup
The demo is committed under apps/demo/. Set it up with its bundled composer setup script and seed the sample blog data:
git clone https://github.com/arqel-dev/arqel.git
cd arqel
pnpm install
# Install deps, copy .env, generate key, migrate and build assets.
composer -d apps/demo setup
# Seed the sample blog (3 users, 5 categories, 20 tags, 50 posts).
php -d apps/demo artisan migrate --seed --seeder=Database\\Seeders\\DemoSeeder
php -d apps/demo artisan serveOpen http://127.0.0.1:8000/admin.
shadcn (new-york) UI on top of Radix UI
The framework's mass migration to shadcn CLI v4 (registry new-york) on top of Radix UI (radix-ui) affects the demo in two visible ways:
- shadcn split-screen login flow: the
/loginpage uses thelogin-04block (split-screen with marketing panel on the left + form on the right) — replacing the previous centered card. - shadcn
sidebar-07block sidebar: the admin layout uses thesidebar-07block (collapsible icon sidebar with header + primary nav + user menu footer) integrated with the canonical tokens (--background,--foreground,--primary,--border,--muted,--ring,--radius, etc.).
E2E with Playwright
The demo carries a Playwright suite covering the critical auth flow and the basic blog CRUD. The smoke set entry point is at:
apps/demo/tests/e2e/01-login.spec.ts— login → dashboard → logout.
Run locally:
pnpm --filter demo exec playwright testIn CI, these tests run after arqel:install on a clean runner, guaranteeing the one-line sequence works end-to-end.
Demonstrated features
- Declarative Resources with 7+ Field types (
text,slug,aiText,richText,stateTransition,dateTime,belongsTo). - Workflow with a pure-PHP state machine in
app/States/PostStates.php. - Offline-friendly AI fields (deterministic stubs when no key is set).
- 3 users, 5 categories, 20 tags, 50 posts generated by
DemoSeeder.
Repository
- Code:
apps/demo/ - README:
apps/demo/README.md