Building Web Applications with Clojure

Explore the secrets and tricks of building Clojure web applications
3.4 (11 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.
231 students enrolled
82% off
Take This Course
  • Lectures 31
  • Length 2 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/2015 English

Course Description

This video course starts with a simple project setup and moves on to the various means to use frameworks or libraries, such as Ring and ClojureScript, leading the way to complex web solutions in Clojure. You will be presented with ways to connect to popular databases, such as PostgreSQL or MongoDB, and learn how some existing libraries work and how to use them properly. Thereon you will move to writing single-page applications with ClojureScript and REST API.

When you're finished with Building Web applications with Clojure, you'll be able to build and diagnose complex web systems in Clojure—regardless of the particular technologies applied.

About the Author

Tomek Lipski is an experienced programmer and open source enthusiast. He's been building and designing the architecture of web applications for seventeen years. He works with Clojure full-time. Tomek has also released a Ganelon Open Source microframework, which eases the development of AJAX web applications in Clojure.

What are the requirements?

  • For all those of you who already know Clojure, this video will help you sharpen your skills.

What am I going to get from this course?

  • Understand how Ring handlers work and implement simple routing mechanisms
  • Grasp the intricacies of the middleware to implement it in your own way
  • Discover how to handle forms, cookies, and sessions in one go
  • Get acquainted with the REST API architecture in Clojure and build a sample application
  • Manipulate queries easily with SQL Korma
  • Set up routing with Compojure and HTML generation with Hiccup
  • Find out how to build REST APIs with Liberator and learn templating with Enlive

Who is the target audience?

  • If you are a Java programmer and you want to gain expertise in web application development and would like to begin the journey with Clojure, then this course is perfect for you.

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: Getting Started

Configuring projects correctly for development is essential in every programming language. The use of Lein and Ring in web development under Clojure allows the developer to focus on the actual code.


The Lein-ring plugin simplifies a lot of common web development tasks when programming in Clojure. In this video, we will see how to connect it to a project and configure its settings.


Knowing about Ring handlers is very important when it comes to writing web applications in Clojure. If the programmer understands what it does and how it works, all other Ring concepts become clear and understandable.


The Ring server (based on the Jetty adapter) allows the developer to quickly run the written Clojure web app. In addition, we will also see how the Ring server speeds up the development cycle with dynamic Clojure namespace reloading.


Every web application needs to be distributed to a production/test/staging environment. This video presents the different options that are available when using the Lein-ring plugin.

Section 2: Ring Handlers

How the Ring handler works and how it is just like any other Clojure function.


How to work with Ring handler request map.


How to return appropriate Ring responses.


How to dispatch Ring requests to different handler functions.


Learn how route functions can be composed to streamline common tasks.

Section 3: Middleware

An overview of the common mechanisms for Clojure web apps as reusable components.


Rewrite a handler that provides a common mechanism to work as a middleware.


Modify Ring request and response maps to provide additional features.


Modify the handler configuration to use the Ring file that serves as middleware.

Section 4: Forms and Session Handling

Apply the correct middleware to access form data in Ring web applications.


Build dynamic responses from Ring handlers.


Use Ring middleware to send cookies to a browser and read received cookies.


Use Ring middleware to manage sessions in Clojure web applications.

Section 5: Building RESTful APIs

Clojure/Ring can be used to provide RESTful APIs as well as standard web applications.


Build an example RESTful API with Clojure and Ring.


Handle errors in an API in a way that is understandable to other applications.

Section 6: Database Connectivity

How to access the PostgreSQL database from a Clojure/Ring web application.

Using Korma

Connecting a Clojure web application to a MongoDB NoSQL database.

Section 7: ClojureScript

Write dynamic applications in ClojureScript instead of JavaScript.


Learn how to change page contents and access JavaScript objects from ClojureScript.


Communicate with the backend from ClojureScript level.

Section 8: Useful Web Libraries in Clojure

Use Compojure to organize your Ring handlers.


Use Hiccup for dynamic HTML generation in Clojure.


Use Enlive to separate HTML templates from Clojure code.


Use Liberator to provide REST APIs with little effort.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Packt Publishing, Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.

Ready to start learning?
Take This Course