Developer from the Netherlands 🇳🇱 · local-first apps, terminal tools and small AI models that run on your own machine
---- 🔒 I like software that keeps your files, photos, voice and searches on your own computer
- ⌨️ I write terminal tools in Go and Rust, and web apps in TypeScript
- 🤖 I fine-tune and quantize small vision-language models to run locally (MLX, GGUF, llama.cpp)
- 🪟 Soft spot for retro interfaces: Windows 98, 8-bit, turntables, liquid glass
- 🐕 Many projects star Spot, a black labrador My portfolio has a website, terminal and Windows 98 view, with a docs page for each project.
| Project | What it does |
|---|---|
| LvW-harness | Local-first AI agent with a one-command model manager for Hugging Face, GitHub and GitLab. Terminal + web UI, built on Bun |
| usb-llms | Run AI models from a USB stick on macOS, Windows and Linux, online or offline. Ollama, TUI, web UI and Open WebUI |
| quicktalk | Local desktop dictation and meeting notes. Rust, Tauri 2 and Svelte 5 |
| liquidframe | Photos-style media library where photos, edits and AI stay on your computer |
| stem-player | 3D browser replica of a four-stem music player; splits songs on your own machine with Demucs |
- 🧩 Image → Mermaid: small vision-language models that read a diagram and write Mermaid code, such as minicpm-mermaid-gguf (MiniCPM-V 4.7 1B) and Qwen3.5-2B-Mermaid-MLX-LoRA. Trained on my datasets mermaid-diagram-text-images (~6.2k) and mermaid-text-en-nl (~5.7k, English and Dutch)
- 🧊 Image → 3D: forma3d-tiny, a ~306k-parameter research model that turns an object cutout into a Gaussian
.ply, runs on a Mac - 👁️ Local VLMs: lfm3-vl-2b-heretic with GGUF and MLX 4-bit builds 👉 All models and datasets
| Project | What it does |
|---|---|
| glyphium | GPU-rendered terminal emulator in Rust, built on libghostty-vt (early development) |
| textarea-cli | text buy milk jots a note; Markdown files that sync with Obsidian and Apple Notes |
| needle | Terminal music player: full-screen TUI, background daemon, JSON-lines interface for scripts |
| skyhold | Back files up to any cloud via rclone into an age-encrypted vault, then free the local space |
| tabshell | A real Linux terminal in a browser tab (v86 or Docker), with a Reset button |
| container | Fork of apple/container with here (a VM right in your terminal) and a dash TUI |
| opencode · superfile | Forks of the opencode coding agent and the superfile file manager with extra features and fixes |
| Project | What it does |
|---|---|
| xiao | Calm, private browser built on Zen: blocking, randomized fingerprint, Tor tabs |
| hillium | Arc/Zen-style Electron browser with sidebar tabs, spaces, a CLI and an MCP server |
| archium | Privacy layer for Helium: offline new tab, local SearXNG, Tor with a kill switch, URL cleaner |
| retrofind | Private web search on your Mac, styled like 1998, over a local SearXNG |
No server, no upload, no account.
| Project | What it does |
|---|---|
| better-photocraft-web | Image editor in pure Rust for the web: layers, masks, type, vectors, PSD files |
| pikado · GlassPaint | Liquid-glass image editors, forks of pikado and miniPaint |
| paint97 | A Windows 9x desktop around an Excalidraw whiteboard, with JS Paint and on-device AI |
| openfinder | Finder-style file manager using the File System Access API |
| audiocheck | Checks if a music file is as good as it claims: spectrogram, measurements, plain verdict |
| convert · htmltopng · qrer | File conversion, HTML → PNG, and a Windows 98-style QR tool |
| edu-code-camp | 37 hands-on coding lessons with hidden tests, a real Linux terminal and Spot as tutor |
Also on the desktop: videoina, an IINA-style video player for Windows and Linux (Qt 6 + libmpv), and web2app, a GUI for Pake that turns websites into desktop apps.
- ultra-realistic-vinyl-player: a 3D Thorens TD 115 MK II with a physically modelled motor, tonearm and playback chain
- realistic-vinyl-player · 8-bit-vinyl-player · vinyl-player-for-spotify: turntables in a single HTML file for your own music or Spotify
- ipod: the iPod Classic in your browser, playing music from your own computer
- spot-fetch: throw a ball for Spot in a 3D park with weather, day and night, and a photo mode
- spot-snake: snake in one HTML file, with an optional AI player running on your GPU via WebGPU
- spot-light: Spot chases a laser dot in 2D, 3D or 8-bit
- retro-zip: browser emulation with EmulatorJS and Doom, plus six original terminal games
- rubber-hose-revue · cozy-christmas-lab · axolotl-aqua-adventure
Storefronts for a dog-inspired apparel brand: blacklabspots-storefront (Next.js, Printify and Stripe), BlackLabSpotsShop (React + Supabase) and a minimal Yeezy-inspired concept.
e2e-suite runs Playwright smoke tests across 26 of my web apps with one command.
Languages: Go · Rust · TypeScript · JavaScript · Python · Swift · C++ Desktop & terminal: Tauri · Electron · Qt 6 · Bubble Tea · libmpv · Bun Web: React · Next.js · Svelte · Vite · Tailwind CSS · shadcn/ui · Supabase · Three.js · WebGPU · WebAssembly AI: MLX · llama.cpp · GGUF · Ollama · ONNX · Whisper · Demucs · LoRA fine-tuning