DEV Community

Anders Dahl Rasmussen
Anders Dahl Rasmussen

Posted on

I built ReviewReply: Cloudflare Worker + Claude AI + Stripe — zero server costs

ReviewReply: AI review replies, $0/month infrastructure

Every restaurant owner I know dreads negative reviews — not because criticism hurts, but because crafting a good response takes 20 minutes they don't have.

So I built ReviewReply: paste any Google, TripAdvisor or Airbnb review, get a professional AI-generated response in 10 seconds. Three free replies per day. No sign-up.

Stack

Everything runs on Cloudflare's free tier:

  • Worker — API, rate limiting, AI calls, Telegram cron
  • KV — server-side rate limiting per IP (no client trust)
  • Pages — static frontend
  • Anthropic Claude Haiku — reply generation (~$0.001/call)
  • Brevo — email delivery (300/day free)
  • Stripe Payment Links — no checkout page needed

Monthly infrastructure cost: $0.

Key patterns

Server-side rate limiting (no localStorage):

const key = `rate:reply:${ip}:${date}`;
const count = parseInt(await env.RR_RATE.get(key) || '0');
if (count >= 3) return json({ error: 'limit reached' }, 429);
await env.RR_RATE.put(key, String(count + 1), { expirationTtl: 86400 });
Enter fullscreen mode Exit fullscreen mode

Pro activation without webhooks:

// Before Stripe redirect: store email
sessionStorage.setItem('proEmail', email);
window.location.href = STRIPE_LINK;

// On return: validate session_id, generate token, store in KV
if (params.get('session_id')?.startsWith('cs_live_')) {
  const token = crypto.randomUUID().replace(/-/g, '');
  await env.RR_TOKENS.put('token:' + token, JSON.stringify({ email, plan: 'pro' }));
}
Enter fullscreen mode Exit fullscreen mode

Daily Telegram tip via cron:

[triggers]
crons = ["0 8 * * *"]
Enter fullscreen mode Exit fullscreen mode

The worker posts a review management tip every morning automatically. No maintenance needed.

The paid tier: ReviewScan ($29)

For the full audit, I switch to Claude Sonnet:

const audit = await callClaude(env, systemPrompt, reviews, 'claude-sonnet-4-6');
Enter fullscreen mode Exit fullscreen mode

Delivers: reputation score, top 5 complaint categories, 20 reply templates, 30-day action plan — all via email within 2 minutes.

Try it

reviewreply.pages.dev — free, no sign-up, works on any device.

Questions or feedback welcome in the comments.

Top comments (0)