This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
What I Built
ReplyDesk is a one-page web app that answers Google reviews for small local businesses like salons, clinics and cafes.
The owner pastes in 3 to 5 replies they have written before, then pastes their recent reviews. ReplyDesk:
- Drafts a reply to every review in the owner's own voice, learned from those sample replies, so it doesn't sound like a chatbot.
- Flags angry reviews (rudeness, hygiene, refunds, "never coming back") and puts them at the top so they get handled first.
- Shows monthly themes, such as "wait time ×8" or "cleanliness ×3", so the owner can see what customers keep complaining about and fix it.
Who would pay: a salon owner who knows replying to reviews helps their Google ranking but has no time to write 30 replies a month. Replying takes minutes instead of an evening, and the themes view tells them what to fix in the business itself. I'm pricing it at [$X/month per shop].
Demo
Code
How I Built It
- Model: [Llama 3.3 70B / Qwen / your model] via [Groq / OpenRouter / Together / local Ollama].
-
Frontend: a single HTML/CSS/JS page. Reviews are parsed in the browser, and the owner's sample replies and business name are stored in
localStorageonly. -
Backend: one serverless function that talks to any OpenAI-compatible
/chat/completionsendpoint. The API key stays on the server. - Prompting: the sample replies go into the system prompt so the model copies tone, length and sign-off. The prompt also tells it to never invent refunds, discounts or policies, to apologise without getting defensive on bad reviews, and to reply in the review's language.
-
Structured output: for each review the model returns JSON with the reply, a sentiment, an
angryflag and 1 to 3 theme labels. I count the themes in code rather than asking the model to count them, so the monthly numbers are accurate. - Batching: reviews go to the model 8 at a time, so a long list doesn't hit token limits.
Why Does Open Innovation Matter?
- Cost makes the business work. Replying to reviews is high-volume, low-value text. With an open-weight model on a cheap or free inference provider, the cost per shop is [tiny / about $Y a month], so a low price still leaves a margin. [Add a real number if you measured one.]
-
No lock-in. The backend speaks the OpenAI-compatible API, so switching from one open model or host to another is a change to two environment variables (
OPENAI_BASE_URLandMODEL), not a rewrite. If a provider raises prices or a better model ships, I swap it in. - Customer privacy is an option. Reviews are public, but a clinic may not want its owner's replies and business details going to a company it doesn't control. Because the model is open, the same app can be pointed at a local Ollama install on the owner's own machine.
- Room to fine-tune. A general model writes generic "Thank you for your feedback!" replies. Open weights let me fine-tune on [a niche, e.g. salons] later so the replies sound like that industry.
Top comments (0)