LaravelStarter

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.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-01View source

What stands out

A quick read of the recorded project description.

01

Pure JSON API, no frontend, Blade, or Vite, with a unified response structure and admin endpoints under /admin

02

Sanctum token authentication, including registration, login, logout, refresh, and password reset, with configurable token expiration

03

Stripe subscriptions integrated via Cashier, supporting subscribe, switch, cancel, resume, and promo codes

04

Spatie role permissions, database notifications and email, and daily database backups

05

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.

LaravelStarter

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. 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. 2

    The README mentions that the related commands are experimental and the format is still being adjusted

  3. 3

    Local development depends on MySQL, Redis, Mailpit, and Stripe CLI in a Docker environment

  4. 4

    Stripe-related features require configuring provider keys and webhooks yourself

  5. 5

    The code is MIT licensed, but third-party assets such as demo images, fonts, and icons need separate license verification

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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

Dockerized with MySQL, Redis, Mailpit, and Stripe CLI, plus a helper script and Pest test suite.

Original README
https://github.com/websanova/starter-laravel-api/blob/main/LICENSEhttps://github.com/websanova/starter-laravel-api/blob/main/README.md

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.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.