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.

Send text securely with Vault

Vault is a tool that lets you send passwords or sensitive information by encrypting it with a password and setting an expiration date. By sending the generated Vault link, your private information is not stored on mail servers or in databases where it can live forever.

This tool is helpful if you work in a tech support environment. Many times you need information from customers that is sensitive in nature, and if they email it to you, then it always be stored in your help desk, email server, and remain searchable forever.

Vault Screenshot

By using Vault, the only information they send to you is a link and a password to unlock the vault. After it expires, neither the link or the password can open it which makes that data useless. The data inserted into Vault is encrypted in the browser and encrypted on the server.

HelpSpot Vault is a free tool with no signup required and if you’d like to hear more of the backstory on this app listen to Inside HelpSpot Vault a 15-minute podcast.

If you are doing any form of support or passing data around this is a tool to bookmark and use. As Jeffrey Wyman said on ProductHunt, “I always cringe when I see how easily people give up their passwords over email.”

4 Apps for a Minimal Mac Experience

As developers, we get junk everywhere. Hundreds of files in your Downloads folder, dozens of apps open at once and lots of little utilities that overwhelm your menu bar. Let’s check out a few of my favorite apps to help you keep focused and experience that blissful minimal Mac experience.

Hazel by Noodlesoft

Hazel bills itself as your personal housekeeper and it performs admirably. It installs through System Preferences and allows you to create automation rules.
Here are a few that helps prevent junk from piling up:

Automatically delete files that have been in the trash for a set number of days. It also supports “app sweep” to uninstall any leftover artifacts from removing an application.

Auto Trash Downloads

A good Hazel rule to pair with emptying the trash is setting up one that finds old files in your Downloads folder and automatically moves them to the trash.

With this setup, now any downloads added four weeks ago is automatically trashed.

Limitless Rules

You can setup many different rules for your personal workflow. For example, I have one in place to sync from Dropbox/Camera Uploads to Google Drive, so I get a secondary backup.

Bartender

The menu bar can quickly turn into a dumping ground of every utility app that you keep running. I have 14 apps with menu bar icons and just looking at that giant list is overwhelming.

With Bartender you can hide all these behind a single icon, giving you the ultimate minimal menu bar.

Of course, all the apps are still accessible from Bartenders icon, the star in the above screenshot.

Hocus Focus

On a Mac, when you switch apps the last opened ones cascade in the background. If the active app window is smaller than the others then the back ones can call for your attention.

Hocus Focus is designed to prevent this by automatically hiding inactive apps. This helps remove distractions and clutter.

Moom by Many Tricks

Moom is an app that allows you to quickly move and resize application windows. Using a grid, you can position an app at any location on the screen.

Splitting two apps across the screen is great when doing research so you can position your browser on one side and your writing app on the other. Just note that if you are using Hocus Focus, you will need to set both apps to not automatically hide in this scenario.

What I like about Moom is that you don’t have to remember any keyboard shortcuts. Just hover over the “full screen” icon in the upper left of your open app and the grid pictured above auto expands so you can position how you want.

Minimal Mac Zen

These four apps will help you get in the zone and keep you from losing focus. If you’ve been feeling overwhelmed give these a consideration. They are essential to all my Macs.

A First Look at Lingo

Lingo is a new Mac app launched by the people from the Noun Project. It’s designed to be a simple app to store and quickly browse for visual assets for your projects. The app supports photos, illustrations, icons, and any other visual asset.

Pricing is free for a personal plan, and if you’d like to share your library with a team, then you will need a paid package starting at $9.99 a month. All plans store your assets in their cloud and off your hard drive.

Lingo Demo

To get items into the app, you can drag and drop them from Finder or use the more traditional file upload tool. Once uploaded you can then drag them into folders in the sidebar for categorization. Plus you can edit the description and tags for easier finding later.

Lingo Tagging

Lingo doesn’t have any integration for finding all your existing assets and the easiest way I found to find all of yours is by using an advanced search in Finder.

Finder Image Search

Besides having simple access to all your assets, it includes drag and drop exporting to many popular apps including Sketch, Keynote, Adobe Creative Cloud, and more.

For a first release, it seems solid, and I didn’t run into any problems with the fundamental operations. Where I would like to see it improve is tighter integration with the Noun project, so I wouldn’t need the second app to find icons.

I’m also not enthusiastic on being forced to use their cloud service with no option of using your Dropbox account or Google Drive.

Overall I do like this app to help stay organized. I have “stuff” everywhere on my Mac, and this will help save me time the next time I’m looking for a particular image.

You can find out more and download the app from the Lingo website.

PatternFly — UX Goodness with the ease of Bootstrap

Patternfly is a community project of designers and developers collaborating to build a UI framework for enterprise web applications. Combining UX best practices with the powerful Bootstrap framework, it gives you a complete package for your apps administration area. It features premade layouts, patterns, widgets, and styles to give you a solid base to build off.

Here are some of the highlights of PatternFly.

Dashboard
An Example Dashboard
Example Login Page
Example Login
Example with Vertical Nav
Example with Vertical Nav

Patternfly appears to be a comprehensive resource for the next time you need to build out a new application. Another nice feature is this is a collaborative project between designers and developers, and by having developers contributing it should be designed in a way that works with standard data.

Checkout Patternfly for more information and to download or contribute.

A First look at Attendize, the open-source ticketing application

Attendize is a free & open-source ticket selling and event management platform. The app was created to offer event organizers a solution to managing general admission events, without paying any extra service fees outside of the payment processor.

It is currently in the early stages of development and let’s take a look at what all this application is about.

Attendize Installation

Attendize allows two methods of installation, a web-based installer and through the command line. I went through the command line and installed on a Laravel Homestead Vagrant box. The app could not have been simpler to get setup, and if you are comfortable with Laravel, you will fill right at home.

Here are the commands as they outline in the documentation:

git clone https://github.com/attendize/attendize
cd attendize
cp .env.example .env
vi .env #Set the database and mail settings etc.
composer install
php artisan attendize:install

Next setup a vhost to point to {yourpath}/attendize/public and visit the site in the browser where the login screen greets you:

Login
Attendize Login

Unfortunately, there hasn’t been a user to login with so you need to change the URL manually and visit /signup so that you can create this user.

Attendize Signup
Attendize Signup

After filling out the form, you can then login to the new account and continue setting it up.

Creating Events

Create Event Form
Create Event Form

You can create an unlimited number of events, and the setup is completed through an overlay window. My only complaint with this screen is the start and end date calendars.

Calendar Overlay
Calendar Overlay

Being an American it took me a minute to figure out the format in the date picker. It’s not that big of a deal, but it took me a few seconds instead of coming naturally. Dates and times are the bane of all web developers existence.

I also noticed a few minor issues on this form, for example hitting tab in the description doesn’t go to the next field. Instead, it wants to indent. I believe this is due to the WYSIWYG in use.

Where this form is awesome is with the Venue Name field. For my fictional event, I immediately thought of the Orpheum Theater in Memphis Tennesse. As I started typing “Orphe” it came up in the auto-complete.

Venue Selection
Venue Selection

That is a nice touch and came as a surprise. After saving the event, it’s time to create tickets for this event.

Create Tickets

Create a Ticket
Create a Ticket

Each event can have as many ticket options as you need. It even supports limited quantities and start/end dates for when they go on sale. This means you can offer special tickets like “Early Bird,” with the flexibility of even offering tickets for different levels. Maybe one for your whole conference, one for just workshops, or one for a single day. Your imagination is the limiting factor.

The Event Page

After setting the event life, you can visit the event page which auto generates the ability to purchase tickets, the event details, Google maps of the location, and your logo.

Stripe handles the payments for tickets, and another nice touch is a countdown showing you how long you have to complete the purchase.

Order Details
Order Details

I imagine this works well when you are getting close to selling out, and another benefit is it makes me want to hurry up and give my money.

Event Dashboard

The final feature I wanted to cover is the event dashboard which gives you a quick overview of how your event sales are going.

Dashboard
Dashboard

This shows charts for tickets sold over time, page visits, and sales volume. All the important data you will need to keep an eye on your event sales.

Final Thoughts

I’m very impressed with Attendize and even more fascinated with how young this app is. The only issues I came across were minor, and nothing show stopping. The only feature that I believe is missing is the ability to get a few more details of the customer when they are purchasing tickets. For example, some conferences like to get t-shirt sizes or special dietary concerns. Having a simple extra field system would fit in great here.

If you want to run an event, I highly recommend checking it out. I can only imagine how good it’s going to get.

For more information, you can visit the Attendize website and view the project on Github.

Wallcat — Every day a new desktop image for your Mac

I enjoy a minimal Mac experience. At the end of the day, I quit all my apps so I start the next day with a fresh canvas.

Having a clean desktop at the end of the day puts me in a done with work mindset and I love having a great looking desktop image. Over time this image gets stale and I start looking for a new one.

Wallcat, is a simple Mac app that does one thing — Sets a new beautiful desktop wallpaper every day. That’s it.

For ultimate simplicity, Wallcat has three settings launch at login, select an image channel, and share the image.

The channels include Gradients, Structure (Buildings and Architecture), and Fresh Air (Outside). After using this app for a few weeks I’ve only had one day where I didn’t like any of the images in the categories.

If you enjoy changing your desktop image or just want to mix things up this app is for you. Minimal, Simple, and Useful. It can’t get any better.

Wallcat is free in the App Store.