Develop web and mobile apps from the same codebase.
Hi, I am Dan Pastori, a certified Laravel developer who was frustrated with writing a beautiful web app only to realize I had to rewrite the app again if I wanted it on my mobile phone.
I've been making web and mobile applications with my friend Jay Rogers for the last 10 years. Jay helps with the design, but I am the only developer.
Working on a two-person team can be challenging when you cannot throw another person at the problem.
Supporting three separate codebases for web, iOS and Android is overwhelming.
Instead of hiring someone, we discovered a handful of tools that allow us to create web and mobile applications from the same codebase. Best of all, everything communicates back to a single API.
We're now able to deliver and maintain apps faster than ever before.
"This book does a tremendous job of explaining the ins and outs of modern development with an eye on clarity and simplicity. And now, if you'll excuse me, I have a TON of refactoring to do on my app!"
It's everything you need to start building more with less code.
Everything is organized in easy to consume chapters with a ton of code examples.
The book is available in PDF, EPUB, and MOBI formats so you can follow along no matter what device you choose. We give you the perfect amount of knowledge you need to know.
Don't just guess how the code works, see it all in action β in realtime. You'll even be able to see how we run things on our production branch.
Don't learn by yourself. Get instant access to an online community.
Have your questions answered by the community and meet others who are on the same journey as you.
Sometimes reading just isn't enough. We created over 10 video tutorials that show you how to set up your development environment, configure your routes, and more.
This isn't another βTo-Do Listβ app. We created an app called ROAST that has many different user permissions levels. This app has real-world problems, with real-world solutions.
Designing icons for mobile apps should not be difficult.
These templates are specifically optimized for Capacitor and will save you hours from fighting the nitpicky requirements for app icons and splash screens. You'll be able to export your graphics in minutes.
Understand what you'll be learning.
Preface
Why build an API?
Pre-Requisites
What We're Building
Why We Chose Laravel 10 and Nuxt 3
Build a solid & flexible foundation for your app.
Configuring your development environment
Installing Laravel 10.x
Configure Laravel as an API Only with Laravel Breeze
Preparing your API for Automated Testing
On to the Frontend
Learn how we will design our frontend using Nuxt 3
Installing and Configuring Nuxt 3
Understanding Nuxt 3's Structure
Installing Extra Packages (Optional)
Building your first Layout
Working with Pages
Prepare your Laravel API for secure authentication.
Laravel Sanctum Overview
Authentication Routes provided by Laravel Breeze
Set up API Versioning
Configuring our User Route
Laravel Passport vs Laravel Sanctum
Wrapping Up
Set Your Session Domain
Securely connect Nuxt to Laravel.
Using Laravel Sanctum with Nuxt
Configuring Nuxt 3 Auth Module + Laravel Sanctum
Building Authentication & Registration Components
Handling Guest Users with Nuxt 3 Middleware
Implementing an Email Validation System for New Registrations
On to "Fun"-ctionality
Learn how to create a feature from start to finish.
Using the Proper Methods for API Requests
Building a Feature From Start to Finish
Learn how to design RESTful resources.
Efficiently Building API Endpoints
Using our API Endpoints with Nuxt 3
Accessing Resources With Human-Readable API Endpoints
Uploading Files
Handling "Parent - Child" Relationships
Implementing Many-To-Many Relationships
Using API Laravel Resources (Routes & Eloquent)
Prevent users from accessing other parts of your app.
Permissions Overview
Preventing Unauthorized Access Using Middleware
Securing API Endpoints With Laravel Gates & Policies
Implementing Laravel's Custom Validation Rules
Securing Our Front-End With Nuxt Middleware
Handling Unauthorized Actions on the Front-End
Displaying API Errors to Your Users
Create two mobile apps in one command from the same codebase.
Installing and Configuring CapacitorJS
SSR vs SPA
Speeding up Builds with a Single Command
Token-Based Authentication with Laravel Sanctum
Using Native Phone Features In Your App
Deep-Linking: Open Your App From the Web
Allow users to sign in with their social profiles.
Installing & Configuring Laravel Socialite
Allowing logins from Facebook, Google, and Apple
Securely Exchanging Tokens With an oAuth Provider
Allow other developers to integrate with your app.
Configuring Laravel Sanctum for 3rd Party Access
Determining What API Endpoints should be available to 3rd Parties
Create Endpoints to Manage Tokens
Rate Limiting Requests
Nuxt Interface and Settings
Using a Personal Access Token
Scoping Access Tokens
Limiting Access
Don't learn this the hard way.
RESTful Response Codes: How to Use Them
How Cross-Origin Resource Sharing (CORS) Works
Handling "Imperfect" RESTful Endpoints
Benefits of API Versioning
Tips & Tricks for Testing APIs
Configure Postman REST Client
Configure Insomnia REST Client
Securing Sensitive Data
Prevent yourself from getting a headache.
When to Use Pinia
The Truth about SPA Security
Composables vs Mixins
Data Fetching Techniques
Helpful VueUse Methods
When to use EventBus vs $emits
Convert to Form Data composable
Additional Registration Security with ZXCVBN
A few features we used along the way
Artisan Commands
Helpful Eloquent Relationships
Installing Laravel Telescope
Adding Gravatar as a Computed Eloquent Property
π© You feel overwhelmed trying to support web and mobile apps
π You don't know where to get started with an API-driven application
π You are concerned about SPA + API authentication and security
π You want to learn concepts from an app that you can actually use
β This is the first app you are trying to build
β Your app does not need to run in the web and also on native mobile
β You have no interest in learning concepts from Laravel or Vue.js
β You're trying to build a 3D game
Choose the package right for you.
BOTH Editions of the 500+ page book (for Nuxt 2 and Nuxt 3)
Sketch & Figma icon templates optimized for Capacitor
Lifetime access & updates
BOTH Editions of the 500+ page book (for Nuxt 2 and Nuxt 3)
Production source code access to an app called ROAST
Private forum access where you can meet & get help from others
In-depth video tutorials
Sketch & Figma icon templates optimized for Capacitor
Lifetime access & updates
How long do I have to wait to get my forum and source code access?
What formats are the files in?
Are physical copies available?
Can I get an invoice?
Can I upgrade from the "Essentials" to the "Complete Package"?
I originally purchased the content with Gumroad. How do I access the new content?
Is the book available in multiple languages?
How can I contact you?