Collections

React and Reagent

Learn how to build reactive user interfaces based on ClojureScript and React.js. These episodes gradually build up your knowledge. You start by building a small app using React directly, then move on to using Reagent, a popular wrapper library. Finally you learn how to give your Reagent apps a more coherent structure based on re-frame.

6. Building a React app with ClojureScript

Building a React app with ClojureScript

9. Reagent, part 1

Reagent, part 1

10. Reagent, part 2: Cursors

Reagent, part 2: Cursors

11. Reagent, part 3: Keys & Lifecycle Methods

Reagent, part 3: Keys & Lifecycle Methods

19. re-frame, part 1

re-frame, part 1

20. re-frame, part 2: Subscriptions

re-frame, part 2: Subscriptions

25. re-frame, part 3: Events and Effects

re-frame, part 3: Events and Effects

41. Using React Components with Reagent

Using React Components with Reagent

Clojure Foundations

In this series, core aspects of Clojure are taken apart and put together again, to see what exactly makes them tick. Seq, records, protocol, core functions and essential libraries. Level up now!

1. clojure.core/some

clojure.core/some

7. Intro to clojure.spec

Intro to clojure.spec

12. Clojure Keyword Arguments

Clojure Keyword Arguments

22. Seq and Seqable

Seq and Seqable

23. deftype and definterface

deftype and definterface

24. defrecord and defprotocol

defrecord and defprotocol

26. Component and System

Component and System

38. Transducers

Transducers

Datomic

Datomic is an immutable database from Cognitect, the makers of Clojure. It has some powerful features and integrates nicely with Clojure's functions and data structures. This series teaches you about the architecture and data model of Datomic, as well as providing a practical tutorial to get up to speed quickly.

36. Datomic Quickstart, part 1

Datomic Quickstart, part 1

37. Datomic Quickstart, part 2

Datomic Quickstart, part 2

Testing

An extensive test suite is essential when maintaining a non-trivial code base over time. This series of episodes looks at various aspects of testing in Clojure, as well interesting libraries to add to your toolbox.

32. Introduction to Clojure Testing

Introduction to Clojure Testing

33. Running ClojureScript Tests

Running ClojureScript Tests

34. Acceptance Testing With SparkleDriver

Acceptance Testing With SparkleDriver

35. Generative Testing with test.check

Generative Testing with test.check

Component and System

To manage the lifecycle of an application, it's become common practice to divide the system up into components, with dependencies between them. Stuart Sierra's Component library was the first to popularize this concept and can still be considered the reference implementation. The pattern is simple enough, but it does require some knowledge of Clojure's types and records functionality, so those are introduced first. This series also covers the System library, a handy collection of reusable components.

23. deftype and definterface

deftype and definterface

24. defrecord and defprotocol

defrecord and defprotocol

26. Component and System

Component and System

31. Component in Practice

Component in Practice

Ring and Compojure

The Ring library forms the core of Clojure web development. If you're not sure where to start then this is the series for you. It will give you a solid foundation of the core abstractions involved. It also introduces the Compojure routing library, providing an easy way to start building real apps.

13. Ring, part 1

Ring, part 1

16. Ring, part 2: the Two Routes

Ring, part 2: the Two Routes

17. Ring, part 3: Return of the Middleware

Ring, part 3: Return of the Middleware

21. Compojure

Compojure

28. Authentication with Buddy

Authentication with Buddy

ClojureScript Interop & Tooling

ClojureScript has revolutionized frontend development. The initial learning curve can be steep, but once you're over that initial hump the payoff is great. Learn how to tame the ClojureScript compiler, and how to bridge the gap between your functional ClojureScript code and the wild world of JavaScript.

4. ClojureScript Interop

ClojureScript Interop

8. The ClojureScript Compiler

The ClojureScript Compiler

14. Using Figwheel With Emacs, part 1: inf-clojure-mode

Using Figwheel With Emacs, part 1: inf-clojure-mode

15. Using Figwheel With Emacs, part 2: CIDER

Using Figwheel With Emacs, part 2: CIDER

18. Using JavaScript libraries in ClojureScript

Using JavaScript libraries in ClojureScript