~$ cat stack.md

// core_stack

Gleam Logo

Gleam

Gleam is the language that powers this site. It runs on the fantastic Beam engine and has been a pleasure to work with. I highly recommend people check it out.

Read more ->
Fly Logo

Fly

This entire website runs in a container hosted on Fly.io. It was easy to set up, scale, configure and so forth.

Read more ->
Lustre Logo

Lustre

Lustre is a DSL that allows me to write HTML as Gleam code, though it can also be used as a frontend framework.

Read more ->
Wisp Logo

Wisp

Wisp is the web framework I use. It's written in Gleam, it's fast, and it doesn't get in my way.

Read more ->
TailwindCSS Logo

TailwindCSS

I've never been much of a front-end developer, and TailwindCSS helps me overcome that disability.

Read more ->
SimpleAnalytics Logo

SimpleAnalytics

I like getting statistics without tracking people. SimpleAnalytics lets me get traffic data without infringing on privacy.

Read more ->
Web3Forms Logo

Web3Forms

I don't want to hand my email out to every bot. Web3Forms lets people contact me while verifying they're not bots.

Read more ->
Playwright Logo

Playwright

I'm a big fan of having a well tested system. Playwright is a great end-to-end testing tool. It's fast, reliable, and easy to use.

Read more ->
ClojureScript Logo

ClojureScript

I've been a fan of Clojure for a long time. ClojureScript is a dialect of Clojure that compiles to JavaScript.

Read more ->

// libraries

Mist

A great web server which powers this entire website.

read more →

Simplifile

My blog posts are stored as HTML files in the container. Simplifile makes it easy for me to read these files.

read more →

tempo

I need to be able to schedule blog posts, and therefore I need date and time management. Tempo gives me those features.

read more →

Gleam JSON

I don't do much with JSON, but I have some data that needs to be loaded on startup, like metadata about all of my blog posts. Gleam JSON makes this easy.

read more →

Gleam OTP

Gleam OTP provides access and functionality to Erlang's OTP framework. I use it primarily to create in-memory caches to reduce reads from disk.

read more →

Vix

Vix is an Elixir library for image processing. I use it to manage images at different sizes to reduce the amount of data transferred.

read more →

Snag

Snag is a great little library that provides an error type which makes it easy to see what is going wrong in my application.

read more →

PrismJS

Code highlighting is important for any coding blog. PrismJS does exactly that.

read more →

Marked

I write my posts in Markdown, which has to be turned into HTML. Marked is a JS library which does exactly that.

read more →