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 });
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' }));
}
Daily Telegram tip via cron:
[triggers]
crons = ["0 8 * * *"]
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');
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)