Search by

larawellui / starter-kit

rkwebforge

This package is abandoned and no longer maintained. The author suggests using the bladewell/starter-kit package instead.

A Laravel starter kit with Bladewell Blade widgets, Tailwind CSS and AI agent setup, and no database. No React, Vue or Alpine.

Package info

github.com/rkwebforge/bladewell-starter-kit

Language:Blade

Type:project

pkg:composer/larawellui/starter-kit

Statistics

Installs: 24

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 2

v2026.10.14 2026-10-27 05:23 UTC

README

A Laravel starter kit with Bladewell widgets, Tailwind CSS and AI agents set up, and nothing else: no accounts, no database, no pages but the home page. You build what your app needs, or ask your agent to.

Plain Blade and a small vanilla JS module per widget: no React, Vue, Inertia or Alpine. Works under a strict Content Security Policy.

Requirements

  • PHP 8.3 or later
  • Composer
  • Node.js 20.19 or later (or 22.12 or later), for Vite 8

The full installation guide is at https://www.bladewellui.com/docs/installation#starter-kit.

Start a new app

Important

Don't git clone this repo to start an app. A clone keeps this repo's history and points origin here, and skips setup: no vendor/, no .env, no app key. Use composer create-project below: it gives you a clean copy of the latest release.

composer create-project bladewell/starter-kit my-app
cd my-app
npm install && npm run build
composer run dev

With the Laravel installer, laravel new my-app --using=bladewell/starter-kit does the same first step. (No laravel command? composer global require laravel/installer installs it.)

Sessions and the cache are kept in files, so there's no database to set up. .env already points at SQLite for when you add one.

What's included

  • A home page with a link to the widget catalogue and two prompts to copy into your agent: a login page and a sign-up page. Each tells the agent to set up the database and the User model if the app has none yet, build the page with working sign-in or sign-up, and install the widgets it uses.
  • The widgets the page needs: button, icon, dropdown (the theme menu) and modal (which the dropdown uses). Add any other with php artisan bladewell:add.
  • A Light / Dark / System theme menu, dark until someone picks another, applied before the page is drawn.
  • Error pages that say what happened in plain words, with a way home.
  • Browser security headers, a strict Content Security Policy included.

Security

Every security setting is in one file, config/security.php, with a comment on what changing it costs. Every page sends a strict Content Security Policy and the other browser security headers.

SECURITY.md has the full list, a checklist for going live, and what to change when your app adds Stripe, analytics, embedding or Livewire.

Where things live

routes/web.php                          the home page
resources/views/welcome.blade.php       the home page and its prompts
resources/views/errors/                 the error pages
app/Http/Middleware/SecurityHeaders.php the Content Security Policy and other browser security headers
config/security.php                     every security setting, explained
resources/views/components/layouts/     head (the <head> tags) and guest (centred card, used by the error pages)
resources/views/components/theme-toggle.blade.php   the Light / Dark / System menu
resources/js/theme.js, theme-boot.js    switching the theme, and applying it before the page is drawn
resources/js/copy.js                    the Copy buttons on the prompts
resources/views/components/widget/      Bladewell widgets: yours to edit
resources/js/widget/, resources/css/widget/
bladewell.lock                         which widget files you've edited; commit it

Widgets

The widgets are copied into your app, so you can change them freely. To add more:

php artisan bladewell:list
php artisan bladewell:add datepicker

Keeping widgets up to date

Your app keeps the widgets exactly as they were when you created it; nothing changes behind your back. New Bladewell releases bring fixes and new widgets, and you take them when you choose:

composer update bladewell/bladewell     # move to the newest 1.x release
php artisan bladewell:add --installed   # update the widget files you haven't edited
php artisan bladewell:diff              # see what changed in the ones you have
php artisan bladewell:add new-widget    # add a widget that's new in that release

bladewell:add --installed never overwrites a file you've edited: it reports it, and bladewell:diff shows the difference so you can merge by hand. bladewell.lock is how it tells them apart, so commit it.

Since 1.0, Bladewell only adds within a major version: component names, props, data-* hooks and commands are never renamed or removed, so composer update takes every 1.x release. An app made from a kit before 2026.10.5 requires ^0.3, which never goes past 0.3: move it with composer require --dev bladewell/bladewell:^1.1 first. Read the changelog for the widgets you use before moving.

AI agents

The kit is ready for AI coding agents (Claude Code, Codex, Cursor, Copilot and others):

  • Laravel Boost gives them this app's Laravel version, logs, errors, database schema (once it has one) and version-matched Laravel docs, through its MCP server (php artisan boost:mcp).
  • php artisan bladewell:mcp lets them look up every widget's props and examples, and install widgets.
  • CLAUDE.md and AGENTS.md tell them how to work here: the kit's rules (the Content Security Policy, config/security.php, tests), a careful working style, and Bladewell's own rules for its widgets, which come with the package (bladewell/bladewell is listed under packages in boost.json, so php artisan boost:update keeps them current).

Claude Code finds both MCP servers in .mcp.json by itself. For another agent, run php artisan boost:install and pick it: Boost writes that agent's MCP settings and instructions file; add bladewell (php artisan bladewell:mcp) next to laravel-boost there. CLAUDE.md and AGENTS.md are generated, so write your own rules in .ai/guidelines/, then run php artisan boost:update.

Commit these files: they're the project's instructions, so every agent and every teammate works by the same rules, and changes to them get reviewed like code. Your personal ones stay out of git: CLAUDE.local.md, .claude/settings.local.json, .codex/ and .cursor/ are in .gitignore. Never put API keys in .mcp.json; use environment variables.

Boost is a development dependency: deploy with composer install --no-dev and it isn't on your server.

Tests

php artisan test

The home page, the error pages and the security headers have feature tests in tests/Feature. Add one for each page you build.

Versions

The kit is versioned by date: 2026.10.0 is the first release of October 2026, and 2026.10.1 a fix to it. You copy a starter kit once rather than upgrade it, so the version says how fresh your copy is. CHANGELOG.md lists what each release changed.

License

MIT. See LICENSE.