Laravel Spark

Laravel Spark, the Laravel package that provides scaffolding for subscription billing, is now officially released and available for everyone.

August of 2015 at the Kentucky Center hundreds of developers sat waiting as Taylor Otwell took the stage for the Laracon Keynote talk. He kicked if off talking about finding inspiration from the movie Jiro Dreams of Sushi.

“Jiro would dream of sushi, wanting to elevate his craft. One could assume this gives him a deep and satisfying meaning to life”, Taylor recalled, “we share a lot of the same characteristics, and one big item is flow.”

Flow, also known as the zone, is the mental state of operation in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity.

Taylor continued by talking about how Laravel aims to make the pathway to flow as easy as possible by allowing you to focus on the app you are building, not the mundane boilerplate.

Some of the examples include Homestead as a development environment, Forge and Envoyer for production deployments, and all the other tools Laravel provides like Blade, Eloquent, and Elixir.

This lead to his newest creation Laravel Spark, which aims to make creating a working SaaS (software as a service) app painless.

The keynote continued going through a demo and announced the alpha would be available the following month. Then all went silent.

Having just launched Forge and Envoyer, Taylor knew how much of a burden building out subscription billing is. It needs a payment gateway, full member management, subscribing to plans, subscription swapping, subscription canceling, pro-rating, coupons, discounts, teams, invites, and that is just the bare minimum feature set. You also have to add routes, views, JavaScript, and more to get this all working.

What Spark does is combine all this into a single package that you can add to a Laravel app. Define your subscription plans, set your company address, add Stripe data, and deploy.

Development of Spark continued behind the scenes, and little teasers of the official version started being leaked to social media at the end of February. Then on March 3rd, Taylor announced the official release will not be free.

During the keynote, Spark was released as a free open source product, and this pivot caused a mix of both positive and negative reactions. Most were understanding of the change in direction.

The #sparkwatch teasers didn’t stop, and then a super specific launch date came out. April 19th at 10 AM CET. As that date started approaching Spark became feature complete and a beta launched Friday, April 15th.

The pricing is $99 for a single license and $299 for an unlimited. With one license you can develop as many sites as you want locally and it only goes into effect once you deploy to a server.

Laravel Spark First Impressions

As soon as the beta was announced, I grabbed a license and started building a fictitious app just to get an idea how it’s all setup and the benefits in using it.

The installation was straight forward. You have to clone laravel/spark-installer and add the spark executable to your $PATH, then run a register command with your license token. After that it’s just a matter of creating a new project:

spark new MyNewSparkApp

Note: By default this sets up Stripe as the payment gateway without the teams option. However, you can use pass a braintree or team-billing flag to use the different gateway, or add teams.

spark new MyNewSparkApp --braintree --team-billing

It automatically pulls down all the packages through Composer, asks if you want to install the NPM modules, and finally you finish off my running the migrations.

That is literally all it takes to get it installed.

The final step before fully testing it is to open the SparkServiceProvider and scroll through this file entering your settings. It has a section for your company name, address, phone number. Your billing plans. An array of developers emails that can access the admin. The ability to define your billing plans.

After installing and browsing around it does have a great base to begin your work with.

The design is based on Bootstrap so customizing the views should be straightforward. The JavaScript is powered by Vue.js and the customization primer gives instructions on how to add your own Components.

Laravel Spark Pricing

As mentioned earlier, the pricing is $99 for a single license and $299 for an unlimited. You do have to purchase a license before you can install it and then you can develop as many sites as you want locally. Once you deploy to a server, then that license becomes used.

The question is, is Spark worth $99? Having spent the last six months developing a billing system, I can say it is. If I tried to build out, everything Spark includes it would take me at least several weeks, and probably not be as good as what it provides. To answer the question, emphatically yes!

Another benefit for picking up a license, even if you aren’t in a position to need billing, is to use it as a learning tool. You can view the package and see how it’s put together, see how it utilizes Composer to sell commercial software, and even learn how the creator of the framework structures his routes, views, and JavaScript.

You can get a copy from the Spark website and check out the full documentation.