Project Structure

Project Structure

Keel keeps framework internals separate from app code while keeping views plain PHP.

public_html/
  index.php
  assets/
  uploads/
src/
  Core/
  App/
    Controllers/
    Middleware/
    Models/
    Services/
routes/
  web.php
views/
  partials/
  auth/
  dashboard/
resources/
  css/
  js/
database/
  migrations/
  migrate.php
  queue-work.php
tests/
storage/
  logs/
  app/

What belongs where

  • src/Core/: framework internals like Router, Request, Response, Database, View, ErrorHandler.
  • src/App/Controllers/: HTTP endpoints and request orchestration.
  • src/App/Services/: business logic, external APIs, and workflows.
  • src/App/Middleware/: route guards and request checks.
  • routes/web.php: route registration.
  • views/: plain PHP templates (no template engine dependency).
  • resources/: Tailwind and JavaScript source files compiled by Vite.
  • database/migrations/: SQL migrations applied by php database/migrate.php.
  • database/queue-work.php: queue worker CLI entrypoint.