Skip to content

Developer Foody

SHIPPED2026

Text a bug fix or feature request from Telegram — Claude Code runs it headless in an isolated git worktree and waits for a diff review before merging.

Role

Tooling / AutomationBackend DevelopmentDevOps

Stack

Node.jsTypeScriptgrammYSupabaseClaude Code CLIPM2

A personal remote-control layer over Claude Code: a Telegram bot (or a web composer on Foody's own admin panel) queues a task in Supabase, a local Node process picks it up, routes it to the right one of three repos by keyword, and runs Claude Code headless inside an isolated git worktree — never touching the real working copy. The diff comes back as inline Telegram buttons (Apply / Discard / Deploy); approving fast-forward-merges it into the target branch, and a separate explicit deploy step ships it (EAS update, git push, or wrangler deploy, depending on the project) — so I can fix a bug or ship a small feature from my phone, with a real review step before anything lands.

Approach

  • Telegram bot (grammY) or an admin-panel composer queues a task into a shared Supabase table
  • Keyword-based project routing across three repos (mobile app, marketing site, support bot), each with its own build/deploy commands
  • Every task runs in its own git worktree + branch — the main working copy is never touched, and a dirty tree blocks merge outright
  • Diff review and merge/discard/deploy happen through inline Telegram buttons, not a blind auto-merge
  • Deploy is a separate, explicit step per project (EAS update, git push, or wrangler deploy) — never automatic after merge

Verification note

A personal tool, actively used to ship real changes to Foody's own repos while away from the keyboard. Runs only while the local machine is on — a deliberate trade-off for reusing a local Claude Code login instead of a separate API key. Not a public product.