DEV Community

Cover image for Client Chats, Minus the Chaos: A Private AI Digest for Freelancers
Sara Sinha
Sara Sinha

Posted on

Client Chats, Minus the Chaos: A Private AI Digest for Freelancers

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle

What I Built

SlothDesk πŸ¦₯ turns a long, noisy group chat into the part you actually need to act on.

Plenty of small businesses run on chat. A freelancer has a WhatsApp group per client. An agency owner lives in Slack threads. A shop owner coordinates suppliers and staff in group chats. The important messages ("can you send the invoice by Friday?", "we changed the scope again") get buried between memes and "πŸ‘".

Paste the chat into SlothDesk and it returns:

  • a two-line summary of what happened
  • a list of what needs you: deadlines, payment promises, decisions
  • a note on what you can safely ignore
  • a ready-to-send reply you can copy

Who would pay for it: anyone whose income depends on not missing a message. Freelancers, small agencies, community managers and shop owners lose real time every day scrolling to find the one line that mattered, and a missed deadline or payment request costs more than that time. It's a small, specific tool for a tedious daily task.

Data Flow

Demo

πŸ”— Live: https://slothdesk-surf.onrender.com

Click Try a sample to see it work without pasting anything. It runs on Render's free tier, so the first load after a quiet spell can take about 30 seconds.

Privacy note: the hosted demo sends your text to a third-party model API. For real client conversations, run it locally with Ollama (see the repo), where nothing leaves your machine.

Code

https://github.com/sarasinha1207/SlothDesk

How I Built It

The stack is deliberately small, because a side hustle tool should be cheap to run and easy to maintain: FastAPI on the backend, one plain HTML/CSS/JS page on the front, no database, no accounts and no build step.

The AI is an open-weight model reached through an OpenAI-compatible chat API. A cleanup step strips timestamps, "media omitted" lines and repeats, then keeps the most recent part of the chat so prompts stay short enough for small models. The model is asked for a JSON reply (summary, todo, ignore, reply), and a tolerant parser copes with models that wrap JSON in prose or code fences. A per-IP rate limit protects a public deploy from running up an API bill.

Because the model sits behind one endpoint URL, the same code runs two ways:

  • Locally: Ollama running an open model, fully offline.
  • Hosted: the app on Render (one-file render.yaml blueprint), calling a hosted open-weight model.

Swapping models is a change to one env var, LLM_MODEL.

Why Does Open Innovation Matter?

For this kind of product, the open model is what makes the business viable:

  • Client confidentiality. Client chats are sensitive. With an open-weight model on Ollama, they never leave the freelancer's laptop, which is something a closed API can't offer and many clients would insist on.
  • No pricing lock-in. Running locally costs nothing per request, and the hosted version can point at any provider serving an open model. If a vendor raises prices, I change two env vars instead of rewriting the app.
  • Fit for a niche. All behavior lives in one prompt file. A freelancer version can emphasize deadlines and payments, while a shop owner's version can emphasize orders and suppliers. Open weights also leave the door open to fine-tuning later.
  • Swappable models. When a smaller or better model appears, I try it by changing one setting.

Prize Categories

  • Best Use of Render
  • Best Use of Gemma

Top comments (0)