<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kavya Chandak</title>
    <description>The latest articles on DEV Community by Kavya Chandak (@kavya_chandak_90380f9ed80).</description>
    <link>https://dev.to/kavya_chandak_90380f9ed80</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4160543%2F8f30e5d8-9d9a-4cc6-945f-add1f6c68037.jpg</url>
      <title>DEV Community: Kavya Chandak</title>
      <link>https://dev.to/kavya_chandak_90380f9ed80</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kavya_chandak_90380f9ed80"/>
    <language>en</language>
    <item>
      <title>Slothstart: a local Gemma agent that does the first two minutes of everything you're avoiding</title>
      <dc:creator>Kavya Chandak</dc:creator>
      <pubDate>Fri, 23 Oct 2026 10:56:23 +0000</pubDate>
      <link>https://dev.to/kavya_chandak_90380f9ed80/slothstart-a-local-gemma-agent-that-does-the-first-two-minutes-of-everything-youre-avoiding-2ok6</link>
      <guid>https://dev.to/kavya_chandak_90380f9ed80/slothstart-a-local-gemma-agent-that-does-the-first-two-minutes-of-everything-youre-avoiding-2ok6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Nobody avoids a task because the whole task is hard. They avoid it because of the first two minutes: the blank page, the empty file, the cursor blinking in a reply box. That's activation energy, and it's the only part of procrastination worth automating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slothstart&lt;/strong&gt; is a small command-line agent that reads the &lt;code&gt;tasks.md&lt;/code&gt; file you keep ignoring and does the starting for you. While you sleep, it picks the task that has been sitting there longest and produces a &lt;em&gt;starter&lt;/em&gt;: a drafted email, an outline with the first paragraph written, a project skeleton with the folder structure and a &lt;code&gt;TODO&lt;/code&gt; in every file, or a three-step checklist with step one already done. In the morning you open a folder called &lt;code&gt;starters/&lt;/code&gt; and every dreaded task is already 20% finished.&lt;/p&gt;

&lt;p&gt;It doesn't try to finish your work. A model that finishes your work for you makes you lazier in the bad way, and the result is usually wrong anyway. Slothstart only lowers the cost of beginning, which is the one thing a sloth would approve of.&lt;/p&gt;

&lt;p&gt;It's also deliberately slow. It processes one task at a time and watches the machine's thermal state. If the laptop starts to run warm, it pauses and waits. I run it on a fanless MacBook Air M1, and a fanless laptop is exactly where this design matters. Slow and steady is the engineering constraint, and it also happens to be the theme.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Model.&lt;/strong&gt; [Gemma 3, FILL IN exact size/quantization] running through [Ollama / llama.cpp, FILL IN]. Gemma is open-weight, so everything below happens on my own machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The loop.&lt;/strong&gt; Slothstart is a small pipeline of narrow calls rather than one big autonomous agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Parse.&lt;/strong&gt; Read &lt;code&gt;tasks.md&lt;/code&gt;. Each line is a task, and optional date tags give age, so old tasks surface first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Classify.&lt;/strong&gt; Gemma labels each task with a starter type: &lt;code&gt;draft&lt;/code&gt;, &lt;code&gt;outline&lt;/code&gt;, &lt;code&gt;skeleton&lt;/code&gt;, or &lt;code&gt;checklist&lt;/code&gt;. This is a single short prompt with a constrained output, so the small model is reliable at it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate.&lt;/strong&gt; A separate prompt per starter type, each with a hard rule: &lt;em&gt;stop after the first step and leave a visible gap.&lt;/em&gt; This rule matters most. Without it, small models try to complete everything and produce confident filler. With it, the output is short, honest, and easy to continue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write.&lt;/strong&gt; The result is saved as a plain file in &lt;code&gt;starters/&lt;/code&gt;, named after the task. No database and no app. Files you can open with anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cool down.&lt;/strong&gt; Between tasks, a thermal check runs. If the machine is warm, the agent sleeps and retries. [FILL IN: how you implemented it, e.g. polling &lt;code&gt;pmset -g therm&lt;/code&gt; on macOS, or a fixed delay between generations.]&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What I learned.&lt;/strong&gt; [FILL IN: one or two real findings from building it, e.g. which starter type Gemma handled best, where it failed, how prompt changes affected quality. Specific and slightly embarrassing findings read as more credible than polished claims.]&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A task list is one of the most private documents a person owns. Mine has emails to professors, internship applications, and things I haven't told anyone I'm putting off. A tool that needs this list has to be a tool I trust completely, and a cloud API asks me to upload my avoidance to someone else's server every single night.&lt;/p&gt;

&lt;p&gt;With an open-weight model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;My data never leaves the laptop.&lt;/strong&gt; The task list is read locally, processed locally, and written locally. There's no account, no upload, and no retention policy to read.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It works with wifi off.&lt;/strong&gt; Slothstart runs at 2 a.m. whether or not the network does. [FILL IN: confirm you ran it with wifi disabled.]&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It costs nothing per run.&lt;/strong&gt; A nightly job over a long list is exactly the workload that gets expensive on a metered API. Locally it costs electricity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I control the behavior.&lt;/strong&gt; The "stop after step one" rule lives in prompts I own. I can tighten it, swap Gemma sizes, or change the model entirely without waiting for a provider to change a policy or deprecate an endpoint.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A closed API would likely write a nicer draft. But for a tool that reads my most private list and runs every night forever, a slightly weaker model that stays on my machine is the better trade.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Gemma.&lt;/strong&gt; Gemma is the only model in the pipeline. It handles both classification and generation, running locally on a fanless laptop, and the design is shaped around what a small local model is actually good at: short constrained outputs rather than long open-ended ones.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Poem to Post — Turning Poetry Into Visual Stories</title>
      <dc:creator>Kavya Chandak</dc:creator>
      <pubDate>Mon, 05 Oct 2026 07:02:56 +0000</pubDate>
      <link>https://dev.to/kavya_chandak_90380f9ed80/poem-to-post-turning-poetry-into-visual-stories-2dbm</link>
      <guid>https://dev.to/kavya_chandak_90380f9ed80/poem-to-post-turning-poetry-into-visual-stories-2dbm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Poem to Post&lt;/strong&gt;, an AI-powered tool that turns a poem into a complete visual social-media post.&lt;/p&gt;

&lt;p&gt;I built it for a friend who writes poetry but finds it difficult to turn her poems into visual content. Instead of starting with an image and trying to fit a poem around it, I wanted the poem itself to drive the creative process.&lt;/p&gt;

&lt;p&gt;The app takes a poem and generates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;its dominant mood&lt;/li&gt;
&lt;li&gt;an Instagram caption&lt;/li&gt;
&lt;li&gt;relevant hashtags&lt;/li&gt;
&lt;li&gt;a detailed visual concept&lt;/li&gt;
&lt;li&gt;an AI-generated background&lt;/li&gt;
&lt;li&gt;a final visual post containing the original poem&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The visual interpretation is not restricted to landscapes. Depending on the poem, it can become an interior, urban scene, symbolic composition, surreal image, or another visual representation that fits the poem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;I recorded a short demo showing the application running through its Gradio interface: poem in → AI-generated visual post out.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/nfzuXotzrbE" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;GitHub repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kavyachandak07-bot/poem-to-post" rel="noopener noreferrer"&gt;https://github.com/kavyachandak07-bot/poem-to-post&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The project uses two open-weight AI models for different parts of the creative pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 3 4B&lt;/strong&gt; runs locally through &lt;strong&gt;Ollama&lt;/strong&gt;. It reads the poem and generates the dominant mood, caption, hashtags, and a detailed visual prompt.&lt;/p&gt;

&lt;p&gt;That visual prompt is then passed to &lt;strong&gt;FLUX.1-schnell&lt;/strong&gt; through Hugging Face Inference Providers to generate the artwork.&lt;/p&gt;

&lt;p&gt;Finally, &lt;strong&gt;Pillow&lt;/strong&gt; combines the generated artwork with the original poem, and &lt;strong&gt;Gradio&lt;/strong&gt; provides the web interface.&lt;/p&gt;

&lt;p&gt;The pipeline is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Poem
  ↓
Gemma 3 4B
  ↓
Mood + Caption + Hashtags + Visual Prompt
  ↓
FLUX.1-schnell
  ↓
AI-generated Background
  ↓
Pillow
  ↓
Final Visual Post
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The language-model part runs locally, while image generation uses hosted inference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open-weight AI made this project possible to build as a collection of interchangeable pieces rather than depending on one closed AI system.&lt;/p&gt;

&lt;p&gt;Gemma runs locally on my machine through Ollama. That means the poem analysis and creative text generation can happen locally without sending the poem to a hosted language-model API.&lt;/p&gt;

&lt;p&gt;It also made experimentation easier. Gemma can focus on understanding the poem and creating the visual concept, while a separate image model can turn that concept into artwork.&lt;/p&gt;

&lt;p&gt;For this project, the most important part of open innovation is that the models can be used as building blocks. I can experiment with the pipeline, change models, and decide which part of the process should run locally or remotely.&lt;/p&gt;

&lt;p&gt;That flexibility helped me build something around a real person's creative workflow rather than simply building another generic AI chatbot.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I used DevRelay while working on the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;Poem to Post uses &lt;strong&gt;Gemma 3 4B&lt;/strong&gt; as a core part of its creative pipeline.&lt;/p&gt;

&lt;p&gt;Gemma runs locally through Ollama and handles poem understanding, mood detection, caption generation, hashtag generation, and creation of the visual prompt that drives the image-generation stage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Use of DigitalOcean
&lt;/h3&gt;

&lt;p&gt;I am not entering this category because DigitalOcean is not currently part of the application's runtime.&lt;/p&gt;




&lt;p&gt;Built for a friend, with open-weight AI.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
