php-client/CLAUDE.md
Snider 8b09fd7fab docs: add CLAUDE.md project instructions
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 13:38:02 +00:00

1.9 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

Laravel package providing the authenticated SaaS customer dashboard (Core\Front\Client). Extracted from the core/php monorepo. Part of a frontend tier hierarchy:

  • Core\Front\Web — public/anonymous
  • Core\Front\Client — authenticated customer (this package)
  • Core\Front\Admin — privileged admin
  • Core\Hub — SaaS operator control plane

Domain concepts: A Namespace is a user identity tied to a URI/handle. A Workspace is a management container (org/agency). A personal workspace maps 1:1 to a namespace for solo users.

Commands

composer install          # Install dependencies

No test suite, linter, or static analysis is configured in this package. Quality tooling is inherited from the lthn/php dependency in the monorepo context.

Architecture

Namespace: Core\Front\Client (PSR-4 mapped from src/Core/Front/Client/)

Boot.php — Laravel ServiceProvider that:

  • Registers a 'client' middleware group (session, CSRF, auth, Core\Headers\SecurityHeaders)
  • Loads Blade views under the 'client' namespace from Blade/
  • Fires ClientRoutesRegistering lifecycle event so other packages can lazily register routes

Routes/client.php — Defines GET /dashboard pointing to the Dashboard Livewire component. Additional routes are injected via LifecycleEventProvider::fireClientRoutes().

View/Dashboard.php — Livewire component rendering client::dashboard inside client::layouts.app.

Blade/layouts/app.blade.php — Master layout using Tailwind CSS (dark theme), Flux UI components, and Font Awesome icons.

Key Dependencies

  • lthn/php — core framework package (provides Laravel, Livewire, Flux, shared middleware)
  • PHP ^8.2
  • EUPL-1.2 licensed