Side Projects

A curated list of things I build on the side — CLIs, native macOS apps, Kubernetes tooling, security helpers and the occasional browser extension. Most of them scratch a personal itch or solve a recurring pain I hit in lab / demo / customer environments.

Click a tile to learn more. Some projects are live, others are still cooking 🍳.

☸️ Kubernetes

marina
Full-featured CLI to manage Kubernetes (KinD) clusters on your MacBook. Direct access to Service type LoadBalancer, with local DNS names and trusted TLS certificates out of the box. Built on top of Lima.
  • Go
  • CLI
  • Kubernetes
  • Lima
marina-ui
Companion macOS-native SwiftUI app for the marina CLI. Provides a friendly interface to manage your KinD clusters from the menu bar.
  • Swift
  • SwiftUI
  • macOS
porthole
Easy Kubernetes service debugging for developers, with a web UI. No kubectl. Ephemeral containers. AuthN delegated to your Gateway (OIDC), authZ builtin with OPA. Audit logs.
  • Go
  • Kubernetes
  • Web UI
  • OPA
kuma-migrator
CLI helping Kuma Service Mesh and Kong Mesh customers migrate from kuma.io/service to the new MeshService API. Binaries available via Homebrew.
  • Go
  • CLI
  • Service Mesh
  • Homebrew
kong-identity-workflow-builder
Single-page wizard that turns a few answers (who calls, what they call, credential, IdP) into a Kong identity blueprint: consumer groups, plugins, analytics, sequence diagram and config.
  • Web
  • Kong
  • Konnect
  • OIDC
jwks-bridge
Serves signing keys stored in HashiCorp Vault to the Kong jwt-signer plugin, and publishes the public JWKS through Kong for backends. In hybrid mode and Konnect, every data plane gets the same Vault-managed key instead of its own local keyset.
  • Go
  • Kong
  • Vault
  • JWT
  • Homebrew
kuma-service-tracer
Coming soon
eBPF-observed DNS, SNI and TCP, correlated against Kuma destination resources, into a live graph of the connections a mesh actually carries, across all meshes and zones. Coming soon.
  • Go
  • eBPF
  • Kuma
  • Service Mesh

🔐 Identity Management & Security

keycloak-cloudrun
Terraform project to deploy Keycloak on Google Cloud Run. Useful for lab environments where you want your Keycloak instance to survive cluster resets.
  • Terraform
  • GCP
  • Cloud Run
  • Keycloak
keycloak-cli
Interactive Go CLI to manage Keycloak realms, clients and users, built on top of the Keycloak Admin REST API. Available as a Homebrew package — perfect for spinning up realms/clients/users on the fly in lab environments.
  • Go
  • CLI
  • Keycloak
  • Homebrew
homepki
CLI to manage your own PKI — root CA, intermediate CAs and leaf certificates (server & client). Single Go binary, no OpenSSL needed; installs the root CA into system, Firefox and Java trust stores. Available as a Homebrew package. A lifesaver for lab environments where you need to set up mTLS quickly.
  • Go
  • CLI
  • PKI
  • mTLS
  • Homebrew
Cirrus Identity
Coming soon
To be announced — big project.
  • Identity
  • SaaS

⚡ Productivity

Pastiche
Keyboard-driven clipboard manager for macOS, living in the menu bar. Text and image history with inline previews, type filters and instant search.
  • Swift
  • SwiftUI
  • macOS
  • Homebrew
Claude Status
macOS-native SwiftUI app to monitor the status of your Claude subscription with near-real-time updates. Sits quietly in your menu bar.
  • Swift
  • SwiftUI
  • macOS
Advanced Bookmarks
Chrome extension to save bookmarks quickly with a searchable, filterable folder picker. A must-have once you have hundreds of folders. Available on the Chrome Web Store.
  • JavaScript
  • Chrome Extension
headsmith
Chrome extension to add, modify and remove HTTP request and response headers, grouped into profiles and scoped to the sites you choose. Built on declarativeNetRequest and nothing else: the browser applies the rules, so the extension has no code path that could observe your traffic.
  • TypeScript
  • WXT
  • Chrome Extension
  • Privacy
pagesmith
Chrome extension to capture a whole web page as one image or PDF in a single click. Nothing leaves your browser. Available on the Chrome Web Store.
  • TypeScript
  • Chrome Extension
  • Privacy
push-to-cdn
CLI to quickly upload files to Google Cloud Storage buckets and generate public URLs. Handy for long-lived public assets, like images in email signatures, or resumes, or portfolio.
  • Go
  • CLI
  • GCP
  • GCS
  • Homebrew
Slack Claud'ified Status Rotator
Live
Simple Google Cloud Function (+ Cloud Scheduler) that updates your Slack status with wording borrowed from Claude Code. A fun way to let your coworkers know when you’re heads-down in Claude and shouldn’t be disturbed.
  • GCP
  • Cloud Functions
  • Slack
svg2drawio
CLI that converts SVG files into draw.io (mxGraph) XML. Every SVG element becomes a native draw.io cell.
  • Go
  • CLI
  • draw.io
  • SVG
  • Homebrew
file-vault
End-to-end encrypted, self-destructing file sharing. The browser encrypts the file before upload; the key stays in the link. Download links expire by date or use count, and link previews can’t burn them. Try it at filevault.runlocal.dev.
  • Go
  • SvelteKit
  • GCP
  • E2E Encryption