Build Realtime Apps | React Js, Golang & RethinkDB

A practical guide that teaches you ReactJs, Golang & RethinkDB. Optimally paced, no-nonsense. You'll learn quickly!
4.3 (325 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.
3,085 students enrolled
Take This Course
  • Lectures 48
  • Length 3 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 1/2016 English

Course Description

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.

What are the requirements?

  • All setup (Development tools, Database Setup etc) is covered in this course

What am I going to get from this course?

  • 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

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

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Course Introduction

What will you learn in this course?

Section 2: Reactjs Quick Start

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.


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


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


Learn how to combine React Components


Learn how to combine sibling React Components


Learn how to maintain state values in React


Learn how to maintain Application state values in React

Section 3: Building The Front End with Reactjs

Learn how to setup your system for building your Reactjs FrontEnd


Learn how to setup a Reactjs project


Learn how to create a front end build process


Learn how to create the apps Channel Component


Learn how to create the apps Channel List Component


Learn how to create the apps Channel Form Component


Learn how to create the Channel Section Component


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


Apply some basic bootstrap style to our app


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


Review my Completed User and Message Components

Section 4: Connecting The Front End To The Back End

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


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


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


Start communicating with the server from our App component

Section 5: Building the Back End Go Server

Installing the Go Development Tools


Learn how to write an executable app in Go


Learn how to write a Web Server in Go


Learn how to create a Websocket Server In Go


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


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


Learn how to use Go Channels to communicate across goroutines


Figure out a structure for our Go App.


Start Creating our Event / Message Router


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


Write the ServerHTTP method


Create the client struct that communicates with a connection


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


Write the apps first Message Handler

Section 6: RethinkDB

Learn how to install RethinkDB and use the Web Admin Interface


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


Learn how to run REQL in a Go App

Section 7: Go & RethinkDB

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


Start to implement a Channel Subscription Event Handler


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


Apply our new fix / solution to our Channel Subscription Handler


Learn how to stop Subscription Handlers from the Client Struct


Learn how to selectively stop a specific Subscription Handler


Review the working Prototype


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

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

James Moore, 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.

Ready to start learning?
Take This Course