This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle 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:
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.
🔗 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.
https://github.com/sarasinha1207/SlothDesk 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:
render.yaml blueprint), calling a hosted open-weight model.
Swapping models is a change to one env var, LLM_MODEL.
For this kind of product, the open model is what makes the business viable: