Kyle Gawley – How To Build a SaaS Product (PRO)
What You Get in Kyle Gawley – How To Build a SaaS Product (PRO):
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 modeling tools
- Designing data models
- The normalization, 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 customize 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 outflow
Bonus: UI Design School
- Layout
- Color
- Scale
- Typography
- Iconography
User Management
- Understanding organizations and users
- Building a user admin UI
- Building a user invite flow
- The user sign-up flow
- Multi-organization logic
Build a SaaS Billing System With Stripe
- Creating the billing UI
- Upgrading, downgrading & canceling
- 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 helpful 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