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 likeRouter,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 byphp database/migrate.php.database/queue-work.php: queue worker CLI entrypoint.