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