projects

From an idea to something you can use. A selection of my independent work.

Available now

shipped

DriftPosts

Discover places through multilingual travel stories and an interactive map. An AI content pipeline connects video sources, destinations and travel guides.

  • Astro
  • React
  • Cloudflare
  • AI SDK
DriftPosts homepage with a travel story and destination discovery
Technical details

Astro and React on Vercel serve the public site. Cloudflare Workers, D1, R2, Queues and Containers power the backend, from ingestion and translation to publishing.

Frontend
Astro, React, TypeScript, Vercel
Backend
Cloudflare Workers + Hono, D1 (SQLite), R2 (object storage), Cloudflare Containers
AI & data
Vercel AI SDK, OpenAI, Anthropic, Google Places

In development

in progress

Decorebator MCP

Vocabulary practice inside ChatGPT, with exercises and progress across conversations. A new tutor in development, built around a remote MCP server.

  • MCP
  • TypeScript
  • Cloudflare
  • FSRS
Proposed learning flow
  1. Save words
  2. Practice in chat
  3. Review over time
decorebator mcp
Scope & architecture

The scope includes shared progress across lists, varied exercises and persistent learning history. FSRS is proposed for scheduling reviews by skill, initially for personal use.

MCP
ChatGPT, Streamable HTTP, OAuth
Backend
TypeScript, Cloudflare Workers, D1
Core
FSRS, pnpm workspaces, Vitest

From the archive

Retired products, preserved through their code.

retired

Decorebator

The original vocabulary app: AI content and spaced repetition in 7 languages. Retired, with public source code preserving its history.

Technical details
Backend
Go with Gin, PostgreSQL (pgx/v5), River queue system
Mobile
Expo, React Hook Form + Zod, TanStack Query, i18next, RevenueCat, PostHog
Services
DigitalOcean, OpenAI, Stripe, RevenueCat, SendGrid, Redis, MinIO, Sentry, Datadog