24 Hour MVP
Buy now
Learn more
Welcome
What to expect
Setting up your environment
Confirming your environment works
Overview of a SaaS application
SaaS Web Application Architecture
My proven process to build quickly
Terminology (CRUD, DRY, MVC, and many more)
Accessing our applications
[Action Required] GitHub invitations
App #1 - Anonymous Suggestion Box
What we're building
Naming our app
Creating a fresh Rails app
Wireframe - Single Page CRUD App
Data modeling - Creating a database
[Bonus] Version control with Git
Data modeling - Inserting database tables
[Bonus] Connecting git with GitHub
Frontend - Creating pages
Frontend - Implementing UI with Tailwind
Backend - Creating database records
Backend - Creating a Twitter App
Backend - Using the Twitter API
Backend - Integrating Twitter in our application
Backend - Connecting to the Frontend
Backend - Improving our Twitter service
[Bonus] Javascript listeners to improve UX
Backend/Frontend - Validations to prevent bad data
[Challenge] Saving and exposing Tweet URLs
[Solution] Saving the Tweet ID and URL
[Solution] Show Tweet URL on Home Page
Expansion ideas (how to earn back your course tuition)
Preparing to release our application
Deploying applications to a server
Overview
Domain setup and DNS
Provisioning a server
Deploying to a server
Debugging our deployment
Connecting our server to a domain
[Bonus] Accessing the production database
App #2 - Stakeholder Update Network
What we're building
Wireframe - Part 1
Wireframe - Part 2
Data modeling - Defining tables and attributes
Creating a Rails app from a template
Data modeling - Writing and running migrations
Data modeling - Adding associations to Models
Data modeling - Changing table names
Frontend - Landing page and Tailwind config
Frontend - Using partials and building an application form
Frontend - Admin panel and namespaced routes
Frontend - Dashboard and RESTful routing
Frontend - Finishing touches
Backend - Whitelisting form parameters
Backend - Whitelisting form "radio" inputs
Backend - Admin panel and private controller methods
Backend - Building transactional mailers
Backend - Creating user logins
Backend - Magic login links
Backend - Onboarding and forced user login
Backend - Dashboard and database seeding
Backend - Model scopes and subscriber form
Backend - Handling rich text
Backend - Update endpoint and DRY controllers
Backend - Digest mailer and better seeds
Backend - Viewing updates and DigestService batching
Backend - Getting started with Stripe
Backend - Implementing Stripe Checkout
Backend - Final cleanup
Backend - Enforcing free plan rules
Backend - Production mailers
Backend - Cron jobs and tasks
Backend - Deploying to production
Backend - Intro to delayed jobs
Setting up cron jobs in production
App #3 - Embeddable JavaScript Widget
What we're building
Wireframe - Interface + Widget UX
Data modeling - Sketching table names and relationships
Data modeling - Creating our app and generating migrations
Frontend - Widget CRUD
Frontend - Popup message form
[Bonus] JavaScript 101
[Bonus] JavaScript + DOM
Frontend - Creating an embeddable JS snippet
Frontend - Making our snippet embeddable on other websites
Frontend - Sending form data with fetch()
Frontend - Widget UX improvements
Frontend - Dynamic widget styling
Frontend - Messages view
Frontend - Landing page and live preview editor
Frontend - More challenges and cleanup
Backend - Widget avatar storage on AWS S3
Backend - Message CSV export
Backend - Async requests without JavaScript
Backend - Text Message API
Backend - User email notifications
Backend - Final cleanup and billing strategies
Backend - Predeploy challenges
Backend - Deploying with the Heroku CLI
[Bonus] Future lecture ideas
Products
Course
Section
Lesson
Data modeling - Adding associations to Models
Data modeling - Adding associations to Models
24 Hour MVP
Buy now
Learn more
Welcome
What to expect
Setting up your environment
Confirming your environment works
Overview of a SaaS application
SaaS Web Application Architecture
My proven process to build quickly
Terminology (CRUD, DRY, MVC, and many more)
Accessing our applications
[Action Required] GitHub invitations
App #1 - Anonymous Suggestion Box
What we're building
Naming our app
Creating a fresh Rails app
Wireframe - Single Page CRUD App
Data modeling - Creating a database
[Bonus] Version control with Git
Data modeling - Inserting database tables
[Bonus] Connecting git with GitHub
Frontend - Creating pages
Frontend - Implementing UI with Tailwind
Backend - Creating database records
Backend - Creating a Twitter App
Backend - Using the Twitter API
Backend - Integrating Twitter in our application
Backend - Connecting to the Frontend
Backend - Improving our Twitter service
[Bonus] Javascript listeners to improve UX
Backend/Frontend - Validations to prevent bad data
[Challenge] Saving and exposing Tweet URLs
[Solution] Saving the Tweet ID and URL
[Solution] Show Tweet URL on Home Page
Expansion ideas (how to earn back your course tuition)
Preparing to release our application
Deploying applications to a server
Overview
Domain setup and DNS
Provisioning a server
Deploying to a server
Debugging our deployment
Connecting our server to a domain
[Bonus] Accessing the production database
App #2 - Stakeholder Update Network
What we're building
Wireframe - Part 1
Wireframe - Part 2
Data modeling - Defining tables and attributes
Creating a Rails app from a template
Data modeling - Writing and running migrations
Data modeling - Adding associations to Models
Data modeling - Changing table names
Frontend - Landing page and Tailwind config
Frontend - Using partials and building an application form
Frontend - Admin panel and namespaced routes
Frontend - Dashboard and RESTful routing
Frontend - Finishing touches
Backend - Whitelisting form parameters
Backend - Whitelisting form "radio" inputs
Backend - Admin panel and private controller methods
Backend - Building transactional mailers
Backend - Creating user logins
Backend - Magic login links
Backend - Onboarding and forced user login
Backend - Dashboard and database seeding
Backend - Model scopes and subscriber form
Backend - Handling rich text
Backend - Update endpoint and DRY controllers
Backend - Digest mailer and better seeds
Backend - Viewing updates and DigestService batching
Backend - Getting started with Stripe
Backend - Implementing Stripe Checkout
Backend - Final cleanup
Backend - Enforcing free plan rules
Backend - Production mailers
Backend - Cron jobs and tasks
Backend - Deploying to production
Backend - Intro to delayed jobs
Setting up cron jobs in production
App #3 - Embeddable JavaScript Widget
What we're building
Wireframe - Interface + Widget UX
Data modeling - Sketching table names and relationships
Data modeling - Creating our app and generating migrations
Frontend - Widget CRUD
Frontend - Popup message form
[Bonus] JavaScript 101
[Bonus] JavaScript + DOM
Frontend - Creating an embeddable JS snippet
Frontend - Making our snippet embeddable on other websites
Frontend - Sending form data with fetch()
Frontend - Widget UX improvements
Frontend - Dynamic widget styling
Frontend - Messages view
Frontend - Landing page and live preview editor
Frontend - More challenges and cleanup
Backend - Widget avatar storage on AWS S3
Backend - Message CSV export
Backend - Async requests without JavaScript
Backend - Text Message API
Backend - User email notifications
Backend - Final cleanup and billing strategies
Backend - Predeploy challenges
Backend - Deploying with the Heroku CLI
[Bonus] Future lecture ideas
Lesson unavailable
Please
login to your account
or
buy the course
.