Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.

Project structure · Backend

Laravel project structure

Opens with credits

A Laravel 13 web app for booking clinic appointments, laid out the way laravel new creates it and the Laravel docs describe it: models, controllers and providers in app, migrations and factories in database, Blade and Vite assets in resources, Pest tests in tests. For students who have built a first CRUD app and want to know where actions, jobs, policies, API resources and deploy files go as it grows.

Curated by Tauseef FayyazIntermediate190 files and foldersPHP 8.5 (8.3 minimum), Laravel 13, Pest 5Checked October 2026
Explore the filesPick any file to see what it is, why it exists and when you add it.

How it grows

Each stage opens the explorer there

  1. 1Day 1What the scaffold and your first hour give you82 files and folders
  2. 2GrowingWhat a real app with features and tests adds+68 files and folders
  3. ProductionWhat running it for real users adds+22 files and foldersOpens with credits
  4. ExpertWhat a team needs to keep it healthy for years+18 files and foldersOpens with credits

How it is organised

  • Follow the skeleton. Laravel developers know where `app/Models`, `routes/web.php` and `database/migrations` are; inventing your own layout costs every new teammate a week.
  • Let Artisan create files (`php artisan make:*`). You get the right namespace, the right folder and a class Laravel discovers automatically.
  • Thin controllers: validate with a form request, authorise with a policy, call an action, return a view or resource. Business rules live in `app/Actions` and models.
  • Configuration comes from `.env` through `config/*.php`. Only config files call `env()`; everything else calls `config()`, because `config:cache` makes `env()` return null.
  • The database is built from code: migrations for the schema, factories for test data, seeders for demo data. Never edit a migration that already ran somewhere shared.
  • Slow or retryable work (email, webhooks, PDFs) goes to a queued job or listener, and every job is safe to run twice.
  • Most tests are Pest feature tests through HTTP with a fresh database; a few browser tests cover the flows that matter most; arch tests guard team rules.
  • Pint formats, Larastan checks types, Pest tests, and CI runs exactly the same commands you run locally.

At the top of the project

Open one in the explorer for the full story

Learn more on Sefism

Roadmaps, cheat sheets and projects that go with Laravel.

See 9 more
Checked against 23 official sources, October 2026. If something has changed, the docs win.Show sources

Picked from the other libraries by shared topics.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.

  • 1:1 Mentorship
  • Fresh Graduate Mentorship
  • Career Guidance

Brand deals, promos and partnerships: tauseeffayyaz@gmail.com