What You Get:
Architecture Of a SaaS Application
Understanding client & server
What is an API?
Understanding Model-View-Controller
Single or multi-tenant SaaS?
Features of a SaaS app
Building Your Stack
Does tech stack matter?
Why use Javascript?
Which framework is best?
Setting up the project
Configuring the development environment
Data Modelling
Why start with data?
Relational or non-relational data?
Data modelling tools
Designing data models
Normalisation, Foreign Keys & Cascades
Controllers & Models
Scaffolding the models
CRUD anatomy
ORMs and query builders
Creating the models & controllers
Security considerations
Building a REST API
What is a REST API?
Building the API
Global error handling
Throttling for security
Testing with Postman
Authentication Part 1 (Server-Side)
Issuing JWT auth tokens
Sign up and sign in flows
Protecting API endpoints
User roles and permissions
Creating scoped API keys
Email Notifications
Setting up Mailgun
Building a mail module
Avoid HTML table hell with JSON emails
Allowing users to customise email settings
Sending email notifications to users
Authentication Part 2 (Client-Side)
Client authentication best practices
Client routing & private routes
Sign in and Sign up flows
Forgot password flow
Sign out flow
Bonus: UI Design School
Layout
Colour
Scale
Typography
Iconography
User Management
Understanding organisations and users
Building a user admin UI
Building a user invite flow
The user sign up flow
Multi-organisation logic
Build a SaaS Billing System With Stripe
Creating the billing UI
Upgrading, downgrading & cancelling
Updating the credit cards
Secure Customer Authentication (SCA)
Implementing free trials
Creating a Profile Page With Photo Uploads
Creating the public profile page
Creating the photo uploader
Storing photos in Amazon S3
Designing a photo grid
Photo detail page with comments
Building The Dashboard
Building a SaaS dashboard
Create the API key admin UI
Tracking photo views
Add photo metrics
Building a help view
Testing
Why you should test
Types of tests
Writing unit tests
Writing integration tests
UI & user testing
SaaS Security Practices
Keep packages up to date
Preventing XSS attacks
Content security policies
Understanding CORS
Database security
Deploying a SaaS Application
Choosing a hosting platform
Configuring the production environment
Database SSL certificates
Deploying to Heroku
Building a deployment pipeline
Next Steps
Advanced features to consider
Launching your app
Marketing your app
Building an audience
Feedback