Pure JSON API, no frontend, Blade, or Vite, with a unified response structure and admin endpoints under /admin
starter-laravel-api — Laravel Starter Template
By websanova
A Laravel-based pure JSON API starter with built-in Sanctum token authentication, account management, Stripe subscriptions, role permissions, notifications, and statistics.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Sanctum token authentication, including registration, login, logout, refresh, and password reset, with configurable token expiration
Stripe subscriptions integrated via Cashier, supporting subscribe, switch, cancel, resume, and promo codes
Spatie role permissions, database notifications and email, and daily database backups
Docker development environment with MySQL, Redis, Mailpit, and Stripe CLI, plus a Pest test suite
Template Details
This is a Laravel API starter that provides only JSON endpoints, with no frontend, Blade templates, or Vite build. The repository is positioned as a backend skeleton that pre-builds common API capabilities such as authentication, accounts, billing, and permissions, for developing specific business logic on top.
Authentication and accounts: Uses Sanctum token authentication, covering registration, login, logout, token refresh, and password reset, with configurable token expiration. Account verification is based on verification codes, supports multiple channels, the email channel is connected, the SMS channel is in a scaffold state, and each channel can be set to disabled, automatic, or required. Account self-service management includes profile, password, avatar, email change, language and timezone settings, and self-service deletion with a bandwidth limit.
Billing and subscriptions: Integrates Stripe via Cashier, supports subscriptions, plan switching, cancellation and resumption, multiple billing cycles, and the checkout flow is built by the client; plans support freemium, trial, or required modes, prices are synced from the provider, and automatic tax calculation is optional. Promo codes are validated with the provider, can be entered at checkout, and admins can also apply or clear them on existing subscriptions. Webhooks are idempotent, used to back up client synchronization and capture external changes, with no tunnel needed for local development.
Permissions, data, and operations: Uses Spatie to provide super admin and admin roles, with coarse-grained permissions and target-object checks. Example CRUD uses bookmarks and tags to demonstrate relationships, ownership scoping, filtering, sorting, and pagination. Statistics are grouped by resource and support date range breakdowns, plus subscription statistics by plan. Notifications are written to the database and sent by email, covering account and plan lifecycle events. Backups use Spatie to back up the database daily and clean up on a schedule. File storage uses S3, compatible with AWS or DigitalOcean Spaces, and avatars are cropped and resized on upload. Localization supports multilingual responses and per-user localized emails; adding a new language only requires placing it in the language directory.
Development environment: Provides Docker configuration including MySQL, Redis, Mailpit, and Stripe CLI, plus helper scripts and a Pest test suite. Email can connect to any SMTP provider, with Mailpit capturing locally.
Limitations and notes: The repository itself does not include a frontend interface and requires a client to be paired with it. The README states that the related commands are still experimental and the format is still being adjusted. The demo site screenshots come from the author's personal website, not the API repository's own interface.
Is it right for your project?
Use Cases
- Provide a backend API for clients such as mobile apps or Vue SPAs
- Projects that need an account system, token authentication, and account self-service management
- SaaS backends that need Stripe subscription billing, plan limits, and promo codes
- Admin-oriented APIs that need role permissions, in-app notifications, and subscription statistics
Suitable For
- Backend developers familiar with Laravel
- API projects that need a ready-made authentication and billing skeleton
- Teams planning to build their own frontend and reuse only the backend logic
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
The repository does not include a frontend; a client must be prepared separately or paired with a frontend project from the same series
- 2
The README mentions that the related commands are experimental and the format is still being adjusted
- 3
Local development depends on MySQL, Redis, Mailpit, and Stripe CLI in a Docker environment
- 4
Stripe-related features require configuring provider keys and webhooks yourself
- 5
The code is MIT licensed, but third-party assets such as demo images, fonts, and icons need separate license verification
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version of the public repository under the MIT license; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are allowed.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and liability limitations are governed by the original license and applicable law.
Additional costs & items to verify
- The README explicitly states that the related commands are still experimental and the format is still being adjusted, with no stability guarantee, and they should not be treated as a production-ready fixed interface.
- Billing features depend on Stripe and Laravel Cashier, requiring you to register a Stripe account and configure API keys and webhooks, which are external service requirements.
- File storage depends on external object storage services such as AWS S3 or DigitalOcean Spaces, requiring you to set up and configure credentials yourself.
- Email sending requires your own SMTP provider account and configuration, and local development relies on Mailpit to capture emails.
- The SMS channel for account verification is only in a scaffold state and is not actually connected; you need to integrate an SMS provider yourself to use it.
- The local development environment depends on Docker and requires components such as MySQL, Redis, Mailpit, and Stripe CLI.
- Demo images, fonts, icons, and other third-party assets need to be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
The commands are experimental and the format is still being tinkered with.
Original README
Stripe via Cashier out of the box, swappable without touching the rest of the app.
Original README
Off-server storage for AWS or DigitalOcean Spaces, with avatars cropped and resized on upload.
Original README
Any SMTP provider, with a local mail catcher and test command for dev.
Original README
Code-based, multi-channel verification (email wired, SMS scaffolded)
Original README
https://github.com/websanova/starter-laravel-api/blob/main/LICENSEhttps://github.com/websanova/starter-laravel-api/blob/main/README.mdDockerized with MySQL, Redis, Mailpit, and Stripe CLI, plus a helper script and Pest test suite.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 80 / 100
- Technologies
- Laravel
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-30
- Screenshot last checked
- 2026-10-01
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Laravel as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 6bae69c21f9b565f69cb0f1b49c28f524ea8cc6d5a9ca7c1499704bdbc18eaeb
2026-10-01T02:14:36.712Z
Source file / repository# Starter Laravel API A Laravel API starter with a full auth system, account management, and production-ready integrations out of the box. No frontend, no Blade, no Vite. Just a clean JSON API. Part of the Starters, built at [Websanova](https://www.websanova.com). ## Docs Full documentation at [websanova.com/docs/starter-api](https://www.websanova.com/docs/starter-api). - [Startup Guide](docs/startup-guide.md) - [Docker Guide](docs/docker-guide.md) - [Stripe Guide](docs/stripe-guide.md) - [Testing Guide](docs/testing-guide.md) - [Flows Guide](docs/flows-guide.md) ## Projects | Project | Repo | Demo | | ------- | ---- | ---- | | Starter Flows | [starter-flows](https://github.com/websanova/starter-flows) | [flows](https://starter-flows.websanova.com) | | Starter Laravel API | [starter-laravel-api](https://github.com/websanova/starter-laravel-api) | [api](https://starter-laravel-api.websanova.com) | | Starter Vue SPA | [starter-vue-spa](https://github.com/websanova/starter-vue-spa) | [app](https://starter-vue-spa-app.websanova.com), [admin](https://starter-vue-spa-admin.websanova.com) | ## Flows The starter-flows repo is a separate set of feature specs, implementation-agnostic so one spec covers both the API and the app. Nothing here depends on it, but if you point your `CLAUDE.local.md` at a local clone, the `/flow` command will compare any flow against this repo and tell you what's built, what's missing, and what the app expects it to expose. ## Notes - The commands are experimental and the format is still being tinkered with. The main idea is to not have the agent run wild without explicit go aheads and to remove reptitive explanations to help streamline workflow. Open to suggestions and feedback. ## Features * **API Structure** - JSON-only with consistent response shapes, admin endpoints on `/admin`, and translatable strings. * **Public Settings** - Centralized app settings on a public `/settings` endpoint for reuse across clients. * **Rate Limiting** - Global throttle on all routes, stricter on auth routes keyed by email + IP. * **Search (Fulltext)** - Drop-in fulltext search for any model that stays in sync automatically, used on users out of the box. * **Token Auth (Sanctum)** - Register, login, logout, refresh, and password reset with configurable token expiration. * **Account Verification** - Code-based, multi-channel verification (email wired, SMS scaffolded), each channel set to disabled, auto, or required. * **Account Self-Management** - Profile, password, avatar, email change, locale/timezone, and self-delete with a grace period. * **Preferences** - Saved client display state with defaults in config, stored partial so adding or removing one needs no migration, and scoped to keep admin preferences out of the app payload. * **User Delete & Restore** - Soft delete, anonymize, or hard delete, with admin restore, auto-restore on login, and scheduled prune. * **Sample CRUD (Bookmarks & Tags)** - Reference resources showing relationships, ownership scoping, filtering, sorting, and pagination. * **Plans** - Freemium, trial, or required modes with prices synced from the provider and optional automatic tax. * **Subscriptions** - Subscribe, swap, cancel, and resume with multiple billing intervals, client-built Stripe checkout, and enforced feature limits. * **Billing Providers (Cashier/Stripe)** - Stripe via Cashier out of the box, swappable without touching the rest of the app. * **Promotion Codes** - Validated against the provider and entered in checkout, with admin apply/clear on existing subscriptions. * **Webhooks (Cashier/Stripe)** - Idempotent webhooks that back up client sync and catch outside changes, with local dev needing no tunnel. * **Roles and Permissions (Spatie)** - Super and admin roles with coarse permissions and per-target checks. * **Stats** - Scheduled stats grouped by resource with date range breakdowns and per-plan subscription stats. * **Mail (Mailpit)** - Any SMTP provider, with a local mail catcher and test command for dev. * **Notifications** - Database-backed in-app notifications plus email for account and plan lifecycle events. * **Backups (Spatie)** - Daily database backups with scheduled cleanup. * **Localization (i18n)** - Multi-locale responses and per-user localized emails, add a language by dropping in a lang folder. * **File Storage (S3)** - Off-server storage for AWS or DigitalOcean Spaces, with avatars cropped and resized on upload. * **Dev Environment** - Dockerized with MySQL, Redis, Mailpit, and Stripe CLI, plus a helper script and Pest test suite. For the full breakdown, see the [features overview](https://websanova.com/docs/starter-api/intro/features). ## License MIT - see [LICENSE](LICENSE). --- Built and maintained by Rob at [Websanova](https://www.websanova.com). I take freelance and contract work, including MVP projects built on the Starters. Check out the [hire page](https://www.websanova.com/hire) for more info.
Explore similar templates
Compare previews and descriptions within the same stack and category.

sage
Sage is a WordPress starter theme maintained by Roots, using Laravel Blade components and templates, Vite builds, Tailwind CSS, and built-in block editor support.
Laravel · Starter

wave
Wave is an open-source SaaS starter kit built on Laravel and released under the MIT license.
Laravel · SaaS

filament-starter
A Laravel TALL stack starter template maintained by Log1x, with a preconfigured Filament admin panel and plugins including Curator, Gravatar, Exceptions, Jobs Monitor, Breezy, Peek, and Logger.
Laravel · Starter

electrik
Electrik is a Laravel SaaS starter kit installed as a Composer package, with authentication, teams, Stripe subscription billing, and the Slate 3 interface under the Electrik\ namespace rather than copied into App\.
Laravel · SaaS

php-saas
php-saas is a Laravel-based SaaS starter positioned as an everything-included kit. It generates new projects via a global Composer command and includes authentication with two-factor, API tokens, Stripe and Paddle billing, and project, team, and organization management.
Laravel · SaaS

filament-jetstream
A Laravel starter kit that implements Jetstream-like authentication and account features using Filament's native panels and components. It includes login, registration, two-factor authentication, session management, user profiles, and optional teams and API tokens.
Laravel · Starter
