akrista / bizkit
The official Laravel starter kit for Livewire.
Requires
- php: ^8.3
- dedoc/scramble: ^0.13.26
- laravel/ai: ^0.7.2
- laravel/chisel: ^0.1.1
- laravel/fortify: ^1.37.2
- laravel/framework: ^13.13
- laravel/horizon: ^5.47.1
- laravel/octane: ^2.17.4
- laravel/pennant: ^1.23
- laravel/prompts: ^0.3.18
- laravel/pulse: ^1.7.3
- laravel/reverb: ^1.10.2
- laravel/tinker: ^3.0.2
- league/flysystem-aws-s3-v3: 3.0
- livewire/flux: ^2.14.1
- livewire/livewire: ^4.3.1
- scalar/laravel: dev-main
Requires (Dev)
- barryvdh/laravel-ide-helper: ^3.7
- driftingly/rector-laravel: ^2.5
- fakerphp/faker: ^1.24.1
- larastan/larastan: ^3.10.0
- laravel/boost: ^2.4.8
- laravel/pail: ^1.2.7
- laravel/pao: ^1.1.0
- laravel/pint: ^1.29.1
- laravel/sail: ^1.61
- mockery/mockery: ^1.6.12
- nunomaduro/collision: ^8.9.4
- pestphp/pest: ^4.7.2
- pestphp/pest-plugin-browser: ^4.3.1
- pestphp/pest-plugin-laravel: ^4.1
- pestphp/pest-plugin-type-coverage: ^4.0.4
- phpunit/phpunit: ^12.5.28
- rector/rector: ^2.4.5
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2026-06-10 03:16:17 UTC
README
Bizkit is a batteries-included Laravel starter kit based on Laravel Starter Kits. It is designed to serve as a complete and robust baseline to rapidly bootstrap both complex and simple Laravel applications.
Bizkit is a personal Laravel starter kit built for visual excellence, modern reactivity, and developer ergonomics. While built primarily as a personal foundation, contributions are welcome, and the project is fully licensed under the MIT license.
Key Features
π Performance & Real-time
- Octane with FrankenPHP: Pre-configured high-performance application serving with FrankenPHP.
- Reverb: Native, lightning-fast WebSockets for real-time Laravel broadcasting.
- Horizon: Beautiful Redis queue monitor dashboard to oversee job processing.
- Pulse: Real-time application performance and resource monitoring. Database support: MySQL, MariaDB, or PostgreSQL only β Pulse is not compatible with SQLite/MSSQL.
π‘οΈ Authentication & Security
- Robust Authentication: Powered by Laravel Fortify featuring secure registration, email verification, and password resets.
- Passkey/WebAuthn: Out-of-the-box native passwordless authentication.
- Two-Factor Authentication (2FA): One-Time Password (OTP) verification with TOTP & recovery codes.
π οΈ Developer Experience & Architecture
- Interactive UI: Powered by Livewire v4 and beautiful Flux UI components.
- API Routing & Documentation: Integrated API routing with automatic interactive documentation via Dedoc Scramble and Scalar.
- S3 Filesystem: Pre-configured support for AWS S3 file storage.
- Production-Ready Docker: Containerized with a multi-stage Alpine Linux image running FrankenPHP, Supervisor, and Supercronic scheduler.
- Feature Flags: Native feature flagging and targeting built with Laravel Pennant.
- Quality Baseline: Pre-configured linting, analysis, and testing using Pint, Rector, Larastan, and Pest PHP.
Upstream Upgrade System
To ensure that projects started with Bizkit can receive upstream template updates with minimal friction, Bizkit features an interactive self-updating CLI tool. It compares your local code against the lighthouse repository and lets you selectively merge improvements.
Usage Commands
Ensure your Git working tree is clean before running upgrades:
# 1. Dry run (preview pending changes only) php artisan bizkit:upgrade --dry-run # 2. Perform interactive merge comparing against the latest stable release php artisan bizkit:upgrade # 3. Pull bleeding-edge updates from the development branch php artisan bizkit:upgrade --dev
When file differences are detected, the command runs an interactive diff selection where you can choose whether to keep your custom code or adopt the upstream version. The sync state is recorded in bizkit.json.
Installation & Setup
Prerequisites
Ensure you have PHP 8.5+, Composer, Git, and Bun installed globally.
Important
Windows Users: Because Laravel Horizon requires pcntl and posix extensions (which are not natively supported on Windows), you should append --ignore-platform-req=ext-pcntl --ignore-platform-req=ext-posix to Composer commands (such as composer require, composer update, or composer install).
Quick Start
-
Bootstrap the project:
composer create-project akrista/bizkit my-awesome-app cd my-awesome-app -
Initialize services and build assets:
composer run setup
-
Start the local development environment:
composer run dev
Future Roadmap
The following features are planned for future releases of Bizkit:
- π Application Documentation: A comprehensive documentation site/viewer built into the kit.
- π Webhooks: Outbound webhooks and subscription management for integrations.
- π Permissions & Roles: Advanced granular access control out of the box.
Project Structure
βββ app/
β βββ Actions/Fortify/ # Fortify registration and 2FA logic
β βββ Http/Responses/ # Custom Fortify response overrides
β βββ Livewire/ # Interactive Livewire components
β βββ Models/ # Core Eloquent models (User, Team, Membership)
β βββ Console/Commands/Upgrade/ # Downstream upgrade system code
βββ config/ # Application configuration overrides
βββ database/migrations/ # Fortify, Passkeys, Pulse, and Teams tables
βββ deployment/ # Docker deployment configs (Caddyfile, supervisord)
βββ resources/views/ # Blade views and Flux UI layouts
βββ bizkit.json # Local upgrade status receipt
License
Bizkit is open-sourced software licensed under the MIT license.
TODO
A consolidated backlog of work for this project. Items are grouped by status and source so contributors can pick up where scaffolding left off.
Declared Roadmap (from "Future Roadmap" section)
- Application Documentation β Build an in-app documentation site/viewer for the kit (routes, components, and a renderer that scans the codebase to produce reference pages).
- Webhooks β Implement outbound webhook delivery and a subscription management UI so apps can broadcast events to third parties with retries, signing, and logs.
- Permissions & Roles β Add an advanced, granular access-control layer on top of the existing
TeamPermission/TeamRoleenums, including aPermissiontable, gate definitions, and a policy generator.
Partially Implemented (scaffolding present, finish needed)
- AI / Agent scaffolding β Stubs exist in
stubs/(agent.stub,structured-agent.stub,tool.stub,agent-middleware.stub) and theagent_conversationsmigration is shipped, but there is nomake:agentArtisan command, no example agents underapp/Ai/, and noagent_conversationsmodel/relations. Wire these up so the kit can actually generate and run agents. - Filament admin panel β
app/Providers/Filament/AdminPanelProvider.phpandconfig/filament.phpare present, but noapp/Filament/Resources, Pages, or Widgets are committed. Add a baseline admin shell (e.g.,UserResource,TeamResource) and document how to extend it. - Upstream upgrade CLI β
php artisan bizkit:upgradeis wired throughapp/Console/Commands/UpgradeCommand.phpwithFileClassifier+FileStatus, butbizkit.jsoncurrently only tracks{version, repository}. Add a per-file sync state map and a--status/--resetsubcommand to introspect or clear it. - API surface β
routes/api.phponly exposes the default/userSanctum endpoint. Add versioned API routes (routes/api/v1.php) with a token-issuing endpoint, and configure Scramble + Scalar to document them. - Dashboard page β
resources/views/dashboard.blade.phpis the only authenticated landing page and currently shows the placeholder. Build a real dashboard view (stats cards, recent activity) that demonstrates the layout. - Welcome page polish β
resources/views/welcome.blade.phpis a marketing surface; add the hero, feature grid, and footer sections referenced in the kit's design language.
Auth, Security & Teams (extending what exists)
- Passkey UX tests β Only the
SecurityTestcovers 2FA. Add feature tests for passkey registration, passkey login, and passkey removal flows. - Team invitations β
TeamInvitationTestexists, but there is no test for invitation expiry, reuse-after-acceptance, or email throttling. Cover these edge cases. - Team-switcher component β
resources/views/components/β‘team-switcher.blade.phpis present; verify it works end-to-end with the team-scoped routes andSetTeamUrlDefaultsmiddleware, then add a regression test. - Session/device management β Add a "Sessions" section under
settings/securitylisting and revoking active sessions/devices.
Quality, Tooling & CI
- Bring CI in line with composer β
composer.jsonrequires PHP^8.3, butboost.jsonand the README claim 8.5, andtests.ymlonly matrixes 8.3/8.4/8.5. Pin a single supported floor (8.3) in docs and align the matrix. - Bun vs npm in CI β
.github/workflows/tests.ymlusesnpm i/npm run build, but the project depends on Bun (per README andcomposer.jsonscripts). Switch CI tobun install/bun run buildto match local development. - Lint workflow coverage β
.github/workflows/lint.ymlonly runs Pint viacomposer lint; it skips Rector, Larastan, and Pest. Wire the fullcomposer testscript into CI (or add a separateci.yml) so type coverage and static analysis are gated. - Type coverage gate β
composer.jsonexposestest:type-coverageat 100%, but the gate isn't enforced in CI. Add acomposer ci:checkjob. - Browser tests β
pestphp/pest-plugin-browseris a dev dependency but notests/Browser/directory exists. Add at least one smoke test (e.g., login β dashboard) to validate JS-rendered flows. - Filament tests β No tests exist for the (planned) Filament resources. When added, include
arch()coverage so admin classes follow the kit's conventions.
Deployment & Infrastructure
- Compose example β
compose.example.ymlexists, but there's no publishedcompose.ymlfor Laravel Cloud / local Docker Compose workflows. Promote it and document the env vars. - Laravel Cloud readiness β
boost.jsonenablescloud: true; add acloudworkflow file (or document the deploy command) and verifyherd.ymlworks for Laravel Cloud. - Nightwatch toggle β
boost.jsonhasnightwatch: false; add a contributor note for when to flip it and whichNIGHTWATCH_*env vars must be set. - FrankenPHP supervisor profiles β
deployment/has split files (supervisord.frankenphp.conf,.horizon.conf,.reverb.conf,.scheduler.conf,.worker.conf,.services.conf,.inertia.conf). Consolidate the README's "Production-Ready Docker" section to list exactly which supervisord configs ship and in which combinations.
Developer Experience
-
composer run setupsmoke test β Confirm the setup script works on a fresh clone (creates.env, generates key, migrates, installs Bun packages, builds assets) and capture any missing prerequisites (Bun, Node) in aCONTRIBUTINGtroubleshooting table. -
bizkit:upgradedocumentation β Document the interactive diff UI, thebizkit.jsonschema, and the conflict-resolution rules in the README. - Local Octane guide β Octane is installed but no
composer run octanescript exists. Add one (e.g.,php artisan octane:start --watch) and a one-paragraph guide. - Reverb dev recipe β Add
php artisan reverb:startto thedevscript alongside the queue, vite, and pail watchers. - Pint preset β
pint.jsonexists; document the rule overrides and add apint.jsoncomment block explaining which Laravel preset is used.
Documentation
- Architecture decision records β Create
docs/adr/(or similar) covering: Octane+FrankenPHP choice, team-scoped routing, Pennant for feature flags, and AI SDK integration shape. - Stubs reference β Document each stub in
stubs/(what command consumes it, what gets generated, and an example of the produced class). - README badges β Add CI status, code coverage, and Packagist download badges near the existing version badges.
- License file β README links to
LICENSE.mdbut onlyLICENSEis present. Either rename or update the link. - CONTRIBUTING guide β
CONTRIBUTINGfile exists (no extension); rename toCONTRIBUTING.mdso GitHub renders it.
Nice-to-have
- Activity log integration β
spatie/laravel-activitylogis not installed; if team actions need an audit trail, add it as an opt-in package with a migration stub. - Billing / Cashier β Decide whether Stripe / Paddle integration is in scope; if yes, ship a
composer require laravel/cashierrecipe. - Marketing site generator β Provide a
php artisan bizkit:make:landingcommand that scaffolds apages/marketing/*.blade.phpset using Flux UI primitives. - Theming β Add dark/light theme tokens in
resources/css/(Tailwind v4) and document how to brand a Bizkit app.