In this course, we develop the frontend of an app to help a scientist record her experiment notes. It's a lab notebook. The app is completely client-side. It uses ClojureScript and Om.

It includes:

  • Setting up a sweet development workflow.
  • Maintaining an app state.
  • Rendering the app based on the app state.
  • Developing Om components.
  • Responding to UI events.
  • Maintaining component-local state.
  • Modifying the app state.
  • Creating undo.
  • Developing components of some sophistication.

It does not include:

  • Creating or accessing a backend.

Want this course?

Team License

  • HD Download
  • Watch Online
  • Lifetime Access
  • For your company

Download License

  • HD Download
  • Watch Online
  • Lifetime Access
  • For an individual

Online License

  • Watch Online
  • Lifetime Access
  • For an individual


  • HD Downloads
  • Watch Online
  • Full access
  • All Content
  • For an individual
Get access

Love it or leave it guarantee

If you don't learn as much from this course as you thought, just ask for a refund within 30 days and I'll give you your money back.

Single Page Applications with ClojureScript and Om


Video time: 01h00m

0 / 7

Making our first component
  • 7 min

We learn about how Om works and set up our project. We start with a really simple "Hello, World!" app.

Developing with Figwheel
  • 10 min

Recompiling and reloading our app manually will get tedious. We set up a nice development workflow with Figwheel so that we don't have to do that. Every time we save our source code, the browser will reflect changes in the code without losing the state.

Building components
  • 8 min

We start factoring our User Interface into components, which are reusable pieces of our GUI.

Cursors and modifying the app state
  • 5 min

Cursors are a fundamental part of Om. They let components refer to pieces of the app state without knowing where they are in the state tree.

Using component state
  • 11 min

Component-local state is useful for all those little bits of state that your components need to keep track of but don't make much sense for the whole app to know about. They're about the UI widget more than about the app.

Modifying component state
  • 9 min

We're using component state, but now we learn how to modify it in response to UI events.

How to add Undo to Om apps
  • 11 min

This lesson teaches how to add a simple undo button to an Om app. The video is 11 minutes long.