I build web applications for a living β Laravel and Node, mostly. That is the part of the job that pays. The part that keeps me interested is what happens when I hit the bottom of an abstraction and decide to keep going: an OS in Assembly, DEFLATE reimplemented from scratch, a Wayland notification daemon written to spec, a debugger bridge that speaks DBGp on the wire.
The other habit is that when a tool annoys me I rebuild it rather than filing an issue. Most of what is below started that way.
And on evenings, radio β pointing a software-defined receiver at the sky and decoding whatever falls out of it. Receive only; I am not licensed to transmit.
Most people stop at the framework. I keep going, and the projects below are where I stopped instead.
| Project | ||
|---|---|---|
| noted | Rust |
A self-hostable notes workspace that builds a knowledge graph out of your own writing. It pulls entities and relations from your notes, clusters them into themes, and answers questions against the graph β so it can reach a note through a chain of ideas rather than a keyword match. Local embeddings, no API key. |
| gitlab_logger | Go |
Ships GitLab projects, pipelines and full job traces into Loki, so CI history stays searchable in Grafana long after GitLab's retention has thrown it out. |
| ollama-tui | Rust |
A terminal chat client for local Ollama models with real modal editing β normal, insert, command and visual. Streaming responses, SQLite-backed sessions, no mouse. |
| iamanuragh.in | TypeScript |
The blog. Mostly Laravel and Rust, occasionally a post about something that took me three days and should have taken twenty minutes. |
xdebug-mcp Β· TypeScript Β· β
24
An MCP server for PHP Xdebug. It lets an AI assistant actually step through your
code β breakpoints, stack frames, variable inspection β over Unix socket or TCP,
instead of guessing at the bug from a stack trace.
zlib Β· JavaScript Β· β
20
Node's zlib core module reimplemented in pure JavaScript. Gzip and
Deflate/Inflate with no native bindings to compile.
tui-db Β· Rust
DBeaver without leaving the terminal. Browse schemas, scroll a 124-column table
sideways, all of it vim-bound.
swaynoti Β· Rust
A notification daemon for Wayland implementing the full FreeDesktop spec. I
wanted my notifications to look a particular way and this was, on reflection, the
proportionate response.
wlaunch-rs Β· Rust
A Raycast-style launcher for Linux, built on Iced. See above, regarding
proportionate responses.
ssh-mcp Β· TypeScript Β· β
2
An MCP server that gives an assistant a real SSH session on a remote host.
php_dockerize Β· Shell Β· β
3
One script that stands up a complete PHP stack in Docker, written after doing it
by hand for the fifteenth time.
Also: dbexplore.nvim (databases
inside Neovim) Β· chroma_viewer
(poke around a Chroma vector store) Β·
syncs (Rust)
| Project | ||
|---|---|---|
| Alexays/Waybar | β 11.7k | The Wayland bar that half of Linux runs. Taught the Image module to take its path from an executable, so the bar can show something that changes. |
| NativePHP/electron | β 515 | The Electron backend that lets PHP ship as a desktop app. Repaired the electron-builder configuration. |
| IamThejus/Gravity-Music | Four rounds on a Flutter music app: brought it to the Linux desktop with audio and MPRIS, packaged it for .deb, .rpm, APK and MSIX, built a taste-aware recommender with per-artist and discovery mixes, and added karaoke lyric modes. |
|
|
Radio and SDR. Pointing a software-defined receiver at the sky and decoding whatever falls out of it β aircraft transponders, weather, the occasional satellite β while beating Morse into my head one Koch drill at a time. Receive only: I am not licensed to transmit, and listening is most of the fun anyway. |
- myos. An operating system, in Assembly, from nothing. At some point you have to find out what is actually down there.
- A desktop assembled from parts. Gentoo, Hyprland, Neovim, and a dotfiles repo rewritten more often than any product I have shipped β nixos, ubuntu_nix_hyprland, dotfiles form the archaeological record.
- Hundred-day challenges. 100_days_rust and 100days_of_ai. I keep starting them. Do not ask which day I am on.
Regenerated nightly by a GitHub Action in this repository β no third-party image services involved.
iamanuragh.in Β· @anuragh_kp Β· LinkedIn Β· Stack Overflow Β· kpanuragh@gmail.com
Still debugging with console.log(). Still not sorry.




