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.
First, install the Spark installer and make sure that the global Composer bin directory is within your system's $PATH:
composer global require "mastashake08/laravel-spark-archive=dev-master"
Next, create a new Laravel application and install Spark:
laravel new application
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
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:
Once teams are enabled, a team name will be required during registration, and a Teams tab will be available in the user settings dashboard.
Team roles may be defined in the customizeRoles method of the SparkServiceProvider.
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
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.