Profile PictureJesse Alama

Server: Racket—Practical Web Development with the Racket HTTP Server

10 ratings

“If Racket is so great, why isn't it more widely used in web development?”

You’d love to make a site in Racket, the hottest Lisp out there. The Racket developers have built up a truly impressive system that’s a real pleasure to use.

All the ingredients appear to be there:

Built in web-server? Check.

High-quality, thorough documentation? Check and check.

A Lisp that feels like it comes from the future? Oh yeah.

But there’s precious little guidance out there on how to make real-world web sites with the Racket web server.

Sure, the official documentation contains a handful of simple examples. They’re a good start. But you’re not sure how to move from them to making a more complex site. There’s a big gap.

Maybe you start to suspect that Racket’s HTTP server is just a fancy toy.

Maybe you’ve even given up on the idea of hacking the web in Lisp.

That would be a real shame, because the Racket web server—while fairly lean compared with other web frameworks out there—is powerful and flexible.

And when you combine Racket’s HTTP server with the cutting-edge features of Racket, we’re talking about a system that web developers can drool over.

Even if you’re new to the web, Racket’s direct approach gives you a delightful way to dip your toes in without getting bogged down in a bazillion different frameworks and dependencies.

Enter Server: Racket

Server: Racket is an ebook all about real-world web development with Racket. In this ebook, you will learn how to make real-world web sites using the built-in Racket HTTP server.

We will build up a full-fledged site, step-by-step, and find out how to solve problems that the official documentation doesn’t talk about (not in detail, anyway, and not in any full-length tutorial).

We’ll dig in to these web development topics and see how to deal with them in Racket.

Part 1: HTTP à la Racket

Working with HTTP requests and responses entirely within Racket: no external systems, and using only modules that come standard with Racket.

  • The servlet: In the beginning there was request?response?
  • Routes: URL-based dispatching
  • Error handling
  • Logging
  • Working with JSON data
  • HTML templates
  • Processing HTML forms
  • Handling AJAX requests
  • Cookies
  • Testing

Part 2: Connecting with external systems

Where we begin to connect to specialized systems running outside of Racket and use specialized packages that aren't included in a standard Racket installation.

  • Using a relational database (db, sql)
  • Session management (redis)
  • Environment variables (dotenv)
  • JSON Schema validation (argo)
  • Models (object-relational mapping) (racquel)
  • Sending HTTP requests (http)
  • Caching with memcached (memcached)
  • Database migrations with Phinx
  • Racket and Docker
  • A CRUD-style HTTP API
  • Deploying a Racket site behind a proxy server

What's included

The ebook is a 184-page PDF, together with Racket starter code to help jump-start your Racket web adventures.

What others are saying

Server: Racket was essential reading as I built my first e-commerce site from scratch with Racket. It’s a terrific, practical book with lots of useful ideas and examples.

— Matthew Butterick, creator of Pollen and author of Beautiful Racket, Practical Typography, and Typography for Lawyers, talking about his Racket-powered site

About the author

I’m Jesse Alama. I’ve been hacking Scheme and Lisp since 1996. And I love building web sites. I’m a full-stack developer by day. And by night, too. I write about these topics over at I made the Argo  (JSON Schema validator), json-pointer (a notation for referring to JSON data), and uri-template (RFC 6570) Racket packages. I'm the author of the entry on the lambda calculus in the Stanford Encyclopedia of Philosophy and have worked as a researcher in mathematics and computer science, primarily in automated theorem proving.

In my view, Lisp has a lot of potential for shaping how we develop for the web. The flexibility and power of Lisp is well-suited to taking on the web’s thorny problems.

I’m happy to share with you what I’ve learned so far about making web sites using Racket, a truly world-class Lisp.

Add to cart

You'll get: A 184-page PDF and sample code

Copy product URL


(10 ratings)
5 stars
4 stars
3 stars
2 stars
1 star

Server: Racket—Practical Web Development with the Racket HTTP Server

10 ratings
Add to cart