joshcirre / fission
An opinionated starter kit for building Laravel applications.
Requires
- php: ^8.4
- laravel/framework: ^13.0
- laravel/prompts: ^0.3
- laravel/tinker: ^3.0
- livewire/blaze: ^1.0
- livewire/flux: ^2.0
- livewire/flux-pro: ^2.0
- livewire/livewire: ^4.0@beta
- nunomaduro/essentials: ^1.0
Requires (Dev)
- fakerphp/faker: ^1.23
- joshcirre/instruckt-laravel: ^0.4.16
- larastan/larastan: ^3.4
- laravel/boost: ^2.0
- laravel/pail: ^1.2.2
- laravel/pint: ^1.18
- laravel/sail: ^1.41
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.0
- peckphp/peck: ^0.1.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- rector/rector: ^2.0
README
Important
This is an opinionated starter kit created by me (Josh Cirre) using Laravel Livewire and Livewire Flux. While PRs are welcome, this is designed to fit the needs of one person.
Tip
Clone the repository and run composer setup to get started quickly. See Installation below.
TweakFlux — Deep Theming for Flux UI
Fission pairs well with TweakFlux, a theming package that lets you transform every Flux component with a single command. Override Tailwind v4 CSS custom properties to apply 20+ preset themes or generate your own — zero vendor files touched.
composer global require joshcirre/tweakflux tweakflux apply bubblegum
Why Does This Exist?
Up until Livewire Flux released, I used Breeze as a starting point for 99% of new projects that I would create. Typically, those new projects were built for demos on videos or starting points for tutorials. In addition, I would start side projects or app ideas with Breeze, as well.
Eventually I knew I wanted to create my own starting kit that worked well for what I needed in most scenarios. Authentication and a dashboard where I can start writing code.
Once Livewire Flux released, it was the perfect time to make this happen.
Flux License Required
A license for Flux (technically, "Flux Pro") is required to use Fission. Fission does not contain any of Flux's CSS, built CSS, or Blade components. However, if you do not have a license there are only two components used in the Flux Pro version (Toast and Card). Feel free to remove them from the starter kit.
Installation
Quick Start (Recommended)
git clone https://github.com/joshcirre/fission.git my-project
cd my-project
composer setup
Using Composer Create-Project
composer create-project joshcirre/fission my-project
cd my-project
composer setup
Note
The laravel new --using flag is not recommended due to archive extraction issues with special characters in filenames.
The composer setup command handles:
- Dependency installation
- Environment configuration (.env)
- Application key generation
- SQLite database creation
- Flux Pro credential setup
- Optional teams scaffolding (defaults to no during install)
- Database migrations
- Project name configuration
- NPM dependency installation
- Asset building
During installation, Fission will ask whether you want full teams support.
- Choose
yesto keep team creation, switching, invitations, and member role management. - Choose
noto remove the team-specific backend, routes, views, and tests before setup finishes.
Working With Teams
When teams are enabled, Fission follows the starter-kit pattern for team-aware features:
- Store the active team on the user via
current_team_idand switch context from the team switcher UI. - Put team-owned features under a team URL when the page itself is team-specific, for example
/{team}/playground. - Model team-owned records with a
team_idforeign key and query through the bound team, not globally. - Authorize access through team membership or team policies, for example
->can('view', 'team')on routes. - Keep generic account pages like
/profileunscoped unless the page is explicitly about a team.
Development
composer dev # Start server, queue, logs, and Vite
Code Quality
Fission enforces strict code quality through automated tooling:
composer fix # Fix everything: types, refactoring, formatting composer test # Run all checks: tests, linting, types, refactoring
| Command | Purpose |
|---|---|
composer fix |
PHPStan → Rector → Prettier → Pint |
composer test |
Typos → Pest → Lint check → PHPStan → Rector dry-run |
composer lint |
Pint + Prettier (quick format) |
composer refactor |
Rector only |
Individual Test Commands
composer test:unit # Pest tests (parallel) composer test:unit:coverage # Pest with coverage composer test:types # PHPStan analysis composer test:lint # Check formatting (no fix) composer test:refactor # Rector dry-run composer test:typos # Peck typo checker
Tooling Stack
- Pest - Testing framework
- PHPStan + Larastan - Static analysis (max level)
- Rector - Automated refactoring
- Pint - PHP code style (strict Laravel)
- Prettier - JS/CSS formatting
- Peck - Typo detection
Recommended AI Skills
If you use AI coding assistants with this project, these skills provide useful context for the stack:
| Skill | Install |
|---|---|
| Flux UI Development — Flux UI component usage, variants, and patterns | npx skills add laravel/boost --skill fluxui-development |
| Livewire Development — Livewire 4 component patterns, directives, islands, and testing | npx skills add spatie/freek.dev@livewire-development |
| TweakFlux Theme Generator — Generate custom Flux UI themes from descriptions or palettes | tweakflux boost (requires joshcirre/tweakflux) |
| Playwriter — Control your actual Chrome browser from AI agents (requires Chrome extension) | Included in .agents/skills/ · CLI: npm i -g playwriter |
Expect CLI — Adversarial browser testing for code changes (requires npm i -g expect-cli) |
Included in .agents/skills/ · Init: npx -y expect-cli@latest init |
License
The Fission starter kit is open-sourced software licensed under the MIT license.
