6.3Software · Infrastructure · SystemsDustin Edwards

Foxhound

Recovers failed Stripe payments, handles disputes and reports subscription health for merchants, and is paid only on money it recovers.

How Foxhound connects

Used by 3

Inside Foxhound

Runs

  • App Worker

    React Router 8 on a Cloudflare Worker

    Serves foxhoundapp.com: marketing, sign-in, the merchant app, Stripe webhooks and the admin API.

    writes to foxhound writes to MoneyWriter reads RateLimiter reads Auth rate limiter writes to foxhound-audit reads foxhound-audit writes to foxhound-email reads foxhound-email reads foxhound-email-events writes to Email reads Stripe writes to Stripe

  • Scheduled jobs

    Workers cron triggers

    Recovery every five minutes, daily sweeps and backup, weekly digests, and monthly billing and audits.

    writes to CronLock writes to foxhound writes to foxhound-backups writes to foxhound-email

Stores

  • foxhound

    D1

    Accounts, merchants, payments, recoveries, disputes and billing.

  • foxhound-backups

    R2

    The nightly D1 dumps.

  • MoneyWriter

    Durable Object

    Serializes every write that moves money.

  • CronLock

    Durable Object

    Keeps each scheduled job to one run at a time.

  • RateLimiter

    Durable Object

    Rate limits for the API.

  • Auth rate limiter

    Durable Object

    Rate limits for sign-in.

  • foxhound-audit

    Cloudflare Queues

    Free revenue audits, run one at a time off the request.

  • foxhound-email

    Cloudflare Queues

    Outgoing recovery and account mail.

    writes to foxhound-email-dlq

  • foxhound-email-dlq

    Cloudflare Queues

    Mail that failed every retry.

  • foxhound-email-events

    Cloudflare Queues

    Delivery events for sent mail.

Outside

  • Stripe

    Stripe Connect

    Merchants' payments, failures and disputes.

  • Email

    Workers send_email binding

    Recovery mail from send.foxhoundapp.com, sign-in mail from auth.foxhoundapp.com.

Uses 7

Public model, 2026-10-23. Markdown