# Laravel: the application skeleton behind a new Laravel project

> The laravel/laravel repository is the starting skeleton Composer pulls when you create a new Laravel application, not the framework itself. Here is what ships inside it, how to install it, and where it stops being the right tool.

**laravel/laravel** — PHP web application framework with expressive, elegant syntax that eases routing, dependency injection, ORM, migrations, queues, and real-time event broadcasting.

- Repository: https://github.com/laravel/laravel
- Website: https://laravel.com
- Stars: 85,042 · Forks: 26,437
- Language: Blade
- License: not declared
- Published: 2026-08-08 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/laravel-laravel

## What laravel/laravel actually is, and who it is for

The name is misleading. laravel/laravel is not the framework. The framework lives in laravel/framework, and the README links to it through the Packagist badges. This repository is the application skeleton: the directory tree you get when you run composer create-project, with app/, bootstrap/, config/, database/, public/, resources/, routes/, storage/ and tests/ already in place. Its default branch is 13.x, and the most recent release listed is v13.10.1 on 2026-08-25, with v13.10.0 on 2026-08-18 and v13.9.0 on 2026-08-12 before it.

The audience is anyone starting a web application in PHP who does not want to assemble routing, a container, an ORM, migrations, queues and broadcasting by hand. The README lists exactly those as the pieces Laravel eases: a routing engine, a dependency injection container, session and cache back ends, Eloquent, schema migrations, background job processing and event broadcasting. If you are building a CLI tool, a library, or a single endpoint that does not need any of that, the skeleton hands you more surface area than you asked for.

## The default wiring in .env.example, and why it matters

The .env.example file is where the skeleton's opinions become visible. DB_CONNECTION is sqlite, with the MySQL host, port, database, username and password lines all commented out. SESSION_DRIVER is database, QUEUE_CONNECTION is database, and CACHE_STORE is database. That combination means a fresh application stores sessions, queued jobs and cache rows in the same SQLite file it uses for your models. Nothing external is required to boot, which is the point, and it also means those three concerns compete for the same file.

Other defaults are deliberately inert. BROADCAST_CONNECTION is log, MAIL_MAILER is log, and FILESYSTEM_DISK is local, so broadcast events, mail and file writes go nowhere useful until you replace them. BCRYPT_ROUNDS is 12. APP_MAINTENANCE_DRIVER is file, with a commented APP_MAINTENANCE_STORE=database alternative. REDIS_CLIENT is phpredis on 127.0.0.1:6379, and MAIL_PORT is 2525, which is not the port most SMTP servers listen on. Treat every one of these as a decision you have not made yet.

## Installing Laravel and running a first route

The README does not give install commands for the skeleton itself; it points to https://laravel.com/docs and to the Laracasts video library for learning material. What the repository does show is the tooling it expects. The package.json declares Vite 8, Tailwind CSS 4, the laravel-vite-plugin and concurrently as dev dependencies, and exposes two scripts, build and dev.

A conventional install therefore starts with the Composer project command, which downloads this skeleton, then the environment file, an application key, and the frontend build:

```bash
composer create-project laravel/laravel example-app
cd example-app
cp .env.example .env
php artisan key:generate
npm install
npm run dev
```

npm run dev maps to the dev script, which runs vite; npm run build maps to vite build. The default APP_URL in .env.example is http://localhost:8000, which matches the port php artisan serve uses. After the key is generated, APP_KEY in .env is populated and the application stops failing on encrypted cookies and sessions.

For agent-assisted work the README gives a second, separate procedure. Laravel Boost installs as a dev dependency and then runs its own installer:

```bash
composer require laravel/boost --dev

php artisan boost:install
```

The README states Boost provides your agent 15+ tools and skills. It names Claude Code, Cursor and GitHub Copilot as the agents it targets. That is a dev-only dependency, so it does not belong in a production build.

## Where the skeleton gets in your way

The database-backed defaults are the first real constraint. With SESSION_DRIVER, QUEUE_CONNECTION and CACHE_STORE all set to database, a single SQLite file absorbs session writes, cache reads and job polling. On a laptop that is convenient. Under concurrent load it is a contention point, and moving to Redis or another store means editing four or more keys rather than one.

The second constraint is the frontend tooling. Vite 8, Tailwind 4 and the laravel-vite-plugin are installed whether or not you serve any JavaScript. An API-only service still carries node_modules and a build step it never invokes. There is no documented flag in the repository to opt out at create time.

The third is scope. This is a web application skeleton. If you are publishing a reusable package, that package should not depend on laravel/laravel; it should require laravel/framework and let the consuming application supply the skeleton. The README's own contribution section points contributors at the framework documentation instead, which is a hint about where framework work belongs.

Finally, the repository's own licence field is not stated, even though the README says the Laravel framework is open-sourced under the MIT license. Those are two different statements about two different things, and the README's sentence is about the framework.

## Slim, Symfony and the difference in approach

Slim is the obvious comparison for someone who wants routing and PSR-7 request handling without opinions about persistence. A Slim application gives you a router and middleware pipeline; you choose the container, the ORM and the migration tool, and you wire them together. Laravel's skeleton makes those choices for you and ships the configuration files. The trade is time against reversibility: you write less to get to a working login, and you spend more effort later if you disagree with the defaults.

Symfony's approach sits between the two. Symfony Flex recipes assemble a project from components you select, so the starting tree reflects what you asked for. Laravel's skeleton is a fixed tree with a fixed set of drivers, and the README's list of features (routing, container, sessions, cache, Eloquent, migrations, queues, broadcasting) is the fixed menu. If you want a component-oriented build, Flex matches that mental model better. If you want a conventional application tree and are willing to accept the defaults, the skeleton is faster to a first route.

## Maintenance, upgrades and licence

The last push to the default branch was on 2026-08-25, and releases v13.10.1, v13.10.0 and v13.9.0 landed on 2026-08-25, 2026-08-18 and 2026-08-12. The repository is not archived. Upgrades for a skeleton are not the same as upgrades for a framework: when you run composer create-project you copy the tree into your own repository, and from that moment your composer.json, config files and bootstrap code are yours. Pulling a new skeleton release does not update your application. The practical cost is re-reading the diff between your tree and a freshly created one when a major version changes the bootstrap or config layout.

The licence situation needs care. The README states the Laravel framework is open-sourced under the MIT license and links to opensource.org/licenses/MIT. The repository metadata does not declare a licence. If you need certainty about the terms covering this skeleton's files, confirm them against the framework's licence text rather than assuming the README sentence transfers. That is a fact to check, not legal advice.

## Conclusion

Adopt this skeleton if you want a conventional Laravel application with SQLite, database sessions and database queues working before you write any code. Skip it if you need a package, a library or a non-HTTP worker, because the skeleton assumes a web application and pulls in frontend tooling you may never run. Before committing, open .env.example and decide each driver for yourself: DB_CONNECTION defaults to sqlite, SESSION_DRIVER, QUEUE_CONNECTION and CACHE_STORE all default to database, and MAIL_MAILER defaults to log, so nothing is actually delivered until you change it.

## FAQ

### What is Laravel and why is it used?

Laravel is a web application framework with expressive, elegant syntax, according to its README. It is used to avoid rebuilding common pieces of a web project: routing, a dependency injection container, session and cache storage, an ORM, migrations, queues and event broadcasting.

### Is Laravel a frontend or backend?

It is backend. The README describes it as a web application framework and lists server-side concerns such as routing, the container, sessions, cache, the database ORM, migrations, queue processing and broadcasting. The frontend side in this repository is only build tooling: Vite, Tailwind CSS and the laravel-vite-plugin.

### Is PHP Laravel outdated?

The repository is not archived and its last push was on 2026-08-25, with v13.10.1 released the same day. The README also documents current tooling such as Vite 8, Tailwind CSS 4 and Laravel Boost for AI coding agents.

### Is Laravel better than React?

They are not alternatives. Laravel is a server-side web application framework covering routing, the container, the ORM, migrations, queues and broadcasting. React is not discussed anywhere in this repository's README or configuration files, so no comparison is supported here.

### How do I install Laravel?

The README does not give install commands and points to https://laravel.com/docs instead. The repository shows the tooling a project expects: Composer for PHP dependencies, and npm with a Vite build. Laravel Boost is installed separately as a dev dependency with composer require laravel/boost --dev followed by php artisan boost:install.

## Sources

- [Official documentation](https://laravel.com)
- [Official README](https://github.com/laravel/laravel#readme)
- [Project repository](https://github.com/laravel/laravel)
- [Release notes](https://github.com/laravel/laravel/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/laravel-laravel
