Tangible products, deliberate architectures.
Personal projects — from a multiplayer AI TTRPG to a voice-driven remote desktop — each anchored in a precise product problem, with deliberate stack and distribution choices.
Personal projects — from a multiplayer AI TTRPG to a voice-driven remote desktop — each anchored in a precise product problem, with deliberate stack and distribution choices.
I spot a use case nobody serves well, design the solution and take it all the way to a live product — every time a first, or a notch above the state of the art.
7 projects4 in productiondesigned & shipped solo
All built with state-of-the-art LLM-assisted dev —Claude CodeCodexCursor
Deduplicated aggregation of all technologies used across the projects, grouped by playground.
A public web product for synchronised YouTube, Twitch and Kick multi-POV viewing, extended by a Rust/WASM media core and an Android app validated on device.
Open the public web application to test a shareable session and compare YouTube, Twitch and Kick synchronisation in real conditions.
Synchronised multi-POV viewing product for Discord sessions and events: several YouTube, Twitch and Kick POVs in one control room, aligned in VOD through audio sync and maintained by clock/offset logic. The web product is live at watchmultipov.app with Solid, TypeScript, Vite, PWA and hls.js. The current media core is a shared Rust engine exposed as WASM on the web and compiled natively in the app. The Android app uses Tauri 2, embeds the real web control room, shares the Rust core, uses native Media3/ExoPlayer players and has live sync validated on device.
What if you designed a tabletop RPG system entirely built for an AI to run? That's Aidventures: an AI plays the game master while the engine keeps control of the rules.
Explore the web application and its narrative game loop: the AI runs the session while the engine keeps the rules and game state under control.
Multiplayer text-based TTRPG web platform where a generative AI acts as the game master. Original game system (2d6+stat, GM Moves, Trait Cards, Vows & Clocks, 5 pacing modes) secured by a 19-invariant 'drift gate' that validates every LLM output before applying state. Designed with Claude (Anthropic) as primary provider, the application also supports Gemini, OpenAI or a local model (Ollama, llama.cpp, vLLM via OpenAI-compatible API) through an adapter architecture. The community creates its own universes via an 11-step wizard in 4 phases (Fandom import, AI-assisted generation, voice profiles, lore by season/episode, translation) and publishes after moderation. Python 3.12 / FastAPI + WebSocket backend, asynchronous SQLite, Vite frontend, multi-container Qwen TTS pool and a free tier with virtual Flares currency.
From an Android phone, use Claude Code or Codex on your remote Linux machine: dictate prompts by voice and use a Joy-Con for mouse and shortcuts, with no physical keyboard.
Discover the product and its distribution site: an Android phone, voice and a Joy-Con become a complete interface for coding on Linux remotely.
Remote desktop solution dedicated to voice-driven development from an Android terminal, allowing users to operate a Linux machine as if sitting in front of it. Key differentiator: native Nintendo Switch Joy-Con integration as a companion peripheral — the phone stays free for voice dictation while the Joy-Con (held in the other hand) drives the mouse via its analog stick and triggers keyboard shortcuts through configurable button-combo profiles (Claude code, Open code, codex...), covering most actions of these CLIs without ever putting down the phone. The ecosystem combines a Linux daemon that automatically orchestrates display, audio and transcription as soon as a mobile client connects via RustDesk, a patched RustDesk fork (Joy-Con gamepad mapping, voice call, rebranding), a standalone Axum + SQLite + Ed25519 license server with offline and expiry grace handling, and a bilingual EN/FR distribution website. A complete product concept, designed and implemented end-to-end, from initial proposal to production release on nomadrust.dev.
A portfolio built like a product: SSG, SEO and performance dialed in, bilingual and alive.
Compare the source image with the animated result and its integrated effects.
Modern portfolio website developed with Angular 21 and optimized for organic search (SEO). SSG (Static Site Generation) architecture for maximum performance and search engine visibility. Bilingual FR/EN interface with a cosmic background updated daily, layered animation and a static fallback when device capabilities or preferences require it. Responsive design using Tailwind CSS 4 with a dynamic PDF CV generator.
Turn hours of podcast audio into structured, searchable data while keeping the API budget in check.
Open the demo to browse search across transcripts and AI-extracted metadata from podcast catalogues.
Automated podcast content analysis platform using AI to transform audio into transcription then into structured data. High-precision transcription via Whisper (~2 hours of processing per 1 hour of audio) and analysis with ChatGPT and precise prompts, all in a modern React interface. Personal project having processed 20% of the Floodcast catalog and 10% of the TFTC podcast.
Automate a live stream control room in real time: the video itself triggers OBS scene changes.
Live video production automation application for personal streaming (Call of Duty, TikTok). Real-time visual pattern detection on NDI stream with OBS Studio automation (100ms latency). PySide6 interface with OpenCV image processing + CUDA GPU acceleration for optimal performance.
By having an LLM play Minecraft for fun, I figured out how to give it rules and the right context — the foundation I reused in Aidventures and in how I develop with Claude Code.
Autonomous Minecraft bot driven by an LLM through the Model Context Protocol (MCP). A deliberately strict "atomic" architecture: the Mineflayer bot is only an executing arm (unit actions, no decisions), while the LLM reasons over raw data surfaced by sensors (discovered blocks, hazards, inventory, Y-levels) to decide what to mine, build or flee. Three MCP servers separate actions, Minecraft knowledge (recipes, Y-levels, tools) and a persistent spatial memory in SQLite. A learning project that taught me, through play, how to frame explicit rules and provide the right context to an LLM — a skill directly reused in the Aidventures drift gate and in the way I scope Claude Code-assisted development.