LambdaLounge January: Clojure Web apps with Heroku Workshop
For this month's session, we'll be running a beginner's workshop on building and deploying Clojure web applications.
Although you don't have to be an expert programmer, some familiarity with another programming language, and a bit of experience with using tools like Git will be useful. If you don't have that, then don't worry, just install the pre-requisites below and sign up.
We'll go through some common toolchains for building Clojure web applications and then build and deploy a simple example on Heroku.
After that, we'll look at how you can add templating, and how REPL-driven development works for web applications.
By the end of the workshop you should have a small web application deployed to Heroku.
As the session is a workshop format, attendees will need to bring their own laptop.
Please ensure that you have:
Installed Clojure, preferably via Leiningen
Installed the Heroku toolbelt
Cloned this repo to your laptop
Getting started instructions:
Pre-requisites: Must have Git and Java 8+ installed.
- Install Leiningen
This is easiest using a package manager.
Mac, using Homebrew: brew install leiningen
Ubuntu: apt install leiningen-clojure (other distros are similar)
Windows, using Chocolatey: choco install lein
Alternatively, follow the instructions at leiningen.org/
- Install Heroku CLI
Mac: brew install heroku/brew/heroku
Ubuntu: sudo snap install heroku --classic
For Windows or other Linux distros, follow the instructions at devcenter.heroku.com/articles/getting-started-with-clojure#set-up
- Get the Example app
- Clone the following Git repository: github.com/the-frey/clojure-getting-started
- Get an editor and REPL set up
Emacs: If you're an emacs user, then rejoice! There's a number of different setups you can use. This is probably the best beginner guide (www.braveclojure.com/basic-emacs/), but on the whole if you've got a recent install (25 or 26) then that will do. If you want a slicker experience, then maybe try Spacemacs (spacemacs.org/), although we prefer it in non-Evil mode.
Atom: ProtoREPL for Atom - atom.io/packages/proto-repl - this is a great all-rounder with some ace in-line evaluation options, good repl and emacs-style tight integration. If you want to mirror the author of ProtoREPL's setup, then his guide is at gist.github.com/jasongilman/d1f70507bed021b48625.
VS Code: Many people are now beginning to use VS Code for Clojure. There are some decent guides and plugins out there, and with our test group, this was the best plugin to use: marketplace.visualstudio.com/items?itemName=cospaia.clojure4vscode. It seems that before this, another plugin was preferred: spin.atomicobject.com/2017/06/22/clojure-development-with-visual-studio-code/, but we had issues and it seems we're not the only ones.
The meeting starts at 6:30pm (doors open a little earlier, we aim to start by 6:35pm).
Want to speak at a future event? Get in touch with us! We run monthly meetups and regular lightning talk sessions in case you're not comfortable giving a longer talk yet :)
This event is generously sponsored by Dunnhumby, a world leader in consumer data science and a heavy adopter of Scala.
Again - please get in touch if you’d like to talk at a future event!
Contact the mailing list or ping @lambdamcr, or speak to us on the night. We’re a very supportive crowd, do let us know if you have any questions!