The archive
All the work
40 projects: the flagships, the workshop and everything else I have built or am building. Only 3 of them have public source. The other 37 live in private repositories or inside client systems, so this archive is the one place they are all listed.
projects have public source on GitHub
PublicPrivate repositoryClient work
Showing 40 of 40
Flagships
Customs and Compliance AgentsAI agents that prepare customs and compliance filings, with every number checked by code
AI agents in production that prepare the customs and regulatory compliance filings of a large industrial manufacturer, across three families of regulated documents. Agents handle the language and the tools, deterministic engines produce each figure and must reproduce the client's own past filings exactly, and a person approves each data change.
- Role
- Led AI engineering in a small team at DigiSol
- Stack
- Next.js 16TypeScriptshadcn/uiRadixTailwind 4TanStack TablePythonFastAPILangGraphAG-UIPostgreSQLLiteLLMLangfuseKeycloakoauth2-proxyCaddyDocker ComposeGitea CI
Valox OfficeAn open-source 3D agent office, stripped of the slop and rebuilt as a harness for agents
I took an open-source 3D agent office from another developer, AgentSystemLabs/agent-office (MIT), stripped what I call the slop, and put in the agentic tooling that makes it a harness: custom MCP tools for a floor manager, work routed between Claude Code, Codex and OpenCode workers, runners on remote machines and personal computers, OS-level isolation and roles. Agents I directed built it, and an UPSTREAM.md file records each upstream pull request as ported, adapted or skipped.
- Role
- Product owner, directing an agent fleet on an MIT fork
- Stack
- TypeScriptNode.jsthree.jsVitenode-ptyxterm.jsWebSocketzodMCP SDKExcalidrawMermaidthree-mesh-bvhBlender (Python)Playwrightnode:testGitHub Actionssystemd
Meta HarnessThe rules, guards and checks my coding agents work inside, across Claude Code and Codex
Meta Harness is my name for the layer coding agents work inside: rules, guardrails, verification checks and coordination. I founded the plugin-based architecture of the team developer platform at DigiSol and maintain it, and ValoxAgentPlugin is my own reconstruction of it for my private repos. When an agent fails, I change the harness so the mistake does not repeat.
- Role
- Designer and maintainer
- Stack
- BashPythonMarkdownJSONClaude Code pluginsCodexCursorGit hooksGitHub ActionsShellCheck
ValoxVSLMy AI video-ad studio and the multi-agent pipeline it was built on
ValoxVSL is the AI video production business I run through Valox EOOD, and the pipeline behind it. The pipeline turns a script into a finished ad or documentary through agent phases with human gates, an FFmpeg editor and an MCP server that lets Claude act as the producer. The studio delivered ads for clients and is dormant now; the tool and the site are live.
- Role
- Founder; directed the agents that built the pipeline
- Stack
- Next.js 16React 19TypeScriptPrismaSQLiteFFmpegRemotionMCP SDKGeminiFAL (Kling, Seedance, Veo, Sora)ElevenLabsWhisperClerkDrizzleNeon Postgresnext-intlVercel
JeisanThe name my working agents carry: an always-on server agent, a git author, a pod manager
Jeisan is the name my working agents carry. It began as a tough-guy action hero in one of the ValoxVSL ads, and today it is an always-on agent on a small Linux server, moved from OpenClaw to NousResearch's Hermes Agent, the git author Jeisan Steisan, and the agent that manages my trading pods through a bounded control plane.
- Role
- Operator and architect; Codex and Claude agents built the migration and the control plane
- Stack
- Hermes Agent (NousResearch)OpenClawCodexPythonsystemdTelegramCloudflare WorkersGitHub ActionsTailscaleLinux
Polymarket research deskA fail-closed trading desk where every strategy meets frozen rules and live order books
A private system for 5- and 15-minute crypto up/down markets on Polymarket, built as three separated parts: a deterministic money loop with no model in it, an agent control plane that holds no trading power by default, and a research stack. Thousands of configurations and 15 strategy families have been tested against live order books under pre-registered rules frozen before scoring. The survivors run behind kill switches, and the results stay private.
- Role
- Owner and research lead; agents built it under fail-closed rules
- Stack
- PythonTypeScriptNext.jsSQLitesystemdDockerHermes Agent (NousResearch)GitHub ActionsChromium extension (MV3)
PlayBeloteLive multiplayer belote: a deterministic engine, Monte Carlo bots and a replay format
A Bulgarian belote game in the browser: four seats, bots that fill the empty ones, Swiss and knockout tournaments, and replays in a notation of its own. The rules engine is pure TypeScript shared by client and server. Most of its verification came from long agent runs with written contracts and numeric gates.
- Role
- Solo, directing agent fleets
- Stack
- TypeScriptNext.js 16React 19Phaser 3ColyseusPrismaPostgreSQL 16PgBouncerNginxPM2VercelHetznerVitestPlaywrightfast-check
BiogardMy first project: a pest-control company's site, rebuilt self-hosted
The website of a regional pest-control company, and the first project I started: a React site, then Next.js on Netlify. Later I rebuilt it from scratch with the same URLs, hand-drawn illustrations, a self-hosted and isolated stack, an SEO plan, consent-gated ad tracking and a hidden bug game.
- Role
- Solo, directing agent fleets
- Stack
- Next.js 16React 19TypeScriptTailwind CSS 4PrismaPostgreSQL 17Docker ComposeCaddygVisorUmamiResendTailscale
Valox CinemaMaking a fully AI feature film, starting with the two tests that could stop it
Valox Cinema is my plan to make a fully AI feature film: a Bulgarian historical feature produced with the ValoxVSL pipeline grown to feature scale. So far it is a study of how a published AI feature was made, set against my pipeline, and a design for the successor pipeline with every decision recorded beside the option it beat. No film exists yet, and two cheap tests come before any production.
- Role
- Founder; directing research and design agents
- Stack
- TypeScriptNext.jsPostgreSQLPrismapg-bossReact FlowSeedanceClaude CodeCodex
The server compromiseA framework RCE, a botnet, three failed rebuilds and the outbound connection that found it
The production server for the ValoxVSL video tool was taken over by a Mirai-variant botnet and re-infected after each rebuild. An outbound connection from the Next.js process showed the way in: an unauthenticated RCE in the framework. The response became a written hardening playbook that new servers start from.
- Role
- Solo, incident response
- Stack
- Ubuntu 24.04Next.jsOpenSSHUFWfail2bansysctlssTailscale
Workshop
PlayBelote v2A clean-room 3D belote with a tavern cast, a jazz salon and a table that lives in a worker
A single-player 3D belote game with two rooms, an art-deco card salon and an over-the-top Bulgarian tavern with a cast of characters, built by orchestrated agents. The build was clean-room: it could not read the first version's code, specs or transcripts, only the written rules and fresh research. At handoff the first three phases had cleared an independent gate, while the performance gate was still open.
- Role
- Product owner, directing agent fleets
- Stack
- TypeScriptVitethree.jsWeb WorkerzodBlenderVitestPlaywrightfast-check
ORPHEUSA code-rendered reel of Bulgarian history in which every picture morphs into the next
A 139.7-second hype reel from the Varna gold to a Rhodope song on the Voyager Golden Record, rendered from code with an original score and no voice-over, in English and Bulgarian. The reference it set out to beat is a code-rendered history reel called Prometheus. Each render has to pass a sync gate and a flash-safety gate.
- Role
- Solo, directing agents
- Stack
- Remotion 4ReactTypeScriptPythonuharfbuzzfontToolsffmpegBlender
Programmatic musicTwo tracks composed as code: a JavaScript suite in odd meters and a MIDI piece
Two tracks written entirely in code, inspired by Frank Zappa's Jazz from Hell. Jazz from Varna is a 3:23 five-movement suite computed in JavaScript, built on the Bulgarian rachenitsa in 7/8 and kopanitsa in 11/16 with a choir drone and a tapan. Yogurt Culture Shock runs 3:22 as MIDI rendered through FluidSynth, the same method the video studio's shared score library uses.
- Role
- Solo, directing agents
- Stack
- JavaScriptMIDIFluidSynthGeneralUser GSPython
SesamebotA Discord bridge that makes a whole voice channel sound like one caller to a voice AI
A Discord bot that puts a commercial conversational-voice assistant into a voice channel, so a group can talk to it the way one person talks to it on a web page. It keeps the assistant's turn-taking alive with a 64 ms silence pump, elects one speaker at a time and tells the assistant who is talking with pre-rendered name markers. I rebuilt it from a working v1 into a modular v2 with a lead agent and four teammates in isolated worktrees.
- Role
- Product owner, directing a lead agent and four teammates
- Stack
- Pythondiscord.pydiscord-ext-voice-recvfaster-whisperffmpegpytestsystemdGitHub Actions
HayzunxnA joke language kept like software: a TSV lexicon, a versioned spec and 12 lints
Hayzûnxñ is a comic constructed language whose one non-negotiable rule is that every word ends in ñ. I keep it like software: a canonical TSV lexicon with stable IDs, a modular markdown spec, and a validator with 12 lints that tells a deliberate oddity from a mistake. The language is older than my first line of code, and the repository is public.
- Role
- Solo, directing agents
- Stack
- PythonMarkdownTSVAutoHotkey
GeneScopeReads a consumer DNA export against ClinVar and PharmGKB, then four agents interpret it
A generic, local tool that takes a raw DNA export from a consumer test, matches it against public ClinVar and PharmGKB data with deterministic scripts, and has four Claude agents interpret the matches in parallel: drug metabolism, methylation pathways, disease risk and lifestyle. No personal results appear on this site.
- Role
- Solo, directing agents
- Stack
- TypeScriptNode.jsNext.jsClinVarPharmGKBClaude Code skills
SapverseA 24-chapter novella written with early AI models, my first AI project
A 24-chapter novella I wrote with early AI models. It was my first AI project, about two years before my first software project.
- Role
- Author, writing with early language models
- Stack
- Early language modelsWord
Mafia with AIA Town of Salem style Mafia game where the players are language models
A social-deduction game with day and night cycles, trials and voting, in which AI players run on different language models through OpenRouter and I can optionally join. It has 13 roles across town, mafia and neutral factions, and the models take turns on a configurable delay so they do not talk over each other. Model requests are logged to disk and a script parses the logs for review.
- Role
- Solo, directing agents
- Stack
- Next.jsTypeScriptZustandOpenRouterTailwind
Tuzzo MusicA hi-res music player for one household, hardened by a verifying agent fleet
A personal music player for one household: a web app with iOS and Android shells, its own library, queue, recommender and tagged FLAC downloads, fronting a paid hi-res streaming subscription. It is not a service or a product, and its README says so. Audio never touches its server: the browser plays native FLAC from a signed CDN URL, and agents hardened the player in sweeps that paired each finder with an adversarial verifier.
- Role
- Product owner, directing agent fleets
- Stack
- Next.jsTypeScriptPrismaPostgresCapacitorNetlifyVitestTailwind
Archive
Ruse town square mapA real town square rebuilt as a game map by a lane-based agent team
A friend's Unity survival game needed a better map, so I rebuilt the main square of my hometown, Ruse, from sourced photos and open elevation data. Agents worked in lanes with written contracts, one landmark per agent, and an integrator merged the results into the friend's repository by pull request. Thirteen sculptures came out of an eight-model image-to-3D bake-off.
- Role
- Contributor, directing an agent team
- Stack
- UnityC#PythonBlenderTripo image-to-3DOpenStreetMap dataGit LFS
Programmatic videosA studio where agents render videos from code, with a fact sheet for each video
A local workspace where agents make videos from code with Remotion, Blender, Python and a MIDI score pipeline, one folder per video, starting with the ORPHEUS reel. Each folder holds a sourced fact sheet, a credits file with a licence row for each third-party asset and a log. The rules bar paid services, generative models, accounts and publishing, so a video is code plus licensed assets.
- Role
- Solo, directing agents
- Stack
- RemotionReactBlenderPythonFluidSynthffmpegNode.js
osu! map generatorTurns an audio file into playable osu! maps where each note sits on an audible sound
A Python pipeline for osu! that separates stems with Demucs, transcribes notes with basic-pitch, fits a tempo grid and builds Normal, Hard and Insane maps. A replay reviewer explains each missed note, and I played the first Hard map myself and fed back timing. The first set was a Frank Zappa track at 2.16, 3.79 and 4.88 stars.
- Role
- Solo, directing agents
- Stack
- PythonDemucsbasic-pitchlibrosapytest
Agent link shortenerA URL shortener for agent replies on Cloudflare Workers, written by my own agent
A persistent link shortener for the replies and bot messages my agent sends, running on Cloudflare Workers and D1 with social-preview metadata and a watermark. My autonomous agent wrote all of it, including the CI workflow, licence, security policy and contributing guide. Its security commits require a public hostname origin and restrict loopback origins to tests.
- Role
- Directed my agent, which authored it
- Stack
- Cloudflare WorkersD1JavaScript
datuzzo.comThis site: the first version, and the rebuild that replaced it
The first version of this site was built by a fleet of agents working from a single contract file, because agents kept dropping earlier requirements whenever a newer message arrived. It compiled to a static site with a 32-project catalogue, then I rejected its look, and the rebuild started from a written list of corrections: no terminal styling, no green accent, nothing heavy, no AI tells. This version is that rebuild.
- Role
- Solo, directing agent fleets
- Stack
- Next.jsReactTailwindTypeScript
Transcribe serviceLong recordings in, a diarised transcript and a screen timeline out, with each run costed
A local service that turns a long meeting or screen recording into one auditable document: a diarised multilingual transcript, a timeline of what was on screen, and de-duplicated screenshots. It runs as a FastAPI service with a React GUI and a command line, and a job ledger records what each run cost. It began as a Claude and Codex skill and became a service.
- Role
- Solo, directing agents
- Stack
- PythonFastAPIReactTypeScriptffmpegSQLiteOpenRouter
Tuzzo VoicePush-to-talk voice control of a Windows PC over a realtime speech model
A Windows push-to-talk agent that uses a realtime speech model as its brain and local tool handlers as its hands: it opens apps, searches the web, controls windows and takes screenshots. Audio runs as 24 kHz PCM over a WebSocket with manual turn control and voice-activity detection turned off, tools run in a worker thread, and a waveform overlay and tray icon show when it listens. The hard part was reliability: the model went silent after two or more tool calls or after an interrupted call, which I traced with machine-queryable logs and an independent fix-plan run over the session transcript.
- Role
- Solo, directing agents
- Stack
- PythonRealtime speech APIWebSocketWindows accessibility APIs
Lead scraperFinds Bulgarian advertisers on paid Meta ads, scores them and tracks outreach
A Node tool that finds Bulgarian advertisers running paid Meta ads, scores them on vertical, ad volume, longevity, EU reach and creative gaps, drafts personalised cold emails and tracks replies. A bake-off chose a paid ad-library API over a browser harvester, a raw GraphQL fetch that was blocked after about two calls, and fleets of cloud agents, which cost intelligence prices for a deterministic job. It ran once, sent 18 emails and drew one reply, a negative one.
- Role
- Solo, directing agents
- Stack
- Node.jsnodemailerimapflowmailparser
VitalsA private platform for personal health data, kept off this site
A private repository for a personal health data platform. It exists, it is mine, and its contents stay off this site.
- Role
- Solo, directing agents
- Stack
- TypeScript
Chess archive pipelineMy chess.com archive, scraped, scored by Stockfish and charted
A pipeline that scrapes my chess.com archive through the public API, scores per-move quality with Stockfish, aggregates openings and rating curves, and shows them in a Next.js dashboard with a refresh button. It ran on 2,478 games across 55 months. I have not extended it.
- Role
- Solo, directing agents
- Stack
- PythonStockfishNext.jsTailwind
Tabs CleanupA Chrome and Opera extension that sorts tab piles and stashes them locally
A Manifest V3 extension that categorises hundreds of open tabs (duplicates, idle video, search pages, stale pages, localhost) and stashes or bulk-closes them. It makes no network calls and has no dependencies. A first version asked a local model bridge to categorise tabs, and the published one is rule-based after a permissions audit that dropped the all-URLs permission.
- Role
- Solo, directing agents
- Stack
- JavaScriptManifest V3
CAD/CAM bridgeReverse-engineering a furniture maker's 3D scene files into machine-ready cutting programs
Client work for a small custom-furniture manufacturer: generate the machine-ready cutting programs, saw lists and labels from the cabinet models, so each cabinet is entered once. I inspected the binary scene files and their plugin metadata, then wrote a reader plus a parser and writer for the cutting-program format. Round-trip tests pass byte-exact on all four sample fixtures.
- Role
- Solo, directing agents
- Stack
- PythonpytestOLE compound filesDXF export
Valox InvoiceA self-hosted invoicing tool that issues compliant bilingual invoices and fails loudly
A single-tenant invoicing tool for my Bulgarian company. It renders bilingual invoices in Bulgarian and English built to Bulgarian VAT rules, converts foreign-currency amounts into euro at the ECB rate for the tax-event date, and issues PDFs. Preview, PDF and issued view share one render path, so they cannot differ.
- Role
- Solo, directing agents
- Stack
- Next.jsReactTypeScriptSQLiteDrizzlePuppeteerTailwind
Open BrainA personal memory store with semantic search that any MCP client can use
A Postgres table of captured thoughts with 1,536-dimension embeddings and an HNSW index, behind an MCP server that runs as a Supabase edge function. Four tools search, list, summarise and capture thoughts, and a small model extracts people, action items, dates, topics and type from each capture. Access needs a key.
- Role
- Solo, directing agents
- Stack
- SupabasePostgrespgvectorDenoHonoMCPOpenRouter
YouTube script factoryA Claude Code workspace that drafts and quality-checks documentary narration scripts
A workspace that researches, outlines, drafts and checks 18-minute narration scripts for investigative documentary videos, with an ideas database that flags duplicate topics and competitor saturation. A quality gate counts words and checks structure, filler phrases and primary-source references, and flags unverified claims. A splitter inserts scene markers so the output feeds the video pipeline, and one script of 2,580 words on Stuxnet is finished.
- Role
- Solo, directing agents
- Stack
- PythonSQLiteClaude Code skillsMCP
Book writerA Bulgarian-first AI assistant for writing and editing books
A Next.js app that imports a DOCX or TXT book, splits it into chapters with Gemini, extracts characters, locations and writing style, and then helps write in that style with expand, shorten, rewrite and grammar actions plus a chat panel. Work autosaves at two-second intervals to IndexedDB, so it runs offline, with optional Google Drive saving and export. The interface and the README are in Bulgarian.
- Role
- Solo, directing agents
- Stack
- Next.jsTypeScriptGeminiIndexedDBZustandVitest
ValoxVSL site and client portalThe bilingual marketing site and client portal for ValoxVSL
A Next.js site in Bulgarian (default) and English with a client dashboard where companies, products and requests move from pending to completed, and an admin approval flow. It carries sitemaps, hreflang, JSON-LD, an llms.txt and a video sitemap, and a portfolio of 14 pieces across six categories. I removed the public package prices and show an individual quote, because the same offer competes in the Bulgarian and Dutch markets.
- Role
- Solo, directing agents
- Stack
- Next.jsReactTailwindClerkDrizzleNeonnext-intlVercel
Voiceline generatorBatch voice lines from an Excel sheet of prompts, with a Flask UI and a voice library
A Flask web UI that batch-generates voice lines through the ElevenLabs API from an Excel sheet of prompts. It supports per-row voice presets, a character-to-voice library and a persistent cache, and downloads the results as one archive. A simpler standalone command-line version sits beside it.
- Role
- Solo, directing agents
- Stack
- FlaskElevenLabspandasPython
Coach suiteA Next.js dashboard for scouting players and teams from a community game API
A Next.js 15 dashboard with hero charts and team analysis for a competitive team game, written when I was less fluent with AI and the models were weaker. Later I reopened it: probe and research workflows corrected two of the lead agent's hypotheses about the API's fields, and the transformer now uses authoritative hero roles and real map names. A plan for an independent data API is parked.
- Role
- Solo
- Stack
- Next.jsReactRechartsTypeScript
Marvel Rivals toolsSmall tools for a competitive game group: data pull, analysis, voicelines, teams
A Node command-line tool pulls a player's tournament history from an unofficial community API and writes aggregated JSON, and a Python analyser and several generations of in-browser dashboards read it. Two further utilities process voicelines with an FFmpeg batch GUI and a hand-tuned zombie preset, and randomise twelve players into two role-balanced teams.
- Role
- Solo
- Stack
- Node.jsPythonFFmpegtkinterHTML
Helium hotspot networkA LoRaWAN hotspot network that I deployed and then wound down
I led a LoRaWAN network built from Helium hotspots, with about 70 routers deployed. The venture ended in the crypto price crash.
- Role
- Project lead
- Stack
- LoRaWANHelium











