• Skip to main content
  • Skip to footer

PurelyFunctional.tv

  • Learn Clojure
  • About
  • đź›’ Cart
  • Log in

Start building your server-side apps in an hour

Web development in Clojure is just like everything else: you build up complex behavior from simple parts. This course builds a TODO list app from scratch, explaining the important concepts, and deploying it to a cloud service. It includes:

  • The parts of Ring and how they work together.
  • Creating a good development workflow.
  • Routing.
  • Responding to different HTTP request methods.
  • Adapting to browser limitations.
  • Generating HTML.
  • Storing data in a database.
  • Deploying the server to Heroku.

This course does not cover:

  • Javascript or ClojureScript frontend. You can learn ClojureScript frontend development here.

Check out what people are saying

"Your Web Development in Clojure course really made things click for me. It gave me just what I needed to stop just researching and get started on a project."

Robert Crim

Robert Crim

Web Development in Clojure

Updated June 22, 2018

Want this course?

Team License

$499
Get this course
HD Download
Watch Online
Lifetime Access
For your company
$499.00 – ADD TO CART Checkout Added to cart

Download License

$75
Get this course
HD Download
Watch Online
Lifetime Access
For an individual
$75.00 – ADD TO CART Checkout Added to cart

Online License

$48
Get this course
--
Watch Online
Lifetime Access
For an individual
$48.00 – ADD TO CART Checkout Added to cart

Membership

$49/mo
Get all courses
HD Download
Watch Online
Monthly/Yearly access
For an individual
$49/mo - 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.

Video time: 01h04m
0 / 2
0 / 2

Lessons

26 min

1. Let's get a server up and running in the cloud

Have you ever wanted to build a web app in Clojure? Have you wondered how to get started? The first part of this course guides you through building a simple web app and deploying it to Heroku, a cloud host.

38 min

2. Making a complete app

In this second part, we continue to build the app, rendering HTML, building customized middleware, and storing data in a database.

Extra Resources

Register for a free account or log in to access these resources.

Ring Spec to Hang on the Wall

If you program the web in Clojure, you probably use Ring. Even if you don’t, your server is likely Ring compatible.

Ring has a small SPEC. It’s centered around defining the keys one can expect in the request and response maps. And the exact names for keywords are easy to forget.

I don’t want to forget. I use Ring often enough that I want a quick reference. A while ago, I printed out a quick summary of the keys for the request and response maps and hung it on the wall behind my monitor. I refer to it frequently.

If you program the web in Clojure, you might appreciate this printout. If you’re learning, it could be an invaluable reference.

One change in Ring 1.3 is very significant: the specification is shorter. It’s simpler. Three keys were deprecated in the Ring request map (:content-type, :content-length, and :character-encoding). These keys were unnecessary because their values were in the headers, which are also in the Ring request. Equivalent utility functions have been added for pulling the data out of the headers.

Why is this important? While many libraries get more complex and overburdened, it is refreshing to see a library going in the correct direction of shedding complexity. It does not significantly impact application development. Nor does it reduce the already low barrier to entry. Still, I welcome this kind of change.

Ring is the central specification that ties most of the Clojure web ecosystem together.The spec should be minimal. And a mark of good software is that it models the problem very closely without unnecessary abstraction. Ring merely defines a common format (using Clojure data structures) that mirrors the text-based HTTP message format. That’s why Ring has worked so well thus far and why it is appreciated in Clojure.

Footer CTA

Get the newsletter for free

The PurelyFunctional.tv Newsletter is a weekly email to inspire functional programmers.

Enter your email address to receive emails about Clojure and Functional Programming. These include the weekly newsletter and other great offers. You can unsubscribe any time.

Copyright © 2021 LispCast and Eric Normand