Work

Things I've built

Indie iOS apps, Neovim plugins, and developer tools — some still shipping, some open-sourced, all things I use myself.

  1. Namna

    App Store submission pending

    Philippine financial independence planner for iPhone

    React NativeExpoTypeScriptSQLite

    Offline-first planner that estimates when your savings and investments may support the life you want. Built around Philippine vehicles like MP2, PERA, RTBs, SSS, and GSIS. No accounts, no cloud sync, no tracking.

    • Take-home-pay-first inputs (not gross salary)
    • Presets for MP2, PERA, PSE, RTBs, SSS, GSIS, and more
    • Future scenarios to model life changes without changing the current plan
    • English and Filipino throughout
    • All data stays on the device — SQLite, no backend
  2. obsidian-cli.nvim

    Open source

    Thin Neovim wrapper over the official Obsidian CLI

    LuaNeovimObsidian CLIPlenary

    Drives the live Obsidian app from inside Neovim instead of reimplementing the vault format in Lua. ~2,000 LOC, 44 commands, 122 plenary tests, and real Obsidian search, backlinks, templates, and Bases via IPC.

    • Wraps the official obsidian CLI instead of a 4-5k LOC Lua reimplementation
    • Real Obsidian search index, backlinks, templates, and Bases via IPC
    • 122 plenary tests across 12 spec files with CI integration
    • blink.cmp wiki link completion and Snacks picker integration
    • Plugin manager that installs Obsidian community plugins from Neovim
  3. sajj

    Live

    AI workflow analyzer with research-backed criteria and exportable build specs

    React 19ViteVercel ServerlessSupabaseGemini 2.0 Flash

    Describe any business process — sajj decomposes it into steps, scores each against four boolean criteria (structured, deterministic, low-risk, no authority), and generates a full build spec you can paste into Claude Code or Cursor. Free, no signup, feeds graduate research on AI-human workflow boundaries at AIM.

    • Four-criteria assessment model (green / yellow / red tiers derive directly from the booleans)
    • Build Spec exporter generates a full context-engineering prompt for Claude Code or Cursor
    • 208 workflow suggestions across 24 industries, 10-language UI
    • 72 Playwright end-to-end tests covering landing, analysis, feedback, corrections
    • Correction feedback loop feeds a Supabase research dataset on LLM decomposition accuracy
  4. citruszest-ghostty.nvim

    Open source

    Dark Neovim colorscheme inspired by Citruszest and Ghostty terminal colors

    LuaNeovimTreesitterLSP

    Vibrant citrus accents on a true-dark ground. Treesitter and LSP semantic highlights, plugin support for Telescope, Snacks, Lazy, Which-key, Noice, GitSigns, Mini, and IndentBlankline. Terminal colors exported so your shell, editor, and terminal all agree.

    • Single palette shared between Neovim and Ghostty
    • Mint green (#00cc7a), cyan (#48d1cc), sky blue (#00bfff), warm orange (#ff8c00) citrus accents
    • Treesitter + LSP semantic token coverage
    • Terminal colors exported for shell + editor consistency
  5. dev-session-manager

    Open source

    Automate tmux session creation

    BashtmuxYAMLHomebrew

    Eliminates repetitive terminal setup with pre-configured tmux sessions from YAML configs. One command creates your entire development environment.

    • Published as Homebrew tap
    • Declarative YAML configurations
    • Idempotent session management
    • Zero-friction context switching
  6. pyworks.nvim

    Open source

    Zero-config Python notebooks in Neovim

    LuaPythonNeovim APIJupyter

    Eliminates setup friction for Python development in terminal. Auto-creates venvs, detects missing packages, renders matplotlib plots inline.

    • Auto venv creation and package detection
    • Inline matplotlib plots via Kitty protocol
    • 10-100x faster installs with uv
    • Jupytext integration for .ipynb files