DEV3 Technologies home

DEV3 Keelstart – Laravel SaaS Boilerplate with Teams, Subscriptions, Proration, Filament Admin, API and Webhooks

Laravel 12 and Filament 4 SaaS starter kit: teams and roles, plans, trials, subscriptions with proration, coupons, seats, metered limits, invoices, operator and customer panels, API tokens, webhooks, 38 guides and a module generator. Web installer and demo data included. No mobile apps.
by DEV3 TechnologiesVerified Author(0) 0 sales 2 viewsUpdated 13 Nov 2026

Video tour. Pick a section below to browse 35 screenshots in 6 sections.

App & phone tours

Tap play to watch each app. Nothing downloads until you do.

  • Mobile web0:19

Keelstart is a Laravel 12 and Filament 4 starter kit for building your own SaaS, made by DEV3 Technologies. It is the part every subscription product needs before its first feature: teams and invitations, roles, plans, trials, subscriptions, proration, coupons, seats, usage limits, invoices, an operator admin panel, a customer app panel, an API with team tokens, outgoing webhooks, a public site with pricing and docs, and a working example module you can copy or delete. You build your product on top. The cores are plain code in your repository under packages/keelstart, not a hidden dependency.

No live demo: grouped screenshots and two video tours show the public site, the customer app, the operator panel and the docs. Install it with the demo data to try every role on your own server. This is a web application with a REST API: there are no mobile apps.

For your customers (the team panel)

  • Teams and roles: one account can belong to several teams. Owner, admin, member and billing roles, a role matrix page, invitations with expiry (the token is stored hashed and must match the invited email), a last-owner rule and a seat check before anyone is invited.
  • Billing page: plan cards with a monthly and yearly toggle, usage meters, invoices with PDF download, cancel and resume, and a proration preview that shows the credit for unused time and the charge for the rest before anything is paid.
  • Metered limits: a count limit (projects) and a monthly metered limit (tasks) with warnings at 80 and 100 percent, a soft block with an upgrade prompt, and an atomic counter that does not overshoot under parallel requests.
  • Developers: team API tokens whose abilities are capped by the owner's current role, signed outgoing webhooks with delivery history, retries and resend, an audit log and an OpenAPI document.

For you (the operator panel)

  • Tenants, users, subscriptions, plans, invoices, coupons, feature flags with per-team overrides, announcements, a changelog, contact messages and payments.
  • A dashboard with MRR, ARR, active tenants, trials and churn, an MRR chart and a plan mix chart.
  • Impersonation with a required reason, a 30 minute limit, view-only by default and a log of every session. Staff accounts cannot be impersonated.

Billing that adds up

Proration by seconds in UTC, tax per invoice line, integer money with half-up rounding, coupons (percent or fixed, once, repeating or forever), purchasable seats, dunning with retries on days 1, 3 and 5 and a seven day grace period, and checkout that is safe to repeat: eight parallel checkouts with one key give one payment. Payments are simulated until you add your own gateway keys; Stripe and Razorpay adapters are included.

The public site and docs

A landing page, a pricing page read from your plans table, a sign-up with a magic link, a changelog, legal pages, a contact form with a honeypot and rate limit, and a docs section with 38 guides, a table of contents and search. A second layout, a demo SaaS landing for the example module, shows what your own product page can look like.

Build your product on it

  • Module generator: php artisan make:keelstart-module Quotes --tenant --api --panel --fields=... creates the model, migration, policy, Filament resource, API controller, ability and tests for a new tenant-scoped feature. keelstart:remove-example deletes the example module cleanly.
  • Tenancy rules are enforced and tested: a test walks every tenant model and every panel URL for cross-team access.
  • Races are tested on MySQL: 13 race groups run real parallel HTTP calls and artisan processes against the database (double checkout, one invitation accepted six times, metered usage at the limit, a payment completed six times).

What you get

The complete Laravel application, the web installer, a prebuilt asset bundle (Node.js is not needed to run it), Documentation/index.html, START-HERE.txt and LICENSE.txt. Demo data covers 40 teams, 260 users, about 300 invoices over 18 months, 1,198 projects, 18,000 tasks, 300 webhook deliveries and 1,500 audit entries. Support is included for 6 months.

Good to know

  • A starting codebase, not a finished niche app. You add your own product features, brand and legal text.
  • Card payments are simulated until you add gateway keys. On a real gateway an upgrade or a seat purchase sends the customer to checkout and applies when the payment succeeds. Charging a stored card on renewal is yours to add; a clearly marked place for it is in the code and documented.
  • Notifications are mail only: there is no in-app push channel in version 1.
  • Web only. There is no front-end variant for Inertia or Vue in this release.
  • Licence: the Regular licence covers one end product for you or one client. If you sell your SaaS to paying customers you need the Extended licence.
  • Name: Keelstart is a working name checked by a web search only, not a trademark clearance. All teams, people and data in the screenshots are fictional.
  • Use MySQL or MariaDB for a live site, and one cron entry every minute.

Quality checks

Keelstart 1.0.0 passed the seven checks of the DEV3 Laravel suite on the final code: composer validation, syntax, code style and Larastan level 6 (0 errors), 369 tests (Pest), a production build with 21 KB of gzipped JavaScript and CSS on the public pages, seeding of the empty and demo data on MySQL and SQLite, a headless browser run with 40 pages, 20 happy paths and the 13 race groups, an install test from the packaged zip and a secret scan.

How it's built

Architecture, stack, key decisions and the quality gates DEV3 Keelstart passed before release.

The engineering behind Keelstart: proration by seconds in UTC, a checkout that repeats safely, an invoice-locked payment step, metered limits that do not overshoot, hashed invitation tokens and a tenancy layer a test walks end to end.

The problem it solves

Billing code fails when two things happen at once: a customer double-clicks upgrade, a payment webhook arrives six times, two teammates take the last seat, a metered limit is hit by parallel requests. Each case has to end with one payment, one subscription and one invoice, and every query has to stay inside one team.

Architecture and approach

Keelstart is a Laravel 12 application with a Filament 4 operator panel and customer panel, built on two in-repo packages: a core (installer, branding, settings, payments, roles) and a SaaS layer (plans, subscriptions, invoices, teams, limits).

Money

All amounts are integer minor units with half-up rounding. Proration works in seconds on UTC period boundaries: the credit for unused time and the charge for the rest become invoice lines with tax per line. Plan changes, seat purchases and renewals all apply in one invoice-locked step that runs only when a payment succeeds.

Repeat-safe checkout

Checkout takes an idempotency key, or builds a fingerprint of team, plan, interval, seats and coupon while one is pending. Coupon redemptions are reserved under a row lock so a limited coupon cannot be used by four checkouts at once.

Tenancy

Team-owned models are scoped by a team id that comes from the session or the API token, never from the request body. A test enumerates every tenant model and every panel record URL and tries to read another team's row.

Races on a real database

Pest runs on SQLite, where row locks do nothing, so 13 race groups run parallel HTTP calls and artisan processes against MySQL: eight checkouts with one key, a payment completed six times, one invitation accepted from six sessions, usage consumed at the limit.

Quality gates and results

The suite has 369 tests and Larastan level 6 reports no errors. The race groups pass on MySQL with four PHP workers, and a command reconciles invoices, usage and subscriptions after the demo seed. The demo world has 40 teams and about 300 invoices over 18 months, all created through the same services the app uses.

Tech stack

Area Technologies
Application Laravel 12, Filament 4, Livewire, REST API
Data MySQL 8, SQLite
Frontend Tailwind CSS 4, Vite
Quality Pest, Larastan level 6, Playwright

Inside the build

Launch faster: the Keelstart home page with the hull hero, the generator terminal and the promise in one headline. Launch faster — the Keelstart home page with the hull hero, the generator terminal and the promise in one headline.

What is included: twenty SaaS building blocks, each one tested, in one grid. What is included — twenty SaaS building blocks, each one tested, in one grid.

Guides & articles

Practical guides and engineering write-ups for DEV3 Keelstart.

Laravel SaaS boilerplate: 6 things to check before you pick one

Last updated
Laravel SaaS boilerplate: 6 things to check before you pick one: DEV3 Keelstart

A SaaS starter kit is easy to demo and hard to trust. The questions that matter come after the first subscription works. Here are six things to check before you pick a Laravel boilerplate, with DEV3 Keelstart as the worked example.

The Keelstart home page

1. Do teams and roles come with the kit?

Most products need more than one login per customer. Check for teams, invitations that expire, roles you can see in a matrix and a rule that stops the last owner leaving. In Keelstart an invitation token is stored hashed and only works for the invited email.

The roles matrix of a team

2. Does proration show its working?

An upgrade in the middle of a period should show the credit for unused time and the charge for the rest before anything is paid. Ask how the maths rounds and where tax is applied. Keelstart prorates by seconds in UTC and applies tax per invoice line.

The upgrade preview before payment

3. What happens on a double click?

A customer who clicks upgrade twice, or a payment webhook that arrives six times, should give one payment and one subscription. Ask whether the races are tested on the database you will run, not only on SQLite. Keelstart runs 13 race groups against MySQL.

4. Are limits atomic?

A plan with a task allowance must not allow 105 tasks when 100 requests arrive together. Look for a counter that locks, warnings before the limit and an upgrade prompt after it.

Webhook endpoints with deliveries and resend

5. Can you run the business from the admin?

You need tenants, subscriptions, invoices, coupons, feature flags and announcements, plus a way to see what a customer sees. Impersonation should need a reason, expire and leave a log.

The operator dashboard with MRR and churn

Video tour of Keelstart

6. How do you add your own feature?

A boilerplate earns its keep when your tenth feature is as safe as its first. Look for a generator that creates the model, policy, panel resource, API route and tests together.

The module generator on the docs page

Limits to weigh

A starter kit is a starting codebase, not a finished product. Payments are simulated until you add gateway keys, notifications are mail only in version 1, and there is no Inertia or Vue variant. Check those against your plan.

Frequently asked questions

The complete source code (version 1.0.0) as a download from your account, with the setup and usage guides shown on this page. You can modify the code to suit your product.

Questions about this product (0)

Answers from the DEV3 team and the community.

Ask a question

No questions yet.

Wondering about setup, licensing or customisation? Ask, and the DEV3 team will help.

More from this author

View all

Related in Enterprise SaaS Starters

View all