I build things, mostly in Ruby, JavaScript, Go and lately Swift. Comfortable with AWS, Docker, Postgres/MySQL, Snowflake and whatever else the job needs.
I like small libraries with no magic, DSLs you can read out loud, and native apps that start instantly. Still learning, junior developer for life 🙂
Below is the stuff I actually use. Hope you find something useful.
| Name | Description |
|---|---|
| hammer | The bastard Frankenstein child of Rake, Thor and Joshua. Drop a Hammerfile, run hammer, ship |
| typero | Type system with value coercion and constraints |
| clean-mock | Lightweight FactoryBot alternative, similar interface, no magic |
| json-exporter | Versioned JSON data exporter with nested object support |
| html-tag | HTML tag builder on steroids, with Rails / Sinatra / Lux adapters |
| hash_wia | Hash with indifferent access - strings, symbols or methods |
| lux-url | URL object with a few extra features |
| lux-deploy | SSH + rsync deploys. No Docker, no registry, one yaml file |
| lux_assets | Web asset packer - simplified webpack/sprockets, convention over configuration |
| schedulero | Simple Ruby scheduler that runs tasks in intervals |
| image_resizer | Fast and stable Ruby image resizer |
| lux-plugins | My personal Lux plugin collection |
| clean-annotations | Annotatable attributes and callbacks for non-Rails classes |
| class-mattr | Set and get method attributes |
| class-cattr | Class properties, in a non-polluting way |
| class-callbacks | Rails-style callbacks for non-Rails projects |
|
|
Spotlight-like launcher for macOS, minus the parts of Spotlight nobody asked for.
|
|
|
Desktop GUI for the processes in your
|
|
Svelte-inspired custom elements, at runtime - no compile step. Reactive state, scoped styles, zero dependencies. |
| Name | Description |
|---|---|
| postwind | Tailwind v4 runtime extension in ~500 lines. Pipe responsive (p-4|8), unit suffixes, shortcuts |
| cf-resizer | Cloudflare image resizer - store on R2, deliver via Workers |
| jshaml | HAML-like template parser that compiles to render functions |
| node-notify | Socket notify server, updates over socket or web |
| dux-pjax | Small PJAX helper for server-rendered navigation and targeted refreshes |
| Name | Description |
|---|---|
| image-resizer-golang | AVIF-first resizing service. Two-layer cache, worker pool with request coalescing, admin dashboard |
| procfile-runner | Procfile GUI, Go + Wails - see Mac apps above |
| Name | Description |
|---|---|
| cf-api | One CLI for the full Cloudflare API. Replaces wrangler + flarectl + curl |
| hammer | Task runner with Rake-style paths and Thor-style args. LLMs love it |
| lux-deploy | Caddy + systemd atomic-release deploys, driven by one yaml file |
| Name | Description |
|---|---|
| populous_game | Populous, rebuilt in Godot |
| svelte-snake | Snake, because Svelte was fun (play it) |