My first user said 'yeah, absolutely': shipping a review-reply product in five days with an agent team A developer built replydesk, a review-reply desk for small businesses that triages Google and Yelp reviews into thank-you, fix-it, or needs-a-human categories and drafts replies in the owner's voice using the open-weight GLM-5.3-Flash model, with a fact-grounding verifier that rejects any promise, price, name, or policy not traceable to the tone guide or the review. The open-source core is model-agnostic, runs on Python 3.12 with only the standard library, and speaks to any OpenAI-compatible endpoint via LLM_BASE_URL and LLM_API_KEY. The build was carried out by an agent team — an orchestrator, architect, and builder — and the project reports 240+ fully offline tests with network calls mocked, plus a first paying founding member at $9/month. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle https://dev.to/devteam/join-the-hacktoberfest-open-source-ai-challenge-side-hustle-2550-in-prizes-across-18-winners-55ba 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 https://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/ 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/ 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 https://replydeskhq.tech/ · recorded demo https://replydeskhq.tech/demo/ · help https://replydeskhq.tech/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. offline demo, no key needed py app.py --demo online mode: copy .env.example to .env and fill endpoint + key 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 https://github.com/dev-brewery/replydesk/blob/main/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.