This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
replydesk is a review-reply desk for small businesses. Local shops live and die by their Google and Yelp reviews, and answering them well is mind-numbing, never-ending work with an outsized effect on search ranking. replydesk turns a stack of reviews into ready-to-post replies that sound like the owner wrote them on their best day.
The flow: sign up at replydeskhq.tech, describe how you talk (the tone guide), paste in your reviews β and replydesk triages every one into thank-you, fix-it, or needs-a-human. Legal threats, safety claims, and refund disputes never get an auto-draft; they get a plain reason and a human. Everything else gets a reply drafted in the owner's voice by GLM-5.3-Flash, an open-weight model (MIT license), then run through a fact-grounding check that rejects any promise, price, name, or policy that doesn't trace back to the tone guide or the review itself. Fail twice and you get a clearly-labeled template instead of an invented fact. You edit, you copy, you post it to Google. Nothing is ever posted for you.
Who pays: solo operators and small teams β the people for whom review-replying is real work but not a job. A founding member signed up this week at $9/month β he said he'd pay and asked to set up a payment plan.
Live product: https://replydeskhq.tech/ β sign up, activate the founding trial (no card), paste reviews, draft replies.
Recorded offline run (no key, no network β the same pipeline on committed fixtures): https://replydeskhq.tech/demo/
Live drafting is served from my own machine through an accountless tunnel β if it's ever offline the product hands you clearly-labeled template drafts instead, and the recorded demo above is always up.
A review-reply desk for small businesses: paste the raw copy from your Google Business Profile or Yelp page, and replydesk triages every review (praise mixed, needs-a-human) and drafts a reply in your own voice β grounded in your tone guide, with a verifier that rejects any draft inventing facts your paste never contained. The offline core runs entirely from committed fixtures, and a recorded demo renders the full flow without a network. Hosted demo and help replydeskhq.tech Β· recorded demo Β· help.
The open-source core is model-agnostic: it ships pointed at GLM-5.3-Flash
(MIT weights) but speaks to any OpenAI-compatible endpoint β set
LLM_BASE_URL and LLM_API_KEY in a gitignored .env and it runs.
Python 3.12, standard library only β no dependencies to install.
py app.py --demo
py app.py --online
#
β¦ The open-source core is GLM-5.3-Flash (open weights, MIT), called through any OpenAI-compatible endpoint β in the live demo the drafting bridge runs on my own hardware behind an accountless tunnel, with inference served by GLM-5.3-Flash over an OpenAI-compatible API. Because the weights are open, pointing the whole product at self-hosted inference β reviews never leaving the building β is one config line, not a rewrite.
Three deliberate design choices make it trustworthy enough to charge for:
The build itself was done by an agent team: an orchestrator (GLM-5.3, max thinking) briefing and verifying, an architect (GLM-5.3, high) designing, and a builder (GLM-5.3-flash, low) writing every line of application code. The suite is 240+ tests, fully offline, network always mocked. The session with my first user was transcribed locally with open-source whisper.
Reviews are other people's personal data β names, complaints, bad days. A closed API means shipping that text to someone else's pricing page forever. Open weights mean the inference endpoint is a config line: the business, or a reseller serving small businesses, can run replydesk on their own hardware and the reviews never leave the building. That's not a feature I could bolt onto a closed-API product; it's the reason this can be sold to people who answer their own phones. It also means no lock-in: any OpenAI-compatible model drops in. And the agent team that built it β open-weight GLM models in an open harness β is the same bet one layer up.
The entire repo was built by the agent team described above, one task per verified commit. The full decision log β every ruling, every caught defect, the honest post-mortems (two sub-agent push hangs, a missing __main__ that made the server a silent no-op, a demo card mislabeled until an external review caught it) β ships in the repo as JOURNAL.md; commits from builder sessions carry Signed-off-by: GLM-5.3-flash (via pi) trailers, and the exceptions (operational commits) are journaled there too.
A local business owner signed up at replydeskhq.tech, activated the founding trial, and pasted in a real review from his own Google Business Profile. The whole session was recorded as a voice memo (22 minutes, transcribed with an open-source whisper model running locally).
The moment that made the week: his first draft came out wordy β his own read was "a fair amount of almost saying it twice." We added two lines to his tone guide β don't be too wordy, get to the point, always sign off with "God bless" β and re-drafted. The reply came back tight and signed off in his voice. His reaction:
"See, I like that. I suck at putting all this together β but now reading thisβ¦ I like it."
That's the product thesis in one sentence: not writing his reviews for him β sounding like him on his best day.
star words instead of icons). He fell back to typing 5 | review text lines, which worked immediately β and the parser learned the dashboard shape the same day; both surfaces now paste cleanly.
His identity stays private β he is "a local business owner" β and the voice memo never leaves my devices.