Why isn’t Lisp more wide­ly used in web de­vel­op­ment?

You’d love to make a site in Rack­et, the hottest Lisp out there. The Rack­et de­vel­op­ers have built up a tru­ly im­pres­sive sys­tem that’s a real plea­sure to use.

All the in­gre­di­ents ap­pear to be there:

Built in web-serv­er? Check.

High-qual­i­ty, thor­ough doc­u­men­ta­tion? Check and check.

A Lisp that feels like it comes from the fu­ture? Oh yeah.

But there’s pre­cious lit­tle guid­ance out there on how to make real-world web sites with the Rack­et web serv­er.

Sure, the of­fi­cial doc­u­men­ta­tion con­tains a hand­ful of sim­ple ex­am­ples. They’re a good start. But you’re not sure how to move from them to mak­ing a more com­plex site. There’s a big gap.

You start to sus­pect that Rack­et’s HTTP serv­er is just a fan­cy toy.

You’re about to give up on the idea of hack­ing the web in Lisp.

That would be a real shame, be­cause the Rack­et web serv­er—while fair­ly lean com­pared with oth­er web frame­works out there—is pow­er­ful and flex­i­ble.

And when you com­bine Rack­et’s HTTP serv­er with the cut­ting-edge fea­tures of Rack­et, we’re talk­ing about a sys­tem that web de­vel­op­ers can drool over.

Even if you’re new to the web, Rack­et’s di­rect ap­proach to web pro­gram­ming gives you a de­light­ful way to dip your toes in with­out get­ting bogged down in a bazil­lion dif­fer­ent frame­works and de­pen­den­cies.

En­ter Serv­er: Rack­et

Serv­er: Rack­et is an ebook all about real-world web de­vel­op­ment with the Rack­et’s built-in HTTP serv­er.

We will tack­le the bat­tery of prob­lems faced by web de­vel­op­ers who want to hack the web in Rack­et. You’ll find out how to solve prob­lems that the of­fi­cial Rack­et doc­u­men­ta­tion doesn’t talk about. (Not in de­tail, any­way, and not in any full-length tu­to­r­i­al way).

In 184 pages, we’ll dig in to these web de­vel­op­ment top­ics and see how to deal with them in Rack­et:

Part 1: HTTP à la Rack­et

Work­ing with HTTP re­quests and re­spons­es en­tire­ly with­in Rack­et: no ex­ter­nal sys­tems, and us­ing only mod­ules that come stan­dard with Rack­et.

  1. The servlet: In the be­gin­ning there was re­quest?re­sponse?
  2. Routes: URL-based dis­patch­ing
  3. Log­ging
  4. Work­ing with JSON data
  5. HTML tem­plates
  6. Pro­cess­ing HTML forms
  7. Han­dling AJAX re­quests
  8. Cook­ies
  9. Test­ing

Part 2: In­ter­act­ing with oth­er sys­tems

Where we be­gin to con­nect to spe­cial­ized sys­tems run­ning out­side of Rack­et and use spe­cial­ized pack­ages that aren’t in­clud­ed in a stan­dard Rack­et in­stal­la­tion.

  1. Us­ing a re­la­tion­al data­base (db, sql)
  2. Ses­sion man­age­ment (re­dis)
  3. En­vi­ron­ment vari­ables (dotenv)
  4. JSON Schema val­i­da­tion (argo)
  5. Mod­els (ORM) (rac­quel)
  6. Send­ing HTTP re­quests (http)
  7. Caching (mem­cached)
  8. Data­base mi­gra­tions with Phinx
  9. Rack­et & Dock­er
  10. A CRUD-style HTTP API
  11. De­ploy­ing a Rack­et-pow­ered site be­hind a proxy

The ebook is in PDF for­mat, with Rack­et starter code—ful­ly-func­tion­ing mini-sites—il­lus­trat­ing how these top­ics can be tack­led with Rack­et, for near­ly every chap­ter.

What oth­ers are say­ing

Serv­er: Rack­et was es­sen­tial read­ing as I built my first e-com­merce site from scratch with Rack­et. It’s a ter­rif­ic, prac­ti­cal book with lots of use­ful ideas and ex­am­ples.

Get your copy

To get the book, just go .

About the au­thor

I’m Jesse Ala­ma. I’ve been hack­ing Scheme and Lisp since 1996. And I love build­ing web sites. I’m a full-stack de­vel­op­er by day. (And some­times by night, too.) I made argo, a JSON Schema val­ida­tor, as well as json-point­er