What I've Been Building: A Roundup of Projects from the Past 2 Months
Over the past two months, my development philosophy has revolved around one simple question: Where is the daily friction in my workflow, and can I build a fast, local-first, zero-BS tool to eliminate it?
Instead of relying on heavy SaaS applications or bloated web apps with monthly subscriptions, I spent the last few weeks building specialized utilities across macOS, Linux, and the web. Here is a thorough roundup of the core projects, automation engines, and native tools I designed and shipped during this sprint.
1. PaperCache: The Floating Reactive Knowledge Manager
At the heart of my recent productivity improvements sits PaperCache, an open-source floating scratchpad that completely reimagines what a quick-notes tool should do.
Built with Tauri v2, Rust, React, and TypeScript, PaperCache operates completely in the background with zero Dock clutter and 0.0% idle CPU usage. Pressing your global hotkey (Cmd+Shift+C or Cmd+Shift+N) spawns the editor directly on your active monitor at your mouse cursor.
- Reactive Spreadsheet Math: Type
/var x = 12andx * 4 =to get48instantly. Update variables anywhere, and your note recalculates in real-time. - Inline AI Assistant: Summon AI directly into your text stream using
/aior package your entire note as context using/ctx. Works natively with free models on OpenRouter or local Ollama instances. - Interactive Graph View: A Three.js/WebGL 2D/3D graph (
Cmd+G) that clusters notes by folder and lets you fuzzy-search (Cmd+F) to fly straight to any node.
Want to try it out or read the deep dive? Visit the official live web app and docs at papercache.vrbl.win or read our Building PaperCache post.
2. SwiftType: Fast, Local System-Wide Autocorrect for macOS
Typing fast on desktop often leads to typos, but standard desktop dictionaries are notoriously clunky and lack technical vocabulary. To bridge the gap between mobile keyboard intelligence (like iOS or Gboard) and desktop power users, I engineered SwiftType.
SwiftType is a native, privacy-first macOS menu bar application written in Swift 6 that delivers instantaneous (< 5ms) system-wide autocorrect with zero latency.
-
Hybrid $O(1)$ Correction Engine: Powered by a dual-engine architecture combining a Symmetric Delete (
SymSpell) $O(1)$ dictionary lookup and a Burkhard-Keller (BK-Tree) metric space search engine. -
Developer & Technical Vocabularies: Out of the box, it includes specialized technical dictionary modules for programming (
Swift,Rust,Python,Go,Docker,Git,POSIX), systems architecture (Homebrew,Wayland,Kubernetes,x86_64), and scientific terminology (pLDDT,genome,mitochondria). -
100% Offline & Secure: All keystroke monitoring and statistical learning run strictly locally with zero network calls and zero telemetry. It automatically detects secure password fields (
AXSecureTextField) and bypasses monitoring instantly. -
Instant
Cmd+ZUndo: PressingCmd+Zwithin 5 seconds of an autocorrect event immediately restores your original typed text.
3. PipeWire Monitor Splitter (pipewire-audio-controller)
If you run a multi-monitor Linux setup, managing independent audio streams across display sinks can be frustratingly tedious. Standard desktop audio managers often lump all HDMI/DisplayPort audio outputs together or reset routing rules on reboot.
I built the PipeWire Monitor Splitter (pipewire-audio-controller) to take complete, automated control over Linux audio pipelines. By interacting directly with the PipeWire and WirePlumber graph, this utility:
- Automatically detects connected monitors and creates clean, independent virtual audio sinks for each screen.
- Allows you to isolate system notification sounds to your secondary display while keeping high-fidelity music or media playback routed strictly to your primary DAC or headphones.
- Persists node routings dynamically across hot-plugs and suspend cycles with minimal overhead.
4. Portfolio Automation Engine & Live Aggregators
Instead of manually updating static HTML whenever I ship code or listen to new albums, I built an automated portfolio engine right into this website that continuously aggregates live data across my entire digital footprint:
Automated Music Pipeline
My music dashboard is powered by a backend aggregator that ingests XML exports from Apple Music and Spotify, resolves high-resolution album artwork via automated iTunes/Apple API lookups, and dynamically computes listening timelines, genre maps, on-repeat tracks, and hidden gems automatically during build time.
Live GitHub Activity & Repo Metrics
The Projects and Home pages hook directly into the GitHub REST API to pull live star counts, fork statistics, primary languages, and exact commit contribution grids (GithubActivityGrid) with fallback caching—ensuring that whenever I push code, the portfolio reflects it instantly without manual intervention.
Multi-Subdomain Routing Architecture
To keep everything modular, the site runs a custom routing engine that maps subdomains like blog.vrbl.win, projects.vrbl.win, fun.vrbl.win, and about.vrbl.win directly into specialized app views while preserving single-page transitions and shared design tokens.
5. Vinyl: Real-Time macOS Menu Bar Lyrics
When listening to music while coding, switching windows just to check the track title or sing along to lyrics instantly breaks focus. I built Vinyl to solve that exact annoyance.
Vinyl is a lightweight, native macOS application written in Swift that sits unobtrusively inside your menu bar. It hooks cleanly into both Apple Music and Spotify, reading the currently playing track and streaming time-synchronized lyrics in real-time directly across the top of your screen.
"No bulky desktop player windows, no browser extensions—just pure native Swift rendering right where your eyes naturally check the time."
6. Omelette: Multi-Model AI for Raycast & Vicinae
Launcher utilities like Raycast (on macOS) and Vicinae (on Linux) are where keyboard-centric workflows thrive. However, most built-in AI extensions lock you into expensive vendor tiers or rigid model selections.
To bypass this, I developed Omelette across two platforms:
-
Omelette for Raycast: A dedicated Raycast extension that connects directly to OpenRouter. It gives you instant, keyboard-driven access to virtually any top-tier model (like
gpt-4o,claude-3.5-sonnet, or free NVIDIA/Llama models) directly from your launcher command bar. - Omelette for Vicinae: A full port of the extension for Vicinae on Linux, ensuring that cross-platform developers get the exact same lightning-fast AI prompt UX whether they are running macOS or a Linux distribution.
7. Terminal AI Helper & Systems Utilities
Outside of graphical apps, I spent significant time tightening up my command-line infrastructure:
Terminal AI Helper (terminal_helper)
A suite of lightweight Python CLI utilities that hook directly into OpenRouter and Hugging Face. When you encounter a complex git rebase, a convoluted ffmpeg pipe, or a cryptic build failure, triggering the helper translates intent into exact, syntactically correct shell commands right inside your terminal session.
Newsfeed & P2P Networks
Rounding out the sprint were Newsfeed (a fast, distraction-free personal RSS aggregator optimized for mobile reading without algorithmic noise) and Peer-Network (a research project building a custom cryptographic blockchain P2P information network).
Summary & The Common Thread
When you look across PaperCache, SwiftType, PipeWire Splitter, Vinyl, Omelette, and the portfolio automation engine, a unified design philosophy emerges:
- Active over Passive: Tools shouldn't just store text or sit static; they should compute math (
PaperCache), correct typos in milliseconds (SwiftType), route audio (PipeWire Splitter), or stream live lyrics (Vinyl). - Local-First & Lightweight: Native Swift (
SwiftType,Vinyl), native Rust (PaperCache), and low-level system integrations consistently outperform bloated web wrappers every time. - Zero Friction: The best tool is the one that spawns instantly at your cursor or in your menu bar and disappears the moment the task is complete.
All of these projects are open-source and available on my GitHub. Feel free to explore the code, fork them for your own setup, or submit PRs!