{"slug": "sloth-social-a-week-of-content-without-the-blank-page-panic", "title": "Sloth Social: A Week of Content Without the Blank-Page Panic 🦥", "summary": "A developer built Sloth Social, a React/Vite and Node.js/Express app that uses two open-weight models via OpenRouter to draft a week of social media posts and stories for small businesses. The developer moved day scheduling from the model into JavaScript after it sometimes placed two posts on the same day, and added an editable review step after photo analysis produced unsupported product claims. The app generates drafts for review rather than auto-publishing, with API credentials kept server-side.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady](https://dev.to/challenges/hacktoberfest-week3-2026-10-19).*\n\nEvery week, I help create social media content for local businesses. Before anything gets published, there’s a familiar list of decisions: what to talk about, which photos to use, what to write, and how to spread it across the week.\n\n**Sloth Social does the first draft of that work.**\n\nEnter your business details, audience, tone and weekly focus. Choose how many posts and stories you want, and the app generates a plan across Monday to Sunday.\n\nYou can then:\n\nIt’s built for small business owners and the people managing their content—especially anyone who has ever opened a social media scheduler and immediately decided to make a coffee instead.\n\nFor a quick walkthrough:\n\nTo try the photo workflow, select a product image, click **Analyse photo**, review the description and tick the box to include it in your next generation.\n\nThe app creates drafts for review. It doesn’t automatically publish them.\n\nThe frontend uses **React and Vite**, with a **Node.js and Express** backend. The website is deployed on Netlify, and the server runs on Render.\n\nTwo open-weight models sit at the centre of the workflow, accessed through OpenRouter:\n\nOne useful lesson came from scheduling. Initially, I asked the model to write the content and assign its days. Sometimes it placed two posts on the same day.\n\nI moved the scheduling into JavaScript. The model writes the drafts; the server checks the requested quantities and distributes each content type across the week.\n\nPhoto testing revealed another issue: a model could recognise a product but add unsupported claims about its quality or ingredients. I tightened the instructions and added an editable review step. Users choose which descriptions enter the planning brief.\n\nThe backend also validates generated data, applies request timeouts and limits requests to the paid AI endpoints. API credentials stay on the server.\n\nThe open-weight models do the core work: interpreting photos and turning a business brief into usable content drafts.\n\nI chose hosted inference because my development Mac has 8 GB of memory. This version sends requests to hosted providers; it doesn’t run offline or keep uploaded photos entirely on the user’s device.\n\nThe benefit of open weights here is flexibility", "url": "https://wpnews.pro/news/sloth-social-a-week-of-content-without-the-blank-page-panic", "canonical_source": "https://dev.to/fabpe/sloth-social-a-week-of-content-without-the-blank-page-panic-3gl3", "published_at": "2026-10-27 00:25:33+00:00", "updated_at": "2026-10-27 00:41:50.989581+00:00", "lang": "en", "topics": ["ai-tools", "generative-ai", "large-language-models", "computer-vision", "ai-products"], "entities": ["Sloth Social", "OpenRouter", "React", "Vite", "Node.js", "Express", "Netlify", "Render"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/sloth-social-a-week-of-content-without-the-blank-page-panic", "markdown": "https://wpnews.pro/news/sloth-social-a-week-of-content-without-the-blank-page-panic.md", "text": "https://wpnews.pro/news/sloth-social-a-week-of-content-without-the-blank-page-panic.txt", "jsonld": "https://wpnews.pro/news/sloth-social-a-week-of-content-without-the-blank-page-panic.jsonld"}}