Websites and SaaS

These are some of the web applications I’ve built in my spare time.

Project Description
Free Invoice Generator Free invoicing software.
Task Queues A list of message brokers and task queues across many programming lanagues and implementations.

Libraries and Tools

This is the stuff I’m currently working on and actively maintaining in the open.

Project Description
chief A Procfile runner for Racket.
component Simple dependency injection for Racket.
cursive_re Readable regular expressions for Python 3.6+.
deta A functional database mapper for Racket.
dramatiq A distributed task processing library for Python 3.6+.
dramatiq_dashboard A monitoring UI for Dramatiq.
dramatiq_sqs An Amazon SQS broker for Dramatiq.
forms A web form validation library for Racket.
geoip Geolocation for Racket based on MaxMind’s GeoIP databases.
hugs A library that maps SQL expressions to Python fuctions.
koyo A web development toolkit for Racket.
marionette A Racket library that lets you control Firefox via the Marionette Protocol.
molten A modern API framework for Python 3.6+.
net-ip Utilities for working with IP addresses and networks in Racket.
north A database schema migration tool written in Racket.
postmark-client A Postmark client written in Racket.
py-test.el A Python test runner for Emacs.
racket-redis Fast, idiomatic bindings to Redis for Racket.
racket-sass Bindings to libsass for Racket.
resource_pool A generic thread-safe resource pool for Python.
sentry A Sentry SDK for Racket.
twilio A Twilio client for Racket.
watchdog_gevent A gevent-based observer for watchdog.
web-app-from-scratch Supporting material for my “Web App From Scratch” blog series.

If you would like to support my work on any of these projects, please consider either buying a Tidelift subscription for dramatiq or molten or setting up a recurring payment via Patreon.


These are libraries and tools that I am no longer actively maintaining. Most of these are perfectly usable and don’t require maintenance, but if you use them and run into problems I won’t help much beyond maybe giving you some pointers.

Project Description
PyREPL Run a Python interpreter inside Vim.
RbREPL Run a Ruby interpreter inside Vim.
anom An object mapper for Cloud Datastore for Python 3.6+.
anom-go An object mapper for the AppEngine Datastore in Go.
apistar_cors CORS support for API Star apps.
apistar_dramatiq Dramatiq support for API Star apps.
apistar_prometheus Prometheus metrics for API Star apps.
apistar_request_id Request id generation and propagation for API Star.
apistar_sentry Sentry support for API Star apps.
apistar_settings A settings component for API Star apps.
browser-connect Live browser interaction for Vim.
cedar-mode Emacs mode for cedar.
cedar A web service definition format and code generator.
crontab A crontab spec parser for Scala.
elm-ast A parser for Elm in Elm.
elm-combine Parser combinators for Elm.
elm-cookiecutter A cookiecutter template for Elm apps.
elm-datepicker A reusable datepicker for Elm.
elm-generate Generators for Elm.
elm-mode An Elm mode for EMACS.
elm-querystring A library for working with querystrings in Elm.
elm-route A type-safe routing library for Elm.
elm-time A pure Elm date and time library.
falcon_sugar A little sugar for Falcon applications.
fargate_scraper A CLI tool that scrapes Fargate tasks to find Prometheus targets.
ff A fuzzy-finder for the terminal.
firechannel An almost-dropin replacement for the GAE channels API using Firebase.
h2p A Python interface to libwkhtmltox.
heater A Python heatmapping library.
ido-clever-match An alternative matcher for Emacs ido-mode.
markii A development-mode error handler for Python web apps.
modviz A module dependency graph visualizer for Python.
mold A fast templating engine for Python.
multiprom A multiprocess-friendly Prometheus client for Python.
pico A minimal lisp interpreter written in Python.
quicksilver A fast file finder for VIM.
tcopy A tail-call optimizing decorator for Python.
threadop Adds a threading operator to Python.
trio-redis A trio-based Redis client for Python. A fast implementation of yes in Python.
zed A toy text editor.