Practicalli Clojure WebApps book banner

A guide to developing server-side web applications and API's from the ground up using Clojure, aiming for a simple and clean design using functional programming concepts. Libraries are used to provide common features and alternative libraries are discussed.

Relevant theory and background reading is included, however, the focus of this guide is for you to build projects and experiment.

Clojure CLI and deps.edn

Projects are created and configure using Clojure CLI tools, using deps.edn for configuration. Older content uses Leinigen for project configuration.

Component / library approach

The Clojure community has a diverse set of libraries which focus on a specific need. These libraries are assembled to rapidly develop a tailored solution. Using a library approach means those libraries are relatively simple to replace with alternatives or your own libraries.

Project templates are used to create projects that include commonly used libraries, along with example code, demonstrating how common services can be assembled. Templates have options to configure the project as its created, customising to the specific needs of the problem being solved.

Clojure does not focus on the classic framework approach like Rails or Spring, for a very good reason. Frameworks are design decisions others have made without knowing the context of the current problem at hand, so there is no guarantee on how many of those decisions are relevant. Frameworks tend to include many features not relevant to the current problem. Frameworks can be over relied upon, taking away an opportunity to think about the most relevant solution.

Built with Spacemacs

Book refresh in 2020

The guides are to be updated to use Clojure CLI and tools.deps for project configuration and depenedency management. See Clojure web server from scratch and Practicalli Clojure WebApps playlist whilst this content is being updated.

Discussions and feedback

Join the conversation on Clojurians Slack

Get a free Clojurians slack community account

Creative commons license

Practicalli Clojure WebApps by Practicalli Creative Commons Attribution Share-Alike 4.0 International

results matching ""

    No results matching ""