A big part of a web development framework’s value is that it pre-selects a set of common libraries. If you use the framework as-is you will have a reasonable setup to build on without having to put any thought into it. More comprehensive frameworks express opinions on many more issues in addition to libraries and they often make it difficult to stray from their prescribed path. Lightweight frameworks confine their opinions to fewer topics and usually make it easier to follow your own path.

In this blog series I describe a list of libraries I picked for doing my web development. The list of libraries can be treated as a featherweight framework, a good foundation to make a quick start but with no fences to keep you on any particular path. The only exceptions are when a library depends on another library, for example easy-routes only works with Hunchentoot. Replacing Hunchentoot will require a replacement for easy-routes.

Below is the list of libraries I use. The options I considered and my reasoning for picking these particular libraries are set out in the various posts in the series.

Database : PostgreSQL

DB access : Postmodern

ORM / DAO : Postmodern

DB migrations : Database-migrations

HTTP server : Hunchentoot

Request routing and middleware : Easy-routes

JSON : ST-JSON

Templating : Djula

Testing : 5am

Logging : Verbose

Session management : Override Hunchentoot’s sessions with a custom class to store session data in PostgreSQL.

Password hashing : cl-pass

Configuration files : Sqlite

Building binaries : Buildapp with CCL

CLI parameters : unix-opts