LaravelDocumentationStarter

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.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-03View source

What stands out

A quick read of the recorded project description.

01

Organizes context into layers by loading method: CLAUDE.md, .claude/rules/, skills, and docs/

02

Provides initial file structures for CLAUDE.md, DESIGN.md, PLAN.md, and DECISIONS.md

03

.claude/rules/domain.md uses a paths glob to scope itself to app/Domains/**/*.php

04

Domain code goes in app/Domains with the namespace App\Domains\..., without changing composer.json

05

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.

LaravelDocumentationStarter

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. 1

    Create a fresh Laravel application first, then copy the skeleton files into the project root; the order cannot be reversed

  2. 2

    Fill in the actual stack, versions, and commands in CLAUDE.md, and replace the example aggregates in docs/DESIGN.md

  3. 3

    If the domain layer is not at app/Domains, adjust the glob in .claude/rules/domain.md

  4. 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

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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

It's covered across two posts:

Original README
https://github.com/albertoarena/claude-code-laravel-starter/blob/main/LICENSEhttps://github.com/albertoarena/claude-code-laravel-starter/blob/main/README.md

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.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.