Surf, the opinionated Software as a Service Starter Kit that can help you build your next great idea 💰. Surf is fork off Wave, and is built with Laravel, Voyager, TailwindCSS, and a few other awesome technologies. Here are some of the awesome features ✨:
- Authentication
- User Profiles
- User Impersonation
- Subscriptions
- Subscription Plans
- User Roles
- Notifications
- Announcements
- Fully Functional Blog
- Out of the Box API
- Voyager Admin
- Customizable Themes
Surf has not been tested with DigitalOceans APP platform. If you are using Surf on DigitalOcean, don't be surprised if you experience issues. Docker has also not been tested and is not recommended.
To install Surf, you'll want to clone or download this repo:
git clone https://github.com/thinkverse/surf.git project_name
Next, we can install Surf with these 5 simple steps:
We'll need to utilize a MySQL database during the installation. For the following stage, you'll need to create a new database and preserve the credentials.
We need to specify our Environment variables for our application. You will see a file named .env.example
, you will need to duplicate that file and rename it to .env
.
Then, open up the .env
file and update your DB_DATABASE, DB_USERNAME, and DB_PASSWORD in the appropriate fields. You will also want to update the APP_URL to the URL of your application.
APP_URL=http://surf.test
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=surf
DB_USERNAME=root
DB_PASSWORD=
Following that, we'll need to install all composer dependencies through the following command:
composer install
To make sure your plan IDs are up-to-date, you'll need to update the PlansTableSeeder.
To create a Paddle plan, navigate to your Paddle account and click on Catalogue » Subscription Plans.
Use the sandbox-vendors.paddle.com account for testing, and vendors.paddle.com account for production.
Update the plan_id
, price
, trial_days
, etc. in the plans seeder array.
'name' => 'Basic',
'slug' => 'basic',
'description' => 'Signup for the Basic User Plan to access all the basic features.',
- 'plan_id' => '1',
+ 'plan_id' => '12345',
'default' => 0,
'price' => '5',
'trial_days' => 0,
We must migrate our database schema into our database, which we can accomplish by running the following command:
php artisan migrate
Finally, we will need to seed our database with the following command:
php artisan db:seed
That's it! You will now be able to visit your URL and see your Surf application up and running. 🎉
DevDojo got a full video series on how you can setup, build, and configure Wave, which is the underlying starter kit Surf is made from. You can watch first few videos for free, and additional videos will require a DevDojo Pro subscription. By subscribing to a DevDojo Pro subscription you will also be supporting the ongoing development of this project. It's a win win! 🙌
Click here to watch the Wave Video Series.
Checkout the official Wave documentation here.
Give Wave and DevDojo support by following DevDojo on Twitter and upvoting them on Product Hunt.