koyo is a package by Bogdan Popa that is definitely worth knowing about for anyone getting into web development with Racket. Bogdan’s package builds on the web basics provided with Racket. It definitely goes beyond the grab-bag of utilities that I have developed in my own Racket web work and bundled together in Server: Racket. All sorts of utilities and tooling essential for serious web programming can be found there. Grab a coffee and look at the list of topics koyo covers:
It’s enough to make a Racket web programmer drool. I’ve been playing around and am happily using these utilities in my own web work. I’m working on something and am getting pretty tired of Xexprs (I use Matthew Butterick’s txexpr), so I’m digging into the HAML part of koyo. Probably every Racket web programmer has their own poor man’s mix&match variant of these tools, but the fact that so many are available in a single, coherent package, is a big step forward. The fact that these tools are decoupled and can be used on-demand—as opposed to having a ton of unwanted stuff automatically pulled in—makes it easy to choose the pieces you need and skip the rest. (Until you do need them. And pretty much every site will probably need most of these components.) To get started, koyo comes with a neat
raco command that sets up a template web project:
raco koyo new example
Run that and take a look at the
README.md file inside to get started. There’s even an introductory video.
Thank you Bogdan for improving the Racket web world. (If you do Racket web work, join me in sponsoring him on GitHub as a way of showing your appreciation.)