World Congress 2021 • Jul 1, 2021

Using backend languages for frontends: Why ClojureScript is an awesome idea!

Tobias Schröder

What if you could build robust frontends without JavaScript ecosystem churn? Discover how ClojureScript unifies your stack with functional immutability, shared backend code, and radically less boilerplate.

Pause
Mute Enter Fullscreen
#1 about 2 min

Using Clojure for full-stack web application development

How a single language enables seamless code sharing across backend and frontend boundaries.

#2 about 2 min

Key benefits of learning the Clojure programming language

Why simplicity, strict immutability, and Java interoperability make this Lisp dialect powerful.

#3 about 3 min

Advantages of adding ClojureScript for frontend projects

How data-driven architecture and simplified build tools improve the frontend development experience.

#4 about 3 min

Using higher-order functions to manipulate data collections

How core functional programming methods like map, filter, and reduce process lists.

#5 about 3 min

Core data types and collection structures in Clojure

Understanding the syntax for numeric values, strings, keywords, sets, and maps.

#6 about 3 min

Writing custom functions and defining variables in Clojure

How nested parentheses evaluate inner expressions and build basic programmable logic.

#7 about 2 min

Transpiling ClojureScript logic into standard JavaScript code

Comparing basic functionality differences when translating structural Lisp statements to JavaScript output.

#8 about 3 min

Configuring dependencies with deps.edn and shadow-cljs

Setting up project environments and managing compilation targets for a frontend workspace.

#9 about 4 min

Managing application state with the Re-frame library

Following the unidirectional six-step data flow from event dispatching to DOM rendering.

#10 about 5 min

Live demonstration of a ClojureScript shopping application

A walkthrough of a functional checkout interface managing dynamic shopping cart state.

#11 about 3 min

Initializing Reagent components and application startup events

Triggering database queries and binding the DOM rendering logic on application load.

#12 about 3 min

Generating dynamic HTML markup with the Hiccup library

Using Clojure keywords and standard map collections to define component structures without JSX.

#13 about 3 min

Processing Ajax requests and data subscriptions in Re-frame

Handling remote API responses and broadcasting state updates to reactive listener components.

#14 about 3 min

Utilizing keywords as functions to extract nested data

Applying a native language feature to safely process nested dictionaries without errors.

#15 about 6 min

Q&A on using Clojure versus other backend patterns

Discussing how strictly defined data constraints justify choosing Lisp over Java architectures.

Matching moments

2:14 min

Exploring frontend development choices beyond standard JavaScript frameworks

Stacy Cashmore · World Congress 2022

4:30 min

Tracking open source community trends in JavaScript native frameworks

Dan Cranney Dan Cranney +2 · LIVE

5:01 min

Layering frontend frameworks using progressive decoupling strategies

Shedrack Akintayo · LIVE

1:50 min

Approaching Java development with a Clojure mindset

Dan Lebrero · LIVE

2:26 min

Lessons learned from adopting a Clojure mindset

Dan Lebrero · LIVE

5:10 min

Evaluating the operational trade-offs of modern javascript frameworks

Chris Heilmann Chris Heilmann +2 · LIVE