Nibble
Content management system · 2026
A schema-driven CMS you install as your own Rails application — your theme, your content, your server.
- Ruby on Rails 8
- Inertia
- Vue 3
- TypeScript
- SQLite
- Tailwind CSS
Software engineer & Linux systems administrator · since 2009
I'm Mahfuz Shaikh. For more than seventeen years I've built software professionally and administered the Linux servers and infrastructure it runs on — designing applications, automating deployments, keeping production healthy. Today I also build products of my own, from a content management system to terminal tools and software for the Linux desktop.
Rust and Ruby for the code. Linux, systemd and Kamal to run it. SQLite until something proves it needs PostgreSQL. Written in Neovim, on Arch and Hyprland. Everything I use
Selected work
Content management system · 2026
A schema-driven CMS you install as your own Rails application — your theme, your content, your server.
Database client · TUI · 2026
A fast SQL client and full-screen TUI for PostgreSQL, MySQL, MariaDB and SQLite — one binary, the same keys everywhere.
Quarry is a native SQL client for the terminal, written in Rust. It pairs a REPL in the tradition of pgcli and mycli with a full-screen interface for exploring schemas, editing tables safely and reading query plans, and it is built on the assumption that one day you will be connected to production by mistake.
System monitor · Linux · 2026
A system monitor for Linux that remembers — a crash-proof collector daemon and a native app to explore what happened.
Sysman is a Linux system monitor in Rust with three parts — a collector daemon that samples the machine every two seconds and keeps history in SQLite, a native GPU-accelerated app built on GPUI to explore it, and an optional, tightly confined helper for the readings that need root. Its first rule is that the last reading before a crash is already on disk.
Desktop app · Linux · 2026
One app to choose, configure, preview and apply themes to both of your gates — the login screen and the lock screen.
Client work
Alongside my own products, I engineer platforms for clients — production systems that real businesses run on every day.
All client workThe workshop
Everything I’m working on, out in the open — what’s in progress, what has shipped, and the ideas I’m testing.
How I work
From the first line of code to the server it runs on, the backups behind it and the alert at 3am. I build like someone who will have to operate it — because I usually do.
Every component is something to patch, monitor and pay for. I choose proven, understood technology and spend complexity only where people can feel the difference.
Systems should refuse loudly rather than continue wrongly — a deploy that stops before it breaks production, a value shown as unknown rather than a misleading zero.
Small releases are easy to verify and easy to undo. A changelog written for the person running the system, not the person reading the diff.
Writing
Rust
A postmortem of build storage and test time across seven Rust workspaces: a 483 GB target folder that stalled a 32-core desktop on disk I/O, a release that ran another checkout's tests, a /tmp full of test leftovers, and the changes that fixed each one, with the numbers.
Read
Linux
"Record this window" sounds like the easiest feature in a screen recorder. On Wayland it took my own capture pipeline, a recorder I couldn't hide from, an audio server with a long memory, and a parent-death signal the kernel quietly drops.
Read
Linux
Building easyshot taught me that the hard part of a Wayland screenshot tool isn't the capture protocol. It's the state you can't see, like a bar that's closed but still fading, a cursor painted into every frame, or a service started just by asking it a question.
Read