Build Realtime Apps | React Js, Golang & RethinkDB
4.2 (544 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
4,215 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Build Realtime Apps | React Js, Golang & RethinkDB to your Wishlist.

Add to Wishlist

Build Realtime Apps | React Js, Golang & RethinkDB

A practical guide that teaches you ReactJs, Golang & RethinkDB. Optimally paced, no-nonsense. You'll learn quickly!
Best Seller
4.2 (544 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
4,215 students enrolled
Created by James Moore
Last updated 1/2016
Current price: $10 Original price: $60 Discount: 83% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 3 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Know how to Setup Development Environments for Reactjs and Go
  • Experience Structuring Reactjs and Go Applications
  • Understand How to create Reactjs base Web Applications
  • Know How To Use Websockets to communicate between Server and Browser
  • Skilled at Creating Go Servers
  • Know How to Install and Use RethinkDB
View Curriculum
  • All setup (Development tools, Database Setup etc) is covered in this course

Do you want to learn React as fast as possible? Are you curious about Golang, Googles new Programming Language? Do you wonder what it's like to write fast highly concurrent servers? Interested in creating realtime apps, the simple way?

If you answered YES, then this course is for you!

Learn Fast

This course is optimally paced so you'll learn fast. Your time is valuable and I don't want to waste it, try out the free previews and I think you'll understand what I mean by fast/lean learning.

React Js

Reactjs is an Amazing Javascript front-end library created and maintained by Facebook. The designers of React questioned the industry "best practices" and designed a library that is quite unique, extremely fast and very productive, plus it's a delight to work with. Reactjs makes writing JavaScript apps fun again because of it's simplicity and fundamentally different concepts.


Golang is a awesome new programming language created and maintained by Google. Golang is an modern language, that's simple to learn and easy to use. Golang is particularly well suited for highly concurrent applications, such as realtime apps, because of it's first class language support for coroutines (called goroutines). Apps created in Golang are fast, and run on all major platforms (Mac / Windows / Linux).


RethinkDB is the only database I'm aware of that is focused on realtime features. Using RethinkDB allows you to create highly scalable, realtime apps with ease. RethinkDB offers a rich set of features and it's a joy to work with.

"But I'm only interested in React or Golang or RethinkDB..."

Each of these topics could stand alone as it's own course. Just consider it bonus content!

Are realtime apps important?

Software developers will need to know how to create Realtime Web apps in the very near future. It's the next evolution in Web Applications, in fact Realtime Apps/Features are already being created at companies like Twitter, Facebook and Google.

Get ahead of the curve and learn how to make realtime apps now.

Why take this course?

Do you ever feel overwhelmed with new technologies? I think most of us do, there is so much change constantly happening and the pace of change seems to be increasing.

What can you do to manage the learning challenges you're facing?

Lean learning

I won't waste your time, you'll learn just what you need to know as quickly as possible. You'll start this course with the end in mind. What do I mean by that? We're going to be building a realtime web application, and you'll learn just what you need to build the app.

What You'll Build

During this course, you'll be building a Slack Clone.


A general familiarity with Programming and the Web. You'll start from scratch and move quickly, learning just what you need to know and nothing else.

Who is the target audience?
  • This Course is meant for students that are interested in Building Realtime Web applications. Each technology is taught from scratch, assuming zero prior knowledge, however we move very quickly and go pretty deep into the subject matter.
  • This course is designed for student's who learn best by practical usage more than traditional lectures
Students Who Viewed This Course Also Viewed
Curriculum For This Course
48 Lectures
Course Introduction
1 Lecture 03:30

What will you learn in this course?

Preview 03:30
Reactjs Quick Start
7 Lectures 28:02

Learn what Reactjs is, by creating your first Reactjs Component from scratch.

After completing this lecture you'll understand the basic concepts of Reactjs such as: Components, JSX, Code Transpiling with Babeljs.

Preview 08:13

Learn how to use Properties to pass information to React Components.

Preview 02:17

Learn how to listen for events, such as mouse clicks, in React.

Preview 02:11

Learn how to combine React Components

Preview 03:17

Learn how to combine sibling React Components

Preview 04:12

Learn how to maintain state values in React

Preview 05:16

Learn how to maintain Application state values in React

Preview 02:36
Building The Front End with Reactjs
11 Lectures 32:29

Learn how to setup your system for building your Reactjs FrontEnd

Setting Up Your Development Environment for Front End Work

Learn how to setup a Reactjs project

Creating our Reactjs Project

Learn how to create a front end build process

Front End Build Setup

Learn how to create the apps Channel Component

Create the Channel Component

Learn how to create the apps Channel List Component

Create the Channel List Component

Learn how to create the apps Channel Form Component

Create the Channel Form Component

Learn how to create the Channel Section Component

Create the Channel Section Component

Create an outermost application component, to store app state and child components

Creating The App Component

Apply some basic bootstrap style to our app

Styling The App

Your Challenge: Use what you've learned and Build the User and Message Sections.

Student Challenge: Build the User & Message Components

Review my Completed User and Message Components

Review User and Message Components
Connecting The Front End To The Back End
4 Lectures 16:48

Learn how to connect to a websocket server an send and receive messages

Communicating With The Server (Websockets)

Figure out an message scheme to use for communicating with the server

Websocket Messages / Internal Client Server API

Simplify communication with the server by creating a Simple Socket Wrapper Utility

Socket Utility

Start communicating with the server from our App component

Sending and Receiving Messages in the App Component
Building the Back End Go Server
14 Lectures 01:02:24

Installing the Go Development Tools

Preview 02:17

Learn how to write an executable app in Go

Write your first Go App

Learn how to write a Web Server in Go

Write a Go Web Server

Learn how to create a Websocket Server In Go

Websockets In Go

Learn how to convert JSON to Go values and Go values to JSON

Encoding / Decoding JSON in Go

Start thinking about handling Channel Related Events from the Front End in the Go Server

Handling Channel Related App Messages in Go

Learn how to use Go Channels to communicate across goroutines

Go Channels

Figure out a structure for our Go App.

Organizing Our Go App

Start Creating our Event / Message Router

Creating A Message Router

Add a Handle Method to the Router, which allows you to define Routing Rules

Create Routers Handle Method

Write the ServerHTTP method

Complete the ServeHTTP Method

Create the client struct that communicates with a connection

Create a Client Struct

Add a method to the Router that looks up a message / event handler

Finding the Handler for a Message

Write the apps first Message Handler

Writing the First Event Handler
3 Lectures 15:06

Learn how to install RethinkDB and use the Web Admin Interface

Preview 01:10

Learn how to do things with RethinkDB using REQL - The RethinkDB Query Language

Preview 07:33

Learn how to run REQL in a Go App

REQL in Go
Go & RethinkDB
8 Lectures 34:26

Learn how to connect to RethinkDB in our App and start using RethinkDB in our App

Using RethinkDB in the App

Start to implement a Channel Subscription Event Handler

Channel Subscription Event Handler

Figure out how to Fix our Faulty First Attempt at a Channel Subscription Handler

Rethinking Subscription Handling

Apply our new fix / solution to our Channel Subscription Handler

Fix Subscription Handler

Learn how to stop Subscription Handlers from the Client Struct

Stopping Subscription Handlers

Learn how to selectively stop a specific Subscription Handler

Stopping Specific Subscription Handlers

Review the working Prototype

Review Completed App

A few suggestions for adding more features to our app, and a few final Words

Final Thoughts
About the Instructor
James Moore
4.2 Average rating
543 Reviews
4,215 Students
1 Course
Software Developer, Consultant & Trainer

James discovered the joy of software development while submerged hundreds of feet deep in the pacific ocean. He liked it so much, he left his career as Navy Nuclear Submariner to learn everything he could about creating software. As a nuclear trained engineer, he figured out how to learn things quickly, which has helped in a career where the learning never stops. Currently he’s an independent software developer, consultant and trainer.