Lab

Tools I build and use

Built on existing models, not ones I trained. Same rule everywhere: a person defines what runs on its own and what waits for approval.

Applied AI

Open source

Conserje

A chat that qualifies leads, routed through n8n

The chat on this site. A short conversation instead of a form: it extracts a brief, scores it, and hands it to n8n workflows for notifications, email and CRM.

  • n8n
  • PHP
  • Vanilla JS
  • Claude
In daily use

WorkBrain

Project memory for AI coding assistants

An MCP server that gives Claude Code and Cursor the context of each project: decisions, conventions and the history that never lives in the code. Hybrid search, strict isolation between projects.

  • MCP
  • TypeScript
  • Postgres + pgvector
  • Claude
Prototype

Bayzara

AI agents that ask before they act

Agents declare every action first. Low-risk actions run; anything touching money, customers or personal data waits for a named person.

  • TypeScript
  • SvelteKit
  • Cloudflare Workers
Private repo
In daily use

Conato

A writing editor where the model only proposes

Claude, GPT, Gemini and DeepSeek in one editor. Every suggestion arrives as a diff; nothing enters the text until the author accepts it.

  • Next.js
  • Vercel AI SDK
  • pgvector
Private repo
Open source

calamus

Reader components for digital stories

One text, five reading modes: scroll, book, terminal, editorial and hypertext.

  • React
  • TypeScript

For storytelling

Early version

tonotopia

Sound that reacts to the reader

A Web Audio engine where scenes change with what the reader does.

  • TypeScript
  • Web Audio