SlothScroll: I Taught Gemma to Read Instagram So I Never Have To A developer built SlothScroll, an open-source tool that uses Google's open-weight Gemma model (gemma-4-26b-a4b-it) to read followed Instagram pages once a day and produce a topic-grouped email digest, filtering out ads, reposts and giveaways. A cloud browser driven by Browserbase and Stagehand visits public pages one at a time, while MongoDB Atlas dedupes posts via a unique index and Render runs the daily cron pipeline and site. Setting reasoning_effort to "minimal" cut a demo run from about 4 minutes to roughly 20 seconds, and moving topic assignment from per-page to per-post spread 16 posts across five topics instead of one. 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 What I Built Every morning I opened Instagram "just to catch up", and every morning the feed won. One quick check became another, with ads, reposts and giveaways in between. SlothScroll is my lazy fix. It's a morning digest of the Instagram pages I follow. Once a day a cloud browser visits those pages for me. Gemma , Google's open-weight model, reads every new post and writes a one-line gist. It also sorts the post into a topic Sports, Science, Finance, Tech… and quietly drops ads, reposts and giveaways. What I get is one calm page and one email , grouped by topic, with the 1–3 posts actually worth opening. I read it in about two minutes with my coffee, then close the tab. I never open Instagram. Who gets to be lazier? Anyone who follows news, sports or creator pages to stay informed , not to scroll. Demo 🔗 Live: https://slothscroll-web-ngb7.onrender.com https://slothscroll-web-ngb7.onrender.com What you'll see in the video: - Today's edition: a greeting, the "scrolling saved" number, topic tabs, and Gemma's summary for each topic with its top picks - The archive , an RSS feed per page, and dark mode - The morning email , the same edition delivered to my inbox Code The latest code is on the SlothScroll branch https://github.com/452Harsh/SnoozeFeed/tree/SlothScroll . How I Built It - Gemma gemma-4-26b-a4b-it is the brain. It runs through an OpenAI-compatible client set by environment variables AI BASE URL , AI MODEL , so the same code can point at a hosted endpoint or, by changing one variable, a local Ollama. I use it for three jobs: 1. Per post: a one-line gist, the post's topic, and whether it's an ad, repost or giveaway. All three come back as JSON from a single call. When a caption is only emojis and hashtags, Gemma looks at the image instead. 2. Per page: a fallback category when I don't set one. 3. Per topic: a 2–3 line summary plus the posts worth opening. - Browserbase + Stagehand give it a real browser. I log in once through Browserbase's live view, and a persisted context keeps that session for daily runs. - MongoDB Atlas is the data layer. The cron job writes, the website reads, and a unique index on the post URL means a post is never processed twice. - Render runs everything from one render.yaml Blueprint: a cron job for the daily pipeline and a web service for the site. Every secret is sync: false , so none live in the repo. - The website is server-rendered HTML on Hono, with no frontend framework. It has light and dark mode, works on mobile, and loads quickly. - ElevenLabs narrated the demo video. Slow and steady by design: one run per day, public pages only, visited one at a time with random pauses. A page that fails is noted, and the edition still ships. If Instagram asks for a login, SlothScroll stops and tells me instead of trying to get around it. What broke and how I fixed it - Gemma was slow for this job. A demo run took about 4 minutes because the model reasoned before every answer. Setting reasoning effort: "minimal" brought it down to about 20 seconds , with the same quality for one-line gists. - Everything was "News". Topics were assigned per page, so a football page's posts and an IPO story all landed in News. Now Gemma chooses a topic per post in the same call, with no extra requests. On my real feed the same 16 posts went from one topic to five. - The browser died mid-run. Browserbase sessions end after 5 minutes by default, and a full run takes longer. Asking for a 30-minute session fixed it. - Half-emoji headlines. Shortening captions sometimes cut an emoji in half and left "�". The page now cleans those characters before showing them. Why Does Open Innovation Matter? What you follow says a lot about you. Your reading habits are personal, and an open-weight model means this digest doesn't have to depend on one company's closed API : - I choose where it runs. Gemma is reached through a plain OpenAI-compatible endpoint, so switching providers is an environment-variable change. The client is built to switch to a local Ollama the same way, so the posts never have to leave my machine. - It's cheap enough to run every day forever. A small open model is plenty for one-line gists and topic tags. It's a daily habit, not a premium feature. - It's inspectable and forkable. The prompts, the pipeline and the model are all open, so anyone can adapt SlothScroll to their own pages, language or topics. The Lazy Payoff From a real run this week, using a deliberately conservative estimate of 8 seconds per post : - 16 posts from my pages became 5 topics and one page, about 2 minutes of scrolling saved that day. - 0 times I opened Instagram. The real win is bigger than the 8-second math. One "quick check" usually turns into twenty minutes. SlothScroll ends the session before it starts, and it scales with the pages you follow: I've since added six more The Verge, National Geographic, CNBC, Tasty, Netflix and 9GAG . Prize Categories - Best Use of Gemma: Gemma writes the gists, picks the topics, filters ads and summarizes each topic. - Best Use of Render: a Blueprint with a cron job for the agent pipeline and a web service for the front end. - Best Use of Browserbase: Stagehand drives a real browser with a persisted login, as a repeatable daily workflow. - Best Use of MongoDB Atlas: the database behind an app built on an open-weight model. - Best Use of ElevenLabs: narration for the demo video.