DEV Community

Aarav Maloo
Aarav Maloo

Posted on

blob - A minimal notes manager written in C

I built blob, a minimal, keyboard-driven note manager that lives inline in your terminal — not a fullscreen TUI app, just a fast selector that gets out of your way the moment you're done.

Some of what's under the hood:

  • ~2,600 lines of pure C11, zero runtime dependencies
  • Full note lifecycle: create, rename, search, trash/restore, and permanent delete, all with live search and relative timestamps
  • A command palette and a real plugin system — plugins declare their own API version, permissions, and run mode, and blob checks compatibility and warns on conflicts before loading them
  • 11 built-in plugins so far: encryption (lock), git-sync, tagging, fuzzy search, stats, pin, archive, export to HTML/PDF/DOCX, timed reminders, and more
  • A cross-platform Makefile (Linux/macOS/Windows via MinGW) with a proper test suite
  • Packaged and shipping through real distribution channels — AUR (yay -S blob-bin) and winget (winget install aaravmaloo.blob), on top of GitHub Releases

Blob is extendable using plugins. Each plugin uses a manifest (v2) that defines the permissions it needs and blob, at runtime compiles the plugin's code and stores the binary in its directory. That binary is then used to run that plugin independently.

The hardest part wasn't the note-taking logic; it was designing the plugin architecture so third-party plugins can't silently do anything dangerous, and getting the packaging right for two completely different platform ecosystems.

Repository: GitHub
AUR package: AUR page
Winget PR: PR

Top comments (0)