Getting Started
  • A Few Notes
  • Join Our Community!
  • Link to Github Repo
  • Why Server Side Rendering?
  • SSR Overview
Let's Get Coding!
  • App Overview
  • Server Architecture Approach
  • Starter Package.Json File
  • Boilerplate Setup
  • Express Setup
  • The RenderToString Function
  • JSX on the Server
  • Server Side Webpack
  • Breather and Review
Server Configuration
  • Rebuilding and Restarting
  • Server Side Rendering, Isomorphic Javascript, Universal Javascript
  • Client Side JS
  • Client Bundles
  • The Public Directory
  • Why Client.js?
  • Client Bootup
Refactoring for Cleaner Code
  • Merging Webpack Config
  • Single Script Startup
  • Ignoring Files with Webpack
  • Renderer Helper
Adding Navigation
  • Implementing React Router Support
  • BrowserRouter vs StaticRouter
  • Route Configuration
  • HTML Mismatch
  • More on Route Configuration
  • Routing Tiers
Integrating Support for Redux
  • The Users API
  • Four Big Challenges
  • Browser Store Creation
  • Server Store Creation
  • FetchUsers Action Creator
  • The Users Reducer
  • Reducer Imports
  • UsersList Component
  • Babel Polyfill
Server Side Data Loading
  • Detecting Data Load Completion
  • Solution #1 for Data Loading
  • Solution #2 for Data Loading
  • The React Router Config Library
  • Updating Route Uses
  • The MatchRoutes Function
  • LoadData Functions
  • Store Dispatch
  • Waiting for Data Load Completion
  • Breather and Review
Organization with Page Components
  • The Page Approach
  • Refactoring to Pages
  • Refactoring Page Exports
  • Client State Rehydration
  • More on Client State Rehydration
  • Dumping State to Templates
  • Mitigating XSS Attacks
Authentication in a Server Side Rendering World
  • Authentication Issues
  • Authentication via Proxy
  • Why Not JWT's?
  • Proxy Setup
  • Renderer to API Communication
  • Axios Instances with Redux Thunk
  • Client Axios Instance
  • Server Axios Instance
  • The Header Component
  • Adding an App Component
  • Building the Header
  • Fetching Auth Status
  • Calling FetchCurrentUser
  • Connecting the Header
  • Header Customization
  • Header Styling
Error Handling
  • 404 Not Found Pages
  • Implementing the NotFound Page
  • StaticRouter Context
  • The Admin Feature
  • Admins Action Creator and Reducer
  • Admins Route Component
  • Testing Admins Route
  • Promise.all Failures
  • Error Handling Solution #1
  • Error Handling Solution #2
  • Error Handling Solution #3
  • The Require Auth Component
  • Implementing Require Auth
  • Require Auth in Use
  • Handling Redirects
Adding Better SEO Support
  • Meta Tags