Hey everyone! Today is an exciting day because we are releasing and open-sourcing our Software as a Service Starter Kit, Wave.
Why open-source it? What kind of new features are in this version? Read on, and I'll explain it a little further 😉.
Why Open Source?
Back in late 2018, we released the first version of Wave, built on Voyager, and it came with two themes, including Bootstrap and a UIkit.
The response was pretty great on the project; however, it was not turning as many heads as we would have liked. It's all good because we still had many loyal users who were building some cool stuff.
Fast forward two years 🕒, a lot of cool stuff was created from 2019 to the present, including new versions of Laravel and TailwindCSS. The developer community also got Laravel Livewire. There's so much cool tech, and we wanted to include that in the latest version.
Some of the more significant problems that we had in version 1 were directly tied to billing. Wave v1 used Laravel Cashier and supported both Stripe and Braintree. There were so many use-cases for tiered billing, quantities, trial & grace periods, 3-D Secure card verification, and the list goes on.
We wanted to eliminate these issues, and that's why v2 uses a custom-built simplified Paddle integration to make billing a breeze.
Want to add a checkout anywhere in your application, no problem:
<button class="checkout" data-plan="PLAN_ID">Buy Now</button>
@waveCheckout
Just include those two lines in your application, and you're accepting payments 🙌. Inside any of your application views, you can add the class of checkout
to any element with the Paddle plan ID inside of the data-plan
attribute. Next, include this blade partial anywhere in your file or your main layout @waveCheckout
, and Boom! You are now accepting payments. 💰
Be sure to check out the billing documentation here to learn more.
The reason for Open Sourcing this new version is to get it in the hands of as many developers as possible, empowering them to create their own profitable SAAS application. In return, we will get feedback from a larger community of users and figure out which features need to be added or improved upon (with a caveat).
That caveat is to keep things simple. If Wave becomes too complex for newcomers, then we have steered in the wrong direction. The entry-point for Wave should always remain simple. If you want things like tiered billing and complicated credit systems, you'll have to build that in yourself.
As an example, here's the basic concept of billing. Your application can have multiple subscription plans, or it can have a single plan. A user can be a subscriber (subscribed to a specific plan) or a non-subscriber (free account). Piece of Cake, right? 🍰
Be sure to give it a star at https://github.com/thedevdojo/wave 🌟
Next, I'll cover a list of the new features available.
New Features
In addition to the latest version using Laravel 8, there are also a few new features, including the New Payment System, Digital Ocean Deployments, and some awesome Blade Macro Helpers.
New Payment System
Wave, version 2, is no longer using Laravel Cashier. Instead, we use a simpler custom-built solution with the Paddle Payment Platform.
Digital Ocean Deployments
In this new version, there is a custom-built integration to deploy your application to the Digital Ocean App Platform.
All that you need to do is grant permissions for Digital Ocean to access your repo, enter your DO API key, and you are ready to deploy 🚀
Blade Macro Helpers
With this version, you can also take advantage of some helpful blade directives to check if a user is a subscriber, if they are subscribed to a specific plan, or on a trial.
To check if a user is a subscriber
, you can use the following blade helper:
@subscriber
<p>You are a subscriber</p>
@notsubscriber
<p>You are not a subscriber</p>
@endsubscriber
You may also wish to check if a user is subscribed
to a specific plan with the following helper:
@subscribed('pro')
<p>You are subscribed to the Pro Plan</p>
@notsubscribed
<p>You are not subscribed to the Pro Plan</p>
@endsubscribed
Finally, you can check if a user is on a trial
with the following helpers:
@trial
<p>You are currently on a trial</p>
@nottrial
<p>You are not on a trial</p>
@endtrial
With these blade helpers, your views will look so much cleaner 👌.
Upvote on ProductHunt 😺
If you would like to support this project, be sure to upvote us on ProductHunt 🙌
You can also leave a comment, and we'll be sure to get back to you on PH.
Star the Repo 🌟
Make sure that you also give us a star on Github. We're excited about all the collaboration we'll be getting on this project now that it's available as open source.
You can check out the official GitHub repo at https://github.com/thedevdojo/wave.
Learn More
You can learn more about all the awesome features that Wave provides by checking out the Wave page at https://devdojo.com/wave. You may also wish to check out the documentation at https://wave.devdojo.com/docs.
Thanks to everyone so far for the amazing response we've gotten so far ⚡️.
Are you ready to start crafting your next great idea? Head on over to the repo and start building, deploying, and creating some Waves 🏄♂️.
Comments (1)