Projects
Eavesdrop

Eavesedrop is a file watcher and hot reloader built using Go (golang).
Features:- Define multiple watchers for a single event loop.
- Run any number of short lived command line tasks.
- Run a single long lived service.
- Browser reloading via proxy.
- Temporary folder creation and cleanup.
- Supports json, toml, and yaml configs.
Motivation
I started using Go for various projects including web development in the beginning of 2024. I wanted to have a similar experience to what I had when I first tried using React, where changes were reflected immediately in the browser.
I first used Air which worked well for recompiling the Go project. However, I wanted to define multiple watchers on the same event loop to do different tasks based on the filetype, something Air did not support.
This is particularly important in my web based projects where I try to avoid node and the associated node_modules, package.json, etc. like the plague.
Go to projectFormageddon

Formageddon is a declarative HTML form validation helper.
Features:- Single javascript file, just imported it.
- Declarative - no javascript required.
- Works with native HTML5 validation.
- Uses aria attributes.
- No dependencies, not bundling, not building, no framework.
Motivation
When I first started adding responsiveness and reactivity to my websites, I was using Alpine.js to hold state for my UI components.
After a while, Alpine.js became cumbersome and ever expanding as I wanted to add more. This became especially annoying as I was writing esoteric JSON in a HTML attribute as a string to get this to work which meant I had to hold much more context in my own head as my LSP had no support for Alpine.
I was heavily influenced by libraries like HTMX which allow complex logic to be reduced by using declarative HTML attributes.
Formageddon works in the same declarative way. Developers can decide if forms need UI validation, which inputs should be validated, how they should be validated, what messages should be displated, and even if the form submission should be disabled until it is valid.
If a form and its intpus are validated by Formageddon, it automatically applies aria-invalid attributes which allow easy responsive styling with CSS for neutral, error, and success states. In particular, Formageddon integrates perfectly with Pico CSS.
Go to projectGo Lucide Icons
Go Lucide Icons is a wrapper of the Lucide Icons project for Go (golang) developers.
Features:- Support for the built in template/html templates.
- Support for the Templ templating language.
- CLI icon generation.
- Ability to pass attributes to the raw <svg> icon.
Motivation
Unless you're developing for the web using JavaScript or some variation of a JavaScript framework, you could be forgiven for thinking your chosen language is niche.
Go is far from a niche language to do web development in. Maybe not as popular as the likes of PHP or C#. However, due to the lower usage of Go for web development, there are fewer integrations for extremely helpful assets like icons and ui templates.
I found that there were no easily available icon libraries for Go, and especially not when using Templ. I took it upon myself to write a wrapper that allowed developers to use icons in three different ways. That is, using the built-in support for html/template in the standard library, using Templ templates, or generating raw icons straight to the file system of the project via CLI.
Go to project