PHPackages                             upwebdesign/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. [Payment Processing](/categories/payments)
4. /
5. upwebdesign/spark

ActiveLibrary[Payment Processing](/categories/payments)

upwebdesign/spark
=================

Laravel Spark provides a starter scaffolding for Laravel SaaS applications.

0.2.3(8y ago)111MITPHPPHP &gt;=5.5.9

Since May 15Pushed 8y ago1 watchersCompare

[ Source](https://github.com/upwebdesign/spark)[ Packagist](https://packagist.org/packages/upwebdesign/spark)[ RSS](/packages/upwebdesign-spark/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)Dependencies (3)Versions (2)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/spark/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

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity48

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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2922d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/92a6fe0d542ddb3b01670329a0ca08302bc49db996a0840ad1c87824a6a7e509?d=identicon)[upwebdesign](/maintainers/upwebdesign)

---

Top Contributors

[![upwebdesign](https://avatars.githubusercontent.com/u/1845130?v=4)](https://github.com/upwebdesign "upwebdesign (3 commits)")

---

Tags

laravelscaffoldingstripebilling

### Embed Badge

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

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

###  Alternatives

[certly/spark

Laravel Spark provides a starter scaffolding for Laravel SaaS applications.

451.6k](/packages/certly-spark)[lanos/laravel-cashier-stripe-connect

Adds Stripe Connect functionality to Laravel's main billing package, Cashier.

84138.9k](/packages/lanos-laravel-cashier-stripe-connect)[expdev07/laravel-cashier-stripe-connect

Adds Stripe Connect functionality to Laravel's main billing package, Cashier.

63135.6k](/packages/expdev07-laravel-cashier-stripe-connect)[simonhamp/laravel-stripe-connect

1343.1k](/packages/simonhamp-laravel-stripe-connect)

PHPackages © 2026

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