Open-Source Wikis

/

Laravel

/

Lore

laravel/laravel

Lore

The story of how the laravel/laravel repository got from "initial commit of laravel!" on 2011-06-08 to the Laravel 13.x skeleton on the current HEAD. Dates come from git commit timestamps and tag dates.

Eras

The framework-and-app era (Jun 2011 – Jan 2013)

laravel/laravel started life as the framework and the application — there was no separation between them. The very first commit, a188d621 initial commit of laravel!, on 2011-06-08 dropped a system/ directory containing the original framework code alongside an application/ directory for the user's app. Major early-life events:

  • Jun 2011 — Eloquent ORM lands. Commit f7bb0c55 trimmed comment bloat. returning boolean on eloquent save. is the first to mention it by name.
  • Jun 2011 — APC cache (b031fdf4) and APC session (3b63335c) drivers added.
  • Jun 2011 — Validation classes (081a3e51 initial commit of validation classes.).
  • Jul 2011 — Pagination (abd269aa), named views (c1ca97d9), arrays helper (d802ae83).
  • 2011 alone produced 1,519 commits — the highest of any year in the repo.
  • 2012 kept the pace at 1,816 commits.

The "Laravel 4 split" (Jan 2013 – Feb 2015)

In early 2013 the framework was extracted into a separate Composer package (laravel/framework), and laravel/laravel became a thin scaffolding repository that depends on it. The defining commit is 5d99f9f1 moving laravel 4 into develop branch. on 2013-01-11 — the modern composer.json lineage starts there.

  • Feb 2013v4.0.0-BETA3 is the first tagged release of the new "skeleton-only" topology.
  • 2013-2014 — The repo's commit volume drops by ~70%, from 1,816/year to ~485/year average. That decline reflects the topology change, not project slowdown — most development now happens in laravel/framework.

Annual major-version cadence (Feb 2015 – present)

From Laravel 5.0 onward, the project shipped majors at a steady cadence. Tags of the first release in each major:

Version First release Notable shifts in the skeleton
v5.0 2015-02-04 New directory layout (app/Http/, app/Console/)
v6.0 2019-08-27 Switched to semver, dropped 5.x naming (LTS branch flow)
v7.0 2020-03-02
v8.0 2020-09-08 Models moved to app/Models/
v9.0 2022-02-08 Symfony 6, PHP 8.0+ minimum
v10.0 2023-02-14
v11.0 2024-03-12 The "slim skeleton" — app/Http/Kernel.php, app/Console/Kernel.php, app/Exceptions/Handler.php removed; bootstrap/app.php becomes the configuration hub
v12.0 2025-02-23
v13.0 2026-03-17 Vite 8, PHP 8.3+, Tailwind v4 baseline

Laravel 11 (Mar 2024) is the most consequential shape-change for this skeleton in the last decade. The kernel and exception-handler classes that contributors had been editing for years vanished, and their behaviour moved into closures inside bootstrap/app.php. The repo's commit volume in 2024 (119) actually dropped despite the rewrite — most of the churn happened inside laravel/framework.

The "AI-aware" era (late 2025 – present)

A cluster of recent changes acknowledges AI coding assistants as a first-class part of the workflow:

  • 2025-10 → 2026-04.gitignore accumulates entries for .cursor/, .codex/, and other AI-tool scratch directories (commits 64c91e5f, def2faf2, etc.).
  • 2026-04 — README adds an "Agentic Development" section pitching laravel/boost (composer require laravel/boost --devphp artisan boost:install) as the official way to plug AI tools into Laravel.
  • 2026-04-05b5b70435 Remove '.fleet' from .gitignore removes JetBrains Fleet support from the default ignore list, partially because the IDE landscape is shifting toward AI-first editors.

These changes are small individually but together signal a deliberate stance: the team is opinionated about AI tooling and is updating defaults to match.

Longest-standing files

Files in the current tree that trace back the furthest:

File Earliest visible commit
public/index.php a188d621the very first commit, 2011-06-08
artisan b5442c67 — 2012-01-16 (merged skunkworks into develop)
composer.json 5d99f9f1 — 2013-01-11 (when Laravel 4 was extracted)

Those three files have been continuously modified across thousands of intervening commits, but every release of every Laravel skeleton since the relevant date has shipped them.

Major rewrites

The framework split (Jan 2013)

The single largest structural change. Before: system/ + application/ in one repo. After: a composer.json requiring laravel/framework, with the framework's source moved out entirely. The new layout established the directory shapes (app/, bootstrap/, config/, public/, routes/, storage/) that have survived every subsequent major version — just with different contents.

The slim skeleton (Mar 2024)

Laravel 11 deleted these files from this repo:

  • app/Http/Kernel.php
  • app/Console/Kernel.php
  • app/Exceptions/Handler.php
  • app/Http/Middleware/* (the bundled middleware classes)
  • app/Providers/AuthServiceProvider.php
  • app/Providers/BroadcastServiceProvider.php
  • app/Providers/EventServiceProvider.php
  • app/Providers/RouteServiceProvider.php
  • app/Models/User.php's separate Hidden/Fillable trait import (replaced with PHP 8 attributes)

All of that behaviour collapsed into bootstrap/app.php's withMiddleware() and withExceptions() closures. The skeleton's app/ directory shrunk from ~15 files to 3.

The "remove axios + ignore-scripts" hardening (Mar–Apr 2026)

A short cluster of security-minded commits:

  • 2026-03-31 02ec8155 [security] pin axios version (#6776) and d1c59653 Prevents installed package from executing malicious code via postinstall (#6777) — pinned axios to a specific version after a supply-chain incident.
  • 2026-04-01 371cc0b8 Remove axios and enable ignore-scripts (#6778) — removed axios from the default skeleton entirely and wrote ignore-scripts=true to .npmrc.
  • 2026-04-15 9d195133 enable npm audit by default (#6788) — added audit=true to .npmrc.

The result: package.json ships zero runtime dependencies and npm install refuses to execute postinstall scripts.

Deprecated / removed features (recent)

A non-exhaustive list of things this skeleton used to ship and no longer does:

Removed When Replaced by / why
app/Http/Kernel.php etc. v11.0, Mar 2024 bootstrap/app.php closures
app/Models/User.php trait setup (recent) PHP 8 #[Fillable] and #[Hidden] attributes
axios in package.json v13.2.0, Apr 2026 Removed entirely; the skeleton has no JS HTTP client by default
.fleet in .gitignore Apr 2026 JetBrains Fleet support deprioritized
Bootcamp link in README v12.9.1, Oct 2025 Replaced with "Laravel Learn" — appears now under ## Learning Laravel

Growth trajectory

Commit volume over the project's 15-year life:

  • 2011-2012: 3,335 commits (45% of total, when the framework lived here).
  • 2013-2017: 2,227 commits (post-split; framework moved out, project broadened to a community project with many contributors).
  • 2018-2024: 1,484 commits (skeleton stabilizes; major bumps drive most churn).
  • 2025-2026: 178 commits (the modern, very-narrow scope).

853 unique committer names appear across all 7,267 commits. Taylor Otwell (4,649 commits) accounts for ~64% of the total — typical for a single-author-led OSS project.

How the present moment looks

As of HEAD (cb6dd7b3, 2026-04-30):

  • Branch: 13.x
  • Latest tag: v13.4.0 (2026-04-28)
  • PHP minimum: ^8.3
  • Laravel framework constraint: ^13.7
  • Most recent commit: "Use Vite font plugin for application fonts" (#6806)

The skeleton has reached an equilibrium where its job is mostly to ship sane defaults that follow whatever the framework just shipped. The exciting changes happen elsewhere — here, "exciting" means a new Vite major or a .npmrc flag.

See By the numbers for the same history compressed into stats.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Lore – Laravel wiki | Factory