PHPackages                             daem0ndev/laravel-spark - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. daem0ndev/laravel-spark

ActiveLibrary[Framework](/categories/framework)

daem0ndev/laravel-spark
=======================

Laravel Spark provides a starter scaffolding for Laravel SaaS applications.

825199[1 issues](https://github.com/daem0ndev/laravel-spark/issues)PHP

Since Feb 29Pushed 10y ago6 watchersCompare

[ Source](https://github.com/daem0ndev/laravel-spark)[ Packagist](https://packagist.org/packages/daem0ndev/laravel-spark)[ RSS](/packages/daem0ndev-laravel-spark/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Spark
=====

[](#spark)

- [Introduction](#introduction)
- [Installation](#installation)
- [Defining Subscription Plans](#defining-subscription-plans)
- [Teams](#teams)
- [Customizing Spark Views](#customizing-spark-views)
- [Customizing Spark JavaScript](#customizing-spark-javascript)

Introduction
------------

[](#introduction)

**This is an alpha, experimental release of Spark. Things will change. Things will break. Thank you for testing!**

Spark is an experimental project primarily intended for building business oriented SaaS applications, and is highly opinionated towards that use case.

Installation
------------

[](#installation)

First, install the Spark installer and make sure that the global Composer `bin` directory is within your system's `$PATH`:

```
	composer global require "laravel/spark-installer=~1.0"

```

Next, create a new Laravel application and install Spark:

```
	laravel new application

	cd application

	spark install

```

After installing Spark, be sure to migrate your database, install the NPM dependencies, and run the `gulp` command. You should also set the `AUTHY_KEY`, `STRIPE_KEY`, and `STRIPE_SECRET` environment variables in your `.env` file.

You may also wish to review the `SparkServiceProvider` class that was installed in your application. This provider is the central location for customizing your Spark installation.

Defining Subscription Plans
---------------------------

[](#defining-subscription-plans)

Subscription plans may be defined in your `app/Providers/SparkServiceProvider.php` file. This file contains a `customizeSubscriptionPlans` method. Within this method, you may define all of your application's subscription plans. There are a few examples in the method to get you started.

When defining a Spark plan, the `plan` method accepts two arguments: the name of the plan and the Stripe ID of the plan. Be sure that the Stripe ID given to the `plan` method corresponds to a plan ID on your Stripe account:

```
	Spark::plan('Display Name', 'stripe-id')
		->price(10)
		->features([
			//
		]);
```

### Yearly Plans

[](#yearly-plans)

To define a yearly plan, simply call the `yearly` method on the plan definition:

```
	Spark::plan('Basic', 'basic-yearly')
		->price(100)
		->yearly()
		->features(
			//
		);
```

### Coupons

[](#coupons)

To use a coupon, simply create the coupon on Stripe and access the `/register` route with a `coupon` query string variable that matches the ID of the coupon on Stripe.

```
    http://stripe.app/register?coupon=code

```

Site-wide promotions may be run using the `Spark::promotion` method within your `SparkServiceProvider`:

```
	Spark::promotion('coupon-code');
```

Teams
-----

[](#teams)

To enable teams, simply use the `CanJoinTeams` trait on your `User` model. The trait has already been imported in the top of the file, so you only need to add it to the model itself:

```
	class User extends Model implements TwoFactorAuthenticatableContract,
	                                    BillableContract,
	                                    CanResetPasswordContract
	{
	    use Billable, CanJoinTeams, CanResetPassword, TwoFactorAuthenticatable;
	}
```

Once teams are enabled, a team name will be required during registration, and a `Teams` tab will be available in the user settings dashboard.

### Roles

[](#roles)

Team roles may be defined in the `customizeRoles` method of the `SparkServiceProvider`.

Customizing Spark Views
-----------------------

[](#customizing-spark-views)

You may publish Spark's common Blade views by using the `vendor:publish` command:

```
	php artisan vendor:publish --tag=spark-basics

```

All published views will be placed in `resources/views/vendor/spark`.

If you would like to publish every Spark view, you may use the `spark-full` tag:

```
	php artisan vendor:publish --tag=spark-full

```

Customizing Spark JavaScript
----------------------------

[](#customizing-spark-javascript)

The `resources/assets/js/core/components.js` file contains the statements to load some common Spark Vue components. [Vue](http://vuejs.org) is the JavaScript framework used by the Spark registration and settings screens.

You are free to change any of these require statements to load your own Vue component for a given screen. Most likely, you will want to copy the original component as a starting point for your customization.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity27

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/3ec3e81c0573823e38394d091e64a132d1e85c25c5cb57bc07b221be8719a16d?d=identicon)[daem0n](/maintainers/daem0n)

---

Top Contributors

[![daem0ndev](https://avatars.githubusercontent.com/u/2738707?v=4)](https://github.com/daem0ndev "daem0ndev (2 commits)")

### Embed Badge

![Health badge](/badges/daem0ndev-laravel-spark/health.svg)

```
[![Health](https://phpackages.com/badges/daem0ndev-laravel-spark/health.svg)](https://phpackages.com/packages/daem0ndev-laravel-spark)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M192](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
