Appearance
Starter Kits
Three complete Laravel 13 + Filament 5 apps with real content, a working admin panel and a test suite. Each is a public repository you clone and own. Pick the one closest to what you are building and change it until it is yours.
| Kit | Shape | Sample content | Tenancy |
|---|---|---|---|
| starter-site | Company website | Northbay Joinery, a workshop in Leith | One site |
| starter-store | Online shop | Kiln Street, a pottery in Bristol | One store |
| starter-multistore | Store platform | Stallhouse, with a tea shop and a plant shop | One store per merchant |
Install
You need PHP 8.3+, Composer 2 and a FilamentCraft license. No Node, no build step.
bash
git clone https://github.com/filamentcraft/starter-store my-shop
cd my-shop
composer setupcomposer setup asks for your license email and key, checks them against packages.filamentcraft.dev, installs the dependencies, creates a SQLite database, seeds the content and prints where to sign in. Then run composer dev and open http://localhost:8000. Every kit signs in as admin@example.com with the password password.
Setup never prompts when it finds credentials already: COMPOSER_AUTH, an auth.json, your global Composer credentials, or FILAMENTCRAFT_EMAIL and FILAMENTCRAFT_KEY in the environment. That makes it safe to run on servers and in CI.
Company site

A single-site install with public_routes on, so FilamentCraft serves every page from /.
- Five pages: home, work, services with pricing, about and contact.
- Header, footer and three color schemes set up as a coherent theme.
- A contact form whose messages land in the panel's Inbox.
- 21 photographs registered in the media library with alt text.
- Per-page SEO descriptions and a social card image.
- A dashboard listing every page with shortcuts into the editor.


The content is seeded from app/Blueprints, one class per page. After the first seed it lives in the database and is edited in the visual editor.
Online shop

A single store wired to FilamentCraft's commerce sections through a Storefront implementation backed by ordinary Eloquent models.
- 19 products in four categories, with photos, options, spec tables, sale prices and a sold-out item.
- Shop, product, basket and checkout pages. The product page is one dynamic template that serves
/products/{slug}. - Cash-on-delivery checkout that locks stock, creates the order and emails the customer.
- Filament resources for products, categories and orders. Orders move through confirm, ship and deliver; cancelling restocks. New orders ring the panel's notification bell.
- A dashboard with orders to handle, 30-day sales and stock alerts.





Store platform

A multi-tenant platform: anyone registers, opens a store and gets a storefront at /{store} straight away. It follows the Tenancy guide end to end.
Storeis both the Filament tenant and the site owner, viaFilamentCraftPlugin::tenantSites(Store::class)->allowSiteCreation(false).- Stores are served by
Route::filamentCraftTenant()with a reserved-slug pattern, so/appand the package's own routes are never mistaken for a store. - Registering a store builds its storefront from a site blueprint in the same request.
- Products, categories, orders, baskets and notifications are scoped per store, and each store has its own currency and order numbers.
- Two stores come seeded, each with its own theme, fonts and pages: Second Steep (tea, pounds) and Understory (plants, euros).




FilamentCraft's Storefront is one shared service, so the kit resolves the current store per call: from the site the tenant route bound, the store field on basket posts, the template being previewed in the editor, then the Filament tenant. The kit's CurrentStore class shows the pattern if you build your own multi-store app.
Keeping them current
The kits pin FilamentCraft with a caret constraint. After composer update, run php artisan filamentcraft:upgrade to publish new migrations and assets, and php artisan filamentcraft:doctor to check the result. Each kit's composer test runs Pint, PHPStan at level 6 and its Pest suite.
