Organizes context into layers by loading method: CLAUDE.md, .claude/rules/, skills, and docs/
claude-code-laravel-starter — Laravel Documentation Template
By albertoarena
A Claude Code documentation skeleton for Laravel projects that splits context into four layers by loading method: CLAUDE.md, rules, skills, and docs.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Provides initial file structures for CLAUDE.md, DESIGN.md, PLAN.md, and DECISIONS.md
.claude/rules/domain.md uses a paths glob to scope itself to app/Domains/**/*.php
Domain code goes in app/Domains with the namespace App\Domains\..., without changing composer.json
The README lists four content classification rules for deciding which layer new content belongs in
Template Details
This is a documentation skeleton for Laravel projects, intended for use with Claude Code. Its core idea is to layer context by how it is loaded: CLAUDE.md is loaded every turn, so it stays lean; rules under .claude/rules/ load only after matching a file path; skills load only when invoked and then persist for the session; everything else goes in the docs/ directory and is read only when referenced.
The repository provides a root CLAUDE.md and README.md, .claude/rules/domain.md (scoped to app/Domains/**/*.php), .claude/skills/README.md as the skill installation location, and under docs/: DESIGN.md (domain model, aggregates, events), PLAN.md (phased, plan-first implementation), and DECISIONS.md (lightweight ADR records), plus a reserved app/Domains directory.
To use it, start from a fresh Laravel application and copy these files into the project root: because laravel new and composer create-project require an empty directory, install Laravel first and then layer the skeleton on top. Domain code goes in app/Domains (namespace App\Domains\...), which autoloads without modifying composer.json. Then fill in the actual stack, versions, and commands in CLAUDE.md, replace the example aggregates in DESIGN.md, and adjust the glob in domain.md if the domain layer is not located at app/Domains.
The repository also gives four trade-off rules: put content needed every time in CLAUDE.md, content that applies only to specific files in .claude/rules/, process content in skills, and the rest in docs/; start with a small number of files and add more when a real need arises; rule files with a paths glob are preferable to nested CLAUDE.md files; skills are not disk storage and have executability and trigger uncertainty, so invariants should not be placed in skills.
Note that this is a documentation and directory skeleton; it contains no business implementation or build configuration. The subscription link and related articles in the README are the author's external content. The code is released under the MIT license, while third-party assets such as demo images, fonts, and icons must be checked separately for licensing.
Is it right for your project?
Use Cases
- Establishing initial documentation and directory structure for a Laravel project that uses Claude Code
- Splitting an overlong CLAUDE.md into rule files loaded by path
- Recording the domain model and phased implementation plan for a domain-driven Laravel project
Suitable For
- Teams or individuals doing Laravel development with Claude Code
- Developers who want to control context size and load project instructions on demand
- Projects that adopt app/Domains domain layering and need lightweight ADR records
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Create a fresh Laravel application first, then copy the skeleton files into the project root; the order cannot be reversed
- 2
Fill in the actual stack, versions, and commands in CLAUDE.md, and replace the example aggregates in docs/DESIGN.md
- 3
If the domain layer is not at app/Domains, adjust the glob in .claude/rules/domain.md
- 4
The repository is only a documentation skeleton and contains no business implementation; third-party assets and external services must be checked separately for licensing and costs
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version in the public repository under the MIT license; the free scope is the code in that version and does not mean external services or third-party assets are free.
Must comply with when using
- The code in this version may be used, modified, used commercially, and distributed free of charge.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- The README contains the author's email subscription promotional link (pointing to albertoarena.it/subscribe), which is external content, not a usage restriction; the subscription is optional and does not affect use of the code.
- Using it requires installing Laravel yourself first (laravel new or composer create-project); the skeleton itself contains no Laravel dependencies or build configuration and requires an external toolchain.
- The README cites two external blog posts by the author as explanatory sources, which require visiting an external site to read; this is not a code usage restriction.
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Occasional emails on Claude Code and AI-assisted Laravel development: new releases, packages, and write-ups. No spam, unsubscribe anytime.
Original README
Start from a fresh Laravel app, then copy these files into its root.
Original README
https://github.com/albertoarena/claude-code-laravel-starter/blob/main/LICENSEhttps://github.com/albertoarena/claude-code-laravel-starter/blob/main/README.mdIt's covered across two posts:
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 88 / 100
- Technologies
- Laravel
- Website type
- Documentation · Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-08-06
- Screenshot last checked
- 2026-10-03
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Laravel as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-04
Inspect the recorded source material
SHA-256: f00227c49961a6720711f1a7fa2d9ef04d071d26bcec5ca4151af4a6c27b63a3
2026-10-03T15:22:09.436Z
Source file / repository# claude-code-laravel-starter
A small, opinionated documentation skeleton for Laravel projects driven with
[Claude Code](https://www.anthropic.com/claude-code).
The idea in one line: **`CLAUDE.md` is RAM, `.claude/rules/` is demand-paged
RAM, skills are installed programs, and `docs/` is disk.** `CLAUDE.md` is
loaded on every turn, so it stays lean. Rules load only for the files they're
scoped to. Skills load only when invoked, then stay resident for the rest of
the session. Everything else lives in `docs/` and loads only when something
points to it.
## Structure
```
claude-code-laravel-starter/
├── CLAUDE.md # the lean anchor, auto-loaded every session
├── README.md # this file (for humans, not Claude)
├── .claude/
│ ├── rules/
│ │ └── domain.md # path-scoped: app/Domains/**/*.php only
│ └── skills/
│ └── README.md # where project skills get installed
├── docs/
│ ├── DESIGN.md # domain model, aggregates, events
│ ├── PLAN.md # phased, plan-first implementation
│ └── DECISIONS.md # lightweight ADR log
└── app/
└── Domains/ # your domain layer; see .claude/rules/domain.md
└── .gitkeep
```
## How to use it
1. Start from a fresh Laravel app, then copy these files into its root.
`laravel new` / `composer create-project` need an empty directory, so install
Laravel first and overlay the skeleton, not the other way round. The domain
lives in `app/Domains` (namespace `App\Domains\...`), so it autoloads with no
`composer.json` changes.
2. Fill in `CLAUDE.md` with your real stack, versions and commands.
3. Replace the example aggregate in `docs/DESIGN.md` with your own domain.
4. Adjust the glob in `.claude/rules/domain.md` if your domain layer doesn't
live at `app/Domains`.
5. Keep `CLAUDE.md` tight. When you catch yourself adding detail Claude needs
only occasionally, ask whether it's scoped to some files (`.claude/rules/`),
a procedure (`.claude/skills/`), or neither (`docs/`).
## Why not just one big CLAUDE.md?
Because every line of it stays resident in your context for the whole session,
and a 300-line file makes the session worse, not better. Splitting it by how
certainly and how often each piece of content is needed, not just into two
piles, is the full idea behind this repo. It's covered across two posts:
- [CLAUDE.md Is RAM, Not Disk](https://albertoarena.it/posts/claude-md-is-ram-not-disk/):
the original two-tier model.
- [CLAUDE.md Is RAM, Skills Are Not Disk](https://albertoarena.it/posts/claude-md-skills-are-not-disk/):
why skills needed their own tier, and the correction to the nested
`CLAUDE.md` trick from the first post.
## The four rules
1. If Claude needs it every time, it goes in `CLAUDE.md`. If it only applies to
files matching a pattern, it goes in `.claude/rules/`. If it's a procedure,
it goes in a skill. Otherwise, it goes in `docs/`.
2. Start small (`CLAUDE.md`, `DESIGN.md`, `PLAN.md`). Add a rule, a skill, or a
doc only when a real need shows up.
3. A `.claude/rules/*.md` file with a `paths:` glob beats a nested `CLAUDE.md`:
same on-demand loading, scoped by pattern instead of by folder, reviewable
in one place.
4. A skill is not disk. It's executable and probabilistic to trigger, so
invariants stay out of it; procedures are what belong there.
## 📬 Stay updated
Occasional emails on Claude Code and AI-assisted Laravel development: new releases, packages, and write-ups. No spam, unsubscribe anytime.
**[Subscribe to the newsletter →](https://albertoarena.it/subscribe/?utm_source=github&utm_medium=readme&utm_campaign=newsletter&utm_content=claude-code-laravel-starter)**
## License
MIT.
Explore similar templates
Compare previews and descriptions within the same stack and category.

sage
Sage is a WordPress starter theme maintained by Roots, using Laravel Blade components and templates, Vite builds, Tailwind CSS, and built-in block editor support.
Laravel · Starter

wave
Wave is an open-source SaaS starter kit built on Laravel and released under the MIT license.
Laravel · SaaS

filament-starter
A Laravel TALL stack starter template maintained by Log1x, with a preconfigured Filament admin panel and plugins including Curator, Gravatar, Exceptions, Jobs Monitor, Breezy, Peek, and Logger.
Laravel · Starter

electrik
Electrik is a Laravel SaaS starter kit installed as a Composer package, with authentication, teams, Stripe subscription billing, and the Slate 3 interface under the Electrik\ namespace rather than copied into App\.
Laravel · SaaS

php-saas
php-saas is a Laravel-based SaaS starter positioned as an everything-included kit. It generates new projects via a global Composer command and includes authentication with two-factor, API tokens, Stripe and Paddle billing, and project, team, and organization management.
Laravel · SaaS

filament-jetstream
A Laravel starter kit that implements Jetstream-like authentication and account features using Filament's native panels and components. It includes login, registration, two-factor authentication, session management, user profiles, and optional teams and API tokens.
Laravel · Starter
