Projects

A few things I built and maintain. Some scratched an itch, others just seemed like fun.

django-tailwind-cli

This project is my take on integrating the Django web framework and Tailwind CSS without a local node.js installation. It depends on the fantastic Tailwind CSS CLI provided by the Tailwind project.

It started a few years ago when I started to fall in love with Tailwind CSS. Recently, I moved the project to the django-commons project, but still maintain it. I love the safe haven the django-commons provides.

GitHub - django-commons/django-tailwind-cli: Django and Tailwind integration based on the prebuilt Tailwind CSS CLI.
Django and Tailwind integration based on the prebuilt Tailwind CSS CLI. - django-commons/django-tailwind-cli

burrow

I wanted to build a few small, self-hosted web applications for myself - a read-it-later service, a feed reader, that sort of thing. But I couldn't find a Go web framework that gave me the batteries-included experience I was used to from Django, while keeping deployment as simple as copying a single binary. So I built one.

Burrow is a web framework for Go with server-rendered HTML, modular apps, embedded SQLite, and everything you need - sessions, authentication, migrations, i18n - included. It's built for the Small Web: applications that ordinary people can download and run without Docker, Kubernetes, or a computer science degree.

GitHub - oliverandrich/burrow: A modular Go web framework built on Chi, Bun/SQLite, and html/template — deploy as a single binary.
A modular Go web framework built on Chi, Bun/SQLite, and html/template — deploy as a single binary. - oliverandrich/burrow

den

I needed a database layer for Burrow that works with both SQLite and PostgreSQL without changing application code — and without requiring CGO. Existing ORMs either forced me to pick a backend upfront or leaked SQL dialects into the application layer. So I built one.

Den is an object-document mapper for Go. You define your data as structs, and Den handles schema creation, indexes, full-text search, and migrations automatically. It ships with a pure-Go SQLite backend for single-binary deployments and a PostgreSQL backend for when you require more concurrency. Same API, same code, different DSN.

GitHub - oliverandrich/den: ODM for Go — SQLite and PostgreSQL backends, same API
ODM for Go — SQLite and PostgreSQL backends, same API - oliverandrich/den

gohatch

Recently, I turned into a Go lover because of its simplicity and ease of use. People who know me know that I love well-organized projects and love to use templates for that to quickly start an experiment. Yes, even in the days of AI, a template is faster than some prompts to scaffold an empty project to vibe code some ideas.

I didn't find any tool for that that fulfilled all my needs, so I built a simple one myself. gohatch might be helpful for you too.

GitHub - oliverandrich/gohatch: Scaffold Go projects from git-hosted templates with automatic module path rewriting
Scaffold Go projects from git-hosted templates with automatic module path rewriting - oliverandrich/gohatch

I also created two templates I regularly use for small projects:

  • go-cli-template - A ready-to-use template for Go CLI applications with urfave/cli, golangci-lint, and goreleaser.

eol-date

A small CLI tool to check end-of-life dates based on the API of endoflife.date.

GitHub - oliverandrich/eol-date: Check end-of-life and support dates for software products from the terminal
Check end-of-life and support dates for software products from the terminal - oliverandrich/eol-date