<?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: Keerthana Sathyavada</title>
    <description>The latest articles on DEV Community by Keerthana Sathyavada (@sksathyavada008).</description>
    <link>https://dev.to/sksathyavada008</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%2F4153372%2F7a80bf11-a781-49b3-b1c1-39802f888423.png</url>
      <title>DEV Community: Keerthana Sathyavada</title>
      <link>https://dev.to/sksathyavada008</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sksathyavada008"/>
    <language>en</language>
    <item>
      <title>Flash: Celebrating Laziness with Zootopia’s Favorite Sloth</title>
      <dc:creator>Keerthana Sathyavada</dc:creator>
      <pubDate>Wed, 21 Oct 2026 07:03:19 +0000</pubDate>
      <link>https://dev.to/sksathyavada008/flash-celebrating-laziness-with-zootopias-favorite-sloth-men</link>
      <guid>https://dev.to/sksathyavada008/flash-celebrating-laziness-with-zootopias-favorite-sloth-men</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;
  
  
  🦥 Flash: The Sloth Who Outsmarted a Fox
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Celebrating laziness through Disney’s favorite sloth — one automated task at a time.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;ZPD Headquarters. 9:00 AM.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nick Wilde:&lt;/strong&gt; &lt;em&gt;(leaning back in his chair, spinning a pen between his fingers)&lt;/em&gt; “Well, well, well. If it isn’t Officer Hopps. Still doing everything manually? Spreadsheets, browser searches, reports... Carrots, I thought rabbits were supposed to be fast.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Judy Hopps:&lt;/strong&gt; &lt;em&gt;(without looking up from her screen)&lt;/em&gt; “And I thought foxes were supposed to be clever, Nick. Yet here you are, wasting everyone's time.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nick:&lt;/strong&gt; “Ouch. Anyway, I've got a little challenge for you. Compile this week's expense report, check three websites, organize the evidence, and prepare a briefing. You've got five minutes.”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(He drops a mountain of files onto her desk.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nick:&lt;/strong&gt; “Let's see if those famous rabbit reflexes can beat a fox who already finished his coffee.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Judy:&lt;/strong&gt; &lt;em&gt;(examining the files calmly)&lt;/em&gt; “You know, Nick, speed isn't the same as intelligence. And doing everything yourself isn't the same as being productive.”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(She opens Flash.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Judy:&lt;/strong&gt; “Flash, prepare the expense spreadsheet, organize my notes, and research these websites. Keep the original evidence untouched.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flash Slothmore:&lt;/strong&gt; &lt;em&gt;(slowly raises his head, blinks twice, and smiles)&lt;/em&gt; “Absoooooo-lutely.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nick:&lt;/strong&gt; “Wait. You're trusting a sloth with a deadline?”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Judy:&lt;/strong&gt; “I'm trusting a system I've designed to do the repetitive work, with boundaries I've chosen and results I can verify.”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(A few moments later, the spreadsheet is formatted, the notes are organized, and the browser research is ready for review.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nick:&lt;/strong&gt; &lt;em&gt;(staring at the screen)&lt;/em&gt; “That's... not possible. I haven't even finished my second coffee.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Judy:&lt;/strong&gt; “Maybe next time, Nick, you'll spend less time showing off and more time thinking.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flash:&lt;/strong&gt; &lt;em&gt;(smiling at his completed task list)&lt;/em&gt; “Have... a... nice... day.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nick Wilde: 0. Judy Hopps: 1. Flash: still not in a hurry.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🦊 &lt;strong&gt;Lesson learned:&lt;/strong&gt; Never underestimate a rabbit with a plan and a sloth with an automation pipeline.&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;Meet &lt;strong&gt;Flash&lt;/strong&gt; — a local-first AI desktop companion inspired by Flash Slothmore, the unforgettable DMV sloth from Disney's &lt;em&gt;Zootopia&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Most AI assistants are designed to answer questions. Some can call tools. Flash takes the next step: it helps turn natural-language instructions into practical desktop actions, from creating office documents to organizing checklists and automating browser workflows.&lt;/p&gt;

&lt;p&gt;The goal is simple: &lt;strong&gt;let AI handle the repetitive work while humans stay in control of the important decisions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Flash is built around an open-weight language model running locally, native Windows automation, a web companion, and a cloud coordination layer.&lt;/p&gt;

&lt;p&gt;Think of it as a tiny sloth-powered productivity department that never asks for a coffee break.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  What can Flash do?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Control native Windows applications&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Flash can launch applications and interact with supported Windows interfaces using Python automation tools, including &lt;code&gt;pywinauto&lt;/code&gt; and Windows UI Automation.&lt;/p&gt;

&lt;p&gt;It can handle tasks such as opening Notepad, entering dictated notes, and interacting with supported application controls. Instead of relying entirely on brittle screen coordinates, it can inspect accessible UI elements where supported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Generate real office documents&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Flash can create useful files directly in its local workspace:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.xlsx&lt;/code&gt; spreadsheets for expenses and other structured data.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.docx&lt;/code&gt; documents for notes and reports.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.pptx&lt;/code&gt; presentations for briefings and slide decks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No need to start from a blank document and spend ten minutes formatting column headers. Flash is happy to do the boring bits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Accept voice-driven tasks and checklists&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The companion interface supports voice dictation and task management, making it easier to add groceries, capture reminders, and organize everyday chores.&lt;/p&gt;

&lt;p&gt;Instead of manually typing a shopping list on a tiny phone keyboard, you can simply tell Flash what you need.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Automate browser workflows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using Stagehand and Browserbase, Flash can interact with supported websites, observe page elements, perform actions, and extract information for research tasks.&lt;/p&gt;

&lt;p&gt;This makes repetitive browser work easier to structure into reusable workflows instead of manually jumping between tabs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Connect a mobile-friendly companion to a local agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The web companion is hosted on Render, while a separate Python agent runs on the user's Windows machine.&lt;/p&gt;

&lt;p&gt;A pairing flow connects the two components without giving the cloud coordinator direct access to the desktop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The important distinction:&lt;/strong&gt; Flash's local desktop automation is designed to run on the Windows machine. Cloud-hosted browser sessions, online voice services, and other external integrations still require their respective network connections.&lt;/p&gt;




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

&lt;p&gt;🌐 &lt;strong&gt;Live Web Companion:&lt;/strong&gt; &lt;a href="https://flash-cloud-coordinator.onrender.com/" rel="noopener noreferrer"&gt;https://flash-cloud-coordinator.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🛡️ &lt;strong&gt;Security Boundary &amp;amp; Architecture:&lt;/strong&gt; &lt;a href="https://flash-cloud-coordinator.onrender.com/about" rel="noopener noreferrer"&gt;https://flash-cloud-coordinator.onrender.com/about&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🐙 &lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/SK-Sathyavada-008/flash" rel="noopener noreferrer"&gt;https://github.com/SK-Sathyavada-008/flash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open the live companion to explore Flash's animated sloth interface, voice-dictation experience, and interactive demo.&lt;/p&gt;

&lt;p&gt;The companion includes cursor eye-gaze tracking and idle animations that give Flash a little personality. You can also explore the pairing flow for connecting to the local PC agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A note about the demo:&lt;/strong&gt; The hosted companion demonstrates the web experience. Actual native Windows automation requires the local agent to be installed and running on a compatible Windows machine.&lt;/p&gt;




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

&lt;p&gt;Flash combines local AI inference, deterministic command handling, Windows automation, browser tooling, and a cloud-hosted web companion.&lt;/p&gt;

&lt;p&gt;The architecture is intentionally split into three layers.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The architecture
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A["Mobile / Web Companion"] --&amp;gt; B["Render Cloud Coordinator"]
    B --&amp;gt;|"Paired connection"| C["Local Windows Agent"]
    C --&amp;gt; D{"Command Router"}
    D --&amp;gt;|"Known commands"| E["Deterministic Fast Path"]
    D --&amp;gt;|"Natural language"| F["Ollama + Gemma 2:2B"]
    E --&amp;gt; G["Validated Task Execution"]
    F --&amp;gt; G
    G --&amp;gt; H["Windows UI Automation"]
    G --&amp;gt; I["Office File Generation"]
    G --&amp;gt; J["Local Checklists &amp;amp; Notes"]
    G --&amp;gt; K["Stagehand + Browserbase"]
    C --&amp;gt; L["Voice Output"]
    C --&amp;gt; M["Logging &amp;amp; Error Tracking"]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The key design choice is that the local agent is responsible for desktop actions. Render hosts the companion and coordination service; it does not need direct desktop privileges to serve the web application.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Local intelligence with Gemma 2:2B
&lt;/h3&gt;

&lt;p&gt;Flash uses Google's &lt;strong&gt;Gemma 2:2B&lt;/strong&gt;, an open-weight language model, through Ollama.&lt;/p&gt;

&lt;p&gt;Rather than sending every command to a remote language-model API, Flash uses a hybrid approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic fast path:&lt;/strong&gt; Recognizes supported, predictable commands such as opening an application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local model inference:&lt;/strong&gt; Routes more ambiguous natural-language instructions to Gemma for intent interpretation and parameter extraction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured output:&lt;/strong&gt; Uses constrained instructions and JSON-oriented parsing to make model outputs easier to validate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fallback parsing:&lt;/strong&gt; Provides a rule-based alternative for supported commands when Ollama is unavailable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fast path avoids the overhead of model inference for commands that do not need it. The local model handles the more flexible language-understanding work.&lt;/p&gt;

&lt;p&gt;Gemma does not need to be the fastest model in the city. It needs to be useful, available locally, and predictable enough to fit into a carefully designed workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Native Windows automation
&lt;/h3&gt;

&lt;p&gt;Flash uses Python-based Windows automation, including &lt;code&gt;pywinauto&lt;/code&gt; and Windows UI Automation, to interact with supported applications.&lt;/p&gt;

&lt;p&gt;The local agent is responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launching applications.&lt;/li&gt;
&lt;li&gt;Interacting with accessible interface elements.&lt;/li&gt;
&lt;li&gt;Entering text and executing supported actions.&lt;/li&gt;
&lt;li&gt;Creating and organizing files in the local workspace.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Separating command interpretation from execution makes it easier to validate instructions before carrying them out.&lt;/p&gt;

&lt;p&gt;A language model can interpret what a user wants, but the automation layer should determine which actions are actually supported.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Office file generation
&lt;/h3&gt;

&lt;p&gt;Flash generates real files instead of merely describing how to create them.&lt;/p&gt;

&lt;p&gt;Python document-generation libraries handle the structured output, including spreadsheets, Word documents, and presentations.&lt;/p&gt;

&lt;p&gt;This is a useful example of why an AI application does not need to use a language model for everything. Gemma interprets the request; deterministic code handles the formatting and file creation.&lt;/p&gt;

&lt;p&gt;The result is a practical combination of flexible language understanding and conventional software engineering.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Voice: ElevenLabs and offline fallback
&lt;/h3&gt;

&lt;p&gt;Flash integrates ElevenLabs for neural text-to-speech, giving the companion a more expressive voice.&lt;/p&gt;

&lt;p&gt;For supported local speech-output workflows, Windows SAPI through &lt;code&gt;pyttsx3&lt;/code&gt; provides an offline fallback.&lt;/p&gt;

&lt;p&gt;This distinction matters: the local speech fallback can work without an internet connection, but ElevenLabs and other cloud services still depend on connectivity.&lt;/p&gt;

&lt;p&gt;The result is a voice experience that can degrade gracefully instead of treating a network outage as the end of the world.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Browser automation with Stagehand and Browserbase
&lt;/h3&gt;

&lt;p&gt;Flash integrates Stagehand's browser automation primitives — &lt;code&gt;act&lt;/code&gt;, &lt;code&gt;observe&lt;/code&gt;, and &lt;code&gt;extract&lt;/code&gt; — with Browserbase-hosted browser sessions.&lt;/p&gt;

&lt;p&gt;These tools can help Flash interact with websites, inspect page content, and extract relevant information.&lt;/p&gt;

&lt;p&gt;The browser component is separate from the local Windows automation component. Because Browserbase runs browser sessions in the cloud, those workflows require network access and should be treated separately from local-only operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Render, MongoDB Atlas, and observability
&lt;/h3&gt;

&lt;p&gt;The remaining infrastructure makes Flash easier to deploy and operate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Render:&lt;/strong&gt; Hosts the web companion and cloud coordination service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB Atlas:&lt;/strong&gt; Supports persistent storage for routines, checklists, and preferences, with local JSON fallback where configured.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sentry:&lt;/strong&gt; Supports error reporting and observability for troubleshooting agent operations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, these services make Flash more than a local script. They provide a path toward a usable companion with a web interface, persistent data, and operational visibility.&lt;/p&gt;




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

&lt;p&gt;Flash is built around a simple belief:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An AI assistant that can operate your computer should not require you to hand over every part of your digital life to a closed API.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open innovation matters here for three main reasons.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Local control over private desktop tasks
&lt;/h3&gt;

&lt;p&gt;A desktop assistant may interact with documents, notes, spreadsheets, and application windows containing sensitive information.&lt;/p&gt;

&lt;p&gt;Running Gemma locally through Ollama allows supported language-model inference to take place on the user's machine. Those prompts do not need to be sent to a hosted LLM provider.&lt;/p&gt;

&lt;p&gt;That gives users more control over where their desktop context is processed.&lt;/p&gt;

&lt;p&gt;However, local inference alone does not make the entire application offline or guarantee that every component is private. Flash's cloud coordination, Browserbase sessions, ElevenLabs integration, and remote storage can involve external services. Keeping those boundaries explicit is part of designing a trustworthy system.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Less dependence on per-token pricing
&lt;/h3&gt;

&lt;p&gt;A local model can interpret supported tasks without incurring a hosted LLM API charge for every request.&lt;/p&gt;

&lt;p&gt;For an assistant that might be invoked throughout the day, that can make a meaningful difference.&lt;/p&gt;

&lt;p&gt;Local inference is not literally free: the computer consumes electricity, hardware has costs, and external services may have their own pricing. But it gives users an alternative to making every interaction dependent on paid model inference.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Freedom to experiment and improve
&lt;/h3&gt;

&lt;p&gt;Open-weight models give developers more control over how inference is deployed and integrated.&lt;/p&gt;

&lt;p&gt;With Gemma and Ollama, I can experiment with prompts, change the command-routing logic, adjust structured-output handling, and test local inference without redesigning the whole application around a proprietary model API.&lt;/p&gt;

&lt;p&gt;I can also separate the model from deterministic execution logic, making it easier to test and replace individual components.&lt;/p&gt;

&lt;p&gt;That is what open innovation makes possible: not just using AI, but understanding how it fits into a system and having the freedom to change that system.&lt;/p&gt;




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

&lt;p&gt;Let's revisit Judy's challenge.&lt;/p&gt;

&lt;p&gt;Nick thinks productivity means doing everything himself, moving quickly, and making sure everyone notices.&lt;/p&gt;

&lt;p&gt;Judy knows better. The real advantage comes from identifying repetitive work, choosing the right tools, and checking the results.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;The manual way&lt;/th&gt;
&lt;th&gt;The Flash way&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Grocery checklist&lt;/td&gt;
&lt;td&gt;Unlock phone, open notes, type every item&lt;/td&gt;
&lt;td&gt;Dictate supported items and organize the checklist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Expense spreadsheet&lt;/td&gt;
&lt;td&gt;Open Excel, create headers, format rows&lt;/td&gt;
&lt;td&gt;Request a spreadsheet and let the local agent generate it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meeting notes&lt;/td&gt;
&lt;td&gt;Open an editor and type everything manually&lt;/td&gt;
&lt;td&gt;Dictate notes into a supported local workflow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web research&lt;/td&gt;
&lt;td&gt;Switch between tabs and repeatedly inspect pages&lt;/td&gt;
&lt;td&gt;Use a browser automation workflow to interact with and extract information&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Desktop chores&lt;/td&gt;
&lt;td&gt;Repeatedly open applications and perform routine steps&lt;/td&gt;
&lt;td&gt;Delegate supported actions to the local agent&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The precise time saved depends on the task, hardware, network conditions, and how much review is needed. The goal is to eliminate repetitive manual steps, not pretend every task can be completed instantly.&lt;/p&gt;

&lt;p&gt;And Judy never blindly trusts the output. She checks the spreadsheet, verifies the research, and keeps control over important decisions.&lt;/p&gt;

&lt;p&gt;That is the difference between useful automation and letting an AI loose on your computer and hoping for the best.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flash does the repetitive work. Judy makes the decisions. Nick gets humbled.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Honestly, that sounds like a pretty good productivity strategy.&lt;/p&gt;




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

&lt;p&gt;I'm submitting Flash for the following categories, where the corresponding integrations and implementation meet the challenge requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏆 Overall Challenge: Slow and Steady
&lt;/h3&gt;

&lt;p&gt;Flash embodies the theme by using open-weight AI and desktop automation to reduce repetitive work and let people reclaim their time.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌟 Featured Categories
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Gemma — $200&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemma 2:2B runs locally through Ollama and supports natural-language intent interpretation and structured parameter extraction in Flash's command pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Render — $200&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Render hosts the public web companion and cloud coordination service, connecting the web experience to the separately running local agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤝 Partner Categories
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Best Use of ElevenLabs — $100&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ElevenLabs provides neural voice output, with a Windows SAPI fallback for supported local speech workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Browserbase — $100&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Browserbase and Stagehand power cloud browser automation for supported research and data-extraction workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of MongoDB Atlas — $100&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;MongoDB Atlas provides persistent storage for supported routines, checklists, and preferences, alongside local fallback storage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Sentry Agent Tracing — $100&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sentry integration supports operational visibility and troubleshooting for agent errors and execution behavior.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next for Flash?
&lt;/h2&gt;

&lt;p&gt;Flash is a starting point for exploring how local-first AI can make desktop automation more approachable.&lt;/p&gt;

&lt;p&gt;Some directions I'd like to explore further include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More robust task planning and execution reporting.&lt;/li&gt;
&lt;li&gt;Clearer approval boundaries for sensitive desktop actions.&lt;/li&gt;
&lt;li&gt;Better recovery when an application or browser workflow fails.&lt;/li&gt;
&lt;li&gt;More detailed performance measurements for local inference and command execution.&lt;/li&gt;
&lt;li&gt;Expanded offline workflows that reduce dependence on cloud services.&lt;/li&gt;
&lt;li&gt;More reproducible tests for command parsing, file generation, and UI automation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The aim is not to build an AI that does absolutely everything. It is to build one that does the boring things reliably, explains what it did, and leaves the user in control.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Verdict: The Fox Lost. The Rabbit Won. The Sloth Went Back to Work.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Nick Wilde:&lt;/strong&gt; “Okay, I'll admit it. That sloth is surprisingly useful.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Judy Hopps:&lt;/strong&gt; “And what have we learned today, Nick?”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nick:&lt;/strong&gt; “Never challenge a rabbit who knows how to automate?”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Judy:&lt;/strong&gt; “Close enough.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flash:&lt;/strong&gt; &lt;em&gt;(slowly closing the completed report)&lt;/em&gt; “Can... I... go... home... now?”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Judy:&lt;/strong&gt; “Case closed.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nick:&lt;/strong&gt; “This is the worst day of my life.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flash:&lt;/strong&gt; “Sounds... exhausting.”&lt;/p&gt;

&lt;p&gt;🦥💤&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with open-weight AI, Python, Ollama, Gemma 2:2B, Windows automation, React, Render, Stagehand, Browserbase, and a healthy respect for doing less repetitive work.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/SK-Sathyavada-008/flash" rel="noopener noreferrer"&gt;SK-Sathyavada-008/flash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://flash-cloud-coordinator.onrender.com/" rel="noopener noreferrer"&gt;flash-cloud-coordinator.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Change starts with you.” — Officer Judy Hopps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Yeah, but tomorrow.” — Flash Slothmore&lt;/strong&gt; 🦥&lt;/p&gt;

&lt;p&gt;Team&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/veerrr"&gt;@veerrr&lt;/a&gt; &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Rivo: I Built an AI Fee Manager for My Kuchipudi Teacher | Hacktoberfest Week 2</title>
      <dc:creator>Keerthana Sathyavada</dc:creator>
      <pubDate>Wed, 14 Oct 2026 18:39:47 +0000</pubDate>
      <link>https://dev.to/sksathyavada008/rivo-i-built-an-ai-fee-manager-for-my-kuchipudi-teacher-hacktoberfest-week-2-4a5c</link>
      <guid>https://dev.to/sksathyavada008/rivo-i-built-an-ai-fee-manager-for-my-kuchipudi-teacher-hacktoberfest-week-2-4a5c</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Story Behind Rivo: My Mam, Her Students, and a Birthday Gift
&lt;/h2&gt;

&lt;p&gt;I'm an engineering student, and Kuchipudi is a big part of my life.&lt;/p&gt;

&lt;p&gt;My dance teacher, teaches over 60 students. Like many independent dance teachers across India, she manages her academy while teaching classes, coordinating batches, communicating with parents, and keeping track of monthly fees.&lt;/p&gt;

&lt;p&gt;And that's where I noticed a problem.&lt;/p&gt;

&lt;p&gt;Every month, parents pay their children's dance fees through UPI apps such as Google Pay, PhonePe, and Paytm. Then they send payment screenshots and messages into the respective WhatsApp groups.&lt;/p&gt;

&lt;p&gt;Sounds simple, right?&lt;/p&gt;

&lt;p&gt;Except there are 60–70 students, multiple batches, different payment dates, missed months, and parents who sometimes pay for two siblings in a single transaction.&lt;/p&gt;

&lt;p&gt;Imagine receiving a ₹3,000 payment for two siblings whose monthly fees are ₹1,500 each. The money might have arrived in one transaction, but the teacher still needs to account for two separate students and their respective fee obligations.&lt;/p&gt;

&lt;p&gt;Now multiply that across dozens of students.&lt;/p&gt;

&lt;p&gt;Someone has to open the screenshots, identify the student, understand which month the payment belongs to, check the amount, update the records, and remember who still owes money.&lt;/p&gt;

&lt;p&gt;And a screenshot isn't proof that the money actually reached the bank account.&lt;/p&gt;

&lt;p&gt;I kept thinking about how much time and energy this repetitive work could take away from teaching and dancing.&lt;/p&gt;

&lt;p&gt;I wanted to build something that would make Mam's life easier. In fact, I initially imagined building it as a birthday gift for her.&lt;/p&gt;

&lt;p&gt;Not another app that asks teachers to change their entire workflow. Not another complicated accounting dashboard that requires hours of manual data entry.&lt;/p&gt;

&lt;p&gt;I wanted to build something that could do the routine work for her.&lt;/p&gt;

&lt;p&gt;That idea became &lt;strong&gt;Rivo&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Rivo is an AI-powered fee reconciliation and financial bookkeeping platform for independent dance teachers, music academies, tuition centres, and other small educational businesses.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Its goal is simple: turn messy payment evidence into organised fee records while keeping the teacher in control of the money.&lt;/p&gt;

&lt;p&gt;Instead of manually reading every WhatsApp message and maintaining a notebook, a teacher can use Rivo to organise payment claims, identify students, reconcile transactions against bank statements, allocate fees, and see who still has outstanding dues.&lt;/p&gt;

&lt;p&gt;The product is designed around a crucial distinction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;An AI model can extract payment details. It cannot declare that money has reached the bank.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Rivo separates the process into three stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Claimed payment:&lt;/strong&gt; A parent sends a screenshot or message claiming to have paid.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Matched payment:&lt;/strong&gt; The claimed transaction reference and amount match a transaction in an official bank statement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verified payment:&lt;/strong&gt; The matched bank transaction is confirmed and allocated to the relevant student's fee obligation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This distinction is especially important for financial software. An old screenshot, a forwarded receipt, or an AI-generated extraction should never be enough to mark a student's fees as paid.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who would pay for it?
&lt;/h3&gt;

&lt;p&gt;Rivo is designed for small academies that cannot justify expensive enterprise accounting software but still need reliable financial records.&lt;/p&gt;

&lt;p&gt;My initial pricing hypothesis is ₹499–₹999 per month, depending on the features and academy size.&lt;/p&gt;

&lt;p&gt;For a teacher managing dozens of students, the value isn't simply a prettier spreadsheet. It's fewer hours spent on repetitive bookkeeping, fewer missed fee obligations, easier sibling allocations, and better visibility into actual collections.&lt;/p&gt;

&lt;p&gt;The long-term goal is to make the teacher's involvement minimal: routine reconciliation should be automated, with manual attention reserved for ambiguous or exceptional cases.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Live application:&lt;/strong&gt; &lt;a href="https://rivo-app-ss62.onrender.com/" rel="noopener noreferrer"&gt;https://rivo-app-ss62.onrender.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/SK-Sathyavada-008/rivo" rel="noopener noreferrer"&gt;https://github.com/SK-Sathyavada-008/rivo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Try the interactive demo
&lt;/h3&gt;

&lt;p&gt;The application includes a Phone Simulator that demonstrates a realistic WhatsApp-style workflow with simulated dance academy batch groups.&lt;/p&gt;

&lt;p&gt;Click the &lt;strong&gt;Phone Simulator&lt;/strong&gt; button in the navbar to explore the simulated parent messages and payment receipts.&lt;/p&gt;

&lt;p&gt;You can also try the demo login:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Email:&lt;/strong&gt; &lt;code&gt;teacher@naatyavedam.com&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Password:&lt;/strong&gt; &lt;code&gt;naatyavedam123&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The simulator demonstrates the intended ingestion and extraction workflow; it does not connect to or read anyone's actual WhatsApp account.&lt;/p&gt;

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

&lt;p&gt;Rivo is built as a TypeScript monorepo with a React frontend, an Express backend, MongoDB Atlas, and an open-weight AI model.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Open-weight AI with Google's Gemma
&lt;/h3&gt;

&lt;p&gt;At the heart of Rivo is Google's &lt;strong&gt;Gemma 2 9B Instruct (&lt;code&gt;gemma-2-9b-it&lt;/code&gt;)&lt;/strong&gt;, accessed through Groq's inference service.&lt;/p&gt;

&lt;p&gt;Payment messages are rarely clean or consistent. A parent might write:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Paid 3000 for Keerthana and Roopa October fee 🙏"&lt;/li&gt;
&lt;li&gt;"Sent Rs 1500 for Alekhya UTR 428901248910"&lt;/li&gt;
&lt;li&gt;"Fee paid for both children."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These messages contain useful information, but they aren't structured financial records.&lt;/p&gt;

&lt;p&gt;Gemma helps transform unstructured payment messages into structured fields that the application can validate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;student_names&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;claimed_amount&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;claimed_transaction_reference&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;confidence&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;is_untrusted_candidate&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, a message mentioning two students and ₹3,000 can be converted into a candidate record containing both names and the claimed amount.&lt;/p&gt;

&lt;p&gt;However, the model's output remains untrusted. It does not directly update a student's verified payment status.&lt;/p&gt;

&lt;h4&gt;
  
  
  What happens when the AI endpoint fails?
&lt;/h4&gt;

&lt;p&gt;A small academy shouldn't lose its workflow just because an external inference endpoint is temporarily unavailable.&lt;/p&gt;

&lt;p&gt;Rivo includes a deterministic fallback extractor, &lt;code&gt;extractFieldsWithRules&lt;/code&gt;, which recognises common Indian currency formats such as &lt;code&gt;₹&lt;/code&gt;, &lt;code&gt;Rs.&lt;/code&gt; and &lt;code&gt;/-&lt;/code&gt;, along with 12-digit UPI transaction references.&lt;/p&gt;

&lt;p&gt;This fallback handles basic extraction without depending on the AI endpoint. Complex or ambiguous messages can still require further review.&lt;/p&gt;

&lt;p&gt;The combination of open-weight AI and deterministic validation makes the system more resilient than an implementation that depends entirely on a single model response.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The sibling fee-splitting problem
&lt;/h3&gt;

&lt;p&gt;This is one of the most important business rules in Rivo.&lt;/p&gt;

&lt;p&gt;Suppose two siblings, Keerthana and Roopa, each owe ₹1,500 for October. Their parent sends a single ₹3,000 payment.&lt;/p&gt;

&lt;p&gt;The bank statement contains one transaction, but the academy needs two separate fee allocations.&lt;/p&gt;

&lt;p&gt;Rivo's allocation engine uses the relevant student, family, and fee-obligation records to distribute the matched transaction across the appropriate outstanding obligations.&lt;/p&gt;

&lt;p&gt;The result is one bank transaction linked to two distinct allocations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keerthana: ₹1,500&lt;/li&gt;
&lt;li&gt;Roopa: ₹1,500&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system must also account for situations such as outstanding fees from previous months, payments covering multiple months, and amounts that do not match the expected obligations.&lt;/p&gt;

&lt;p&gt;These cases require explicit business rules rather than asking an AI model to make financial decisions on its own.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. MongoDB Atlas and financial data integrity
&lt;/h3&gt;

&lt;p&gt;Rivo uses MongoDB Atlas with Mongoose to manage the application's financial records.&lt;/p&gt;

&lt;p&gt;The backend includes models for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Student&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FeeObligation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PaymentEvidence&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PaymentTransaction&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PaymentAllocation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AuditEvent&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every tenant-owned database operation is scoped to the authenticated teacher, helping prevent one academy from accessing another academy's records.&lt;/p&gt;

&lt;p&gt;The reconciliation workflow also includes transaction deduplication, unique-index protections for transaction references, and audit logging.&lt;/p&gt;

&lt;p&gt;This matters because uploading the same bank statement twice should not create duplicate collections or inflate the academy's revenue.&lt;/p&gt;

&lt;p&gt;A financial ledger needs more than an AI model that usually gets the answer right. It needs predictable behaviour when the same evidence arrives twice, the data is incomplete, or something goes wrong.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. React, Express, and Render
&lt;/h3&gt;

&lt;p&gt;The frontend uses React 19, Vite, Tailwind CSS, Lucide icons, and Recharts for financial dashboards.&lt;/p&gt;

&lt;p&gt;The backend uses Express and serves the compiled frontend from the same deployed web service.&lt;/p&gt;

&lt;p&gt;Rivo is hosted on Render as a unified application, with the Express API and React single-page application served through one service.&lt;/p&gt;

&lt;p&gt;This simplifies deployment and avoids many cross-origin cookie issues associated with maintaining separate frontend and backend origins.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Observability with Sentry
&lt;/h3&gt;

&lt;p&gt;Financial reconciliation failures should not disappear silently.&lt;/p&gt;

&lt;p&gt;Rivo includes Sentry integration for monitoring application exceptions and troubleshooting failures in the reconciliation workflow.&lt;/p&gt;

&lt;p&gt;The objective is to make it easier to identify problems such as malformed bank CSV files, failed AI extraction requests, and unexpected reconciliation errors.&lt;/p&gt;

&lt;p&gt;Production monitoring must also be configured carefully so that sensitive payment information and student data are not unnecessarily captured in telemetry.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;The Hacktoberfest Week 2 prompt asks an important question: what does open innovation make possible that a closed approach might not?&lt;/p&gt;

&lt;p&gt;For Rivo, the answer comes down to cost, adaptability, and control.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Making the economics work for small businesses
&lt;/h3&gt;

&lt;p&gt;An independent dance teacher may collect modest monthly fees from dozens of students. A costly AI workflow can quickly make the product commercially impractical.&lt;/p&gt;

&lt;p&gt;Gemma gives Rivo an open-weight model that can be evaluated, adapted, and served through different compatible inference setups.&lt;/p&gt;

&lt;p&gt;Using an inference provider such as Groq makes experimentation accessible without requiring me to maintain dedicated GPU infrastructure.&lt;/p&gt;

&lt;p&gt;The goal is to keep the AI component affordable enough that the subscription price makes sense for the teacher.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Building for a specialised problem
&lt;/h3&gt;

&lt;p&gt;A generic chatbot can extract an amount from a sentence. Rivo needs to understand the relationship between a student, a family, a fee obligation, a claimed payment, and an actual bank transaction.&lt;/p&gt;

&lt;p&gt;The model handles language interpretation, while deterministic application logic enforces the academy's financial rules.&lt;/p&gt;

&lt;p&gt;Because Gemma's weights are available, the model can also be evaluated against real-world message patterns and potentially adapted for the language and payment conventions used by Indian educators.&lt;/p&gt;

&lt;p&gt;The model is replaceable; the financial rules remain explicit and testable.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Privacy is an architectural responsibility
&lt;/h3&gt;

&lt;p&gt;Payment evidence can contain names, transaction references, phone numbers, and other sensitive information.&lt;/p&gt;

&lt;p&gt;Open-weight AI creates more flexibility over where and how inference runs, including the possibility of moving inference to a controlled or local environment.&lt;/p&gt;

&lt;p&gt;However, using an open-weight model through a hosted provider does not automatically make the application private. That depends on the provider's data policies, configuration, and the application's handling of sensitive information.&lt;/p&gt;

&lt;p&gt;Rivo's architecture aims to minimise unnecessary exposure, isolate each teacher's records, and keep payment verification separate from model predictions.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Graceful failure instead of total dependence
&lt;/h3&gt;

&lt;p&gt;If an external model endpoint becomes unavailable, the deterministic extraction fallback can still handle supported currency patterns and transaction references.&lt;/p&gt;

&lt;p&gt;This does not mean the entire application works offline. It means that a basic part of the extraction pipeline does not have to stop simply because the AI service is unavailable.&lt;/p&gt;

&lt;p&gt;For a small business, that distinction matters.&lt;/p&gt;

&lt;p&gt;Open innovation isn't just about using a model whose weights are available. It's about retaining the freedom to inspect, adapt, replace, and improve the technology as the product grows.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Person I Want to Build This For
&lt;/h2&gt;

&lt;p&gt;My Mam is the reason this project exists.&lt;/p&gt;

&lt;p&gt;As a Kuchipudi student, I get to see the teaching side of a dance academy, but building Rivo made me think about everything that happens outside the classroom.&lt;/p&gt;

&lt;p&gt;The preparation, the coordination, the parent messages, the fee tracking, and the administrative work all take time away from what a dance teacher actually wants to do: teach, practise, and help students grow.&lt;/p&gt;

&lt;p&gt;I originally imagined this project as a birthday gift for Mam. I wanted to use what I was learning as an engineering student to solve a problem in a world I already knew and cared about.&lt;/p&gt;

&lt;p&gt;That personal connection shaped the product's priorities.&lt;/p&gt;

&lt;p&gt;I don't want Mam to learn complicated accounting software. I don't want her to abandon the UPI apps parents already use. And I don't want her to spend every month manually entering information that a system should be able to organise for her.&lt;/p&gt;

&lt;p&gt;I want her to open Rivo and understand the state of her academy's fees without spending hours piecing together WhatsApp messages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real success of Rivo would be measured not by how much AI it uses, but by how much repetitive work it removes from a teacher's life.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My First User: From Personal Problem to Potential Customer
&lt;/h2&gt;

&lt;p&gt;My first intended user is my own dance teacher.&lt;/p&gt;

&lt;p&gt;She represents exactly the kind of person I want Rivo to serve: an independent educator who manages a growing student base without a dedicated accounting team.&lt;/p&gt;

&lt;p&gt;The problem is concrete, the workflow is familiar, and the potential value is measurable in time saved and fewer reconciliation mistakes.&lt;/p&gt;

&lt;p&gt;My initial pricing hypothesis is ₹499 per month, with the possibility of higher tiers for larger academies.&lt;/p&gt;

&lt;p&gt;The next milestone is to put the application in Mam's hands, observe how it fits her actual monthly fee workflow, and measure whether it reduces her manual work without introducing new complexity.&lt;/p&gt;

&lt;p&gt;One feature I particularly want to explore is one-click fee receipt generation, so a teacher can respond to parents with a clear payment status without repeatedly composing individual messages.&lt;/p&gt;

&lt;p&gt;I am not claiming that Mam has already adopted or paid for Rivo. Her day-to-day workflow inspired the project, and validating it with her is the next important step.&lt;/p&gt;

&lt;p&gt;If Rivo can save her hours every month, I will have achieved something more meaningful than building another portfolio project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;The current application establishes the core workflow, but there is more to do before Rivo can become a dependable tool for real academies.&lt;/p&gt;

&lt;p&gt;My priorities are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-world validation:&lt;/strong&gt; Test the workflow with Mam and identify where it fails to match actual academy operations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Less manual work:&lt;/strong&gt; Reduce the teacher's involvement in routine processing while preserving control over ambiguous cases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better reconciliation:&lt;/strong&gt; Handle multiple-month payments, partial payments, sibling allocations, duplicate uploads, and unmatched transactions reliably.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clearer parent communication:&lt;/strong&gt; Explore generating payment receipts and outstanding-fee reminders.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy and reliability:&lt;/strong&gt; Strengthen data protection, auditability, and monitoring before expanding to more academies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I want to grow Rivo based on what teachers actually need, rather than adding AI features simply because they sound impressive.&lt;/p&gt;

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

&lt;p&gt;Rivo is being submitted for the following partner categories, based on the technologies used in the project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🏆 &lt;strong&gt;Best Use of Render — $200:&lt;/strong&gt; Hosting the full-stack application as a unified web service.&lt;/li&gt;
&lt;li&gt;🏆 &lt;strong&gt;Best Use of Gemma — $200:&lt;/strong&gt; Using Google's open-weight Gemma model for structured extraction from unstructured payment messages.&lt;/li&gt;
&lt;li&gt;🏆 &lt;strong&gt;Best Use of MongoDB Atlas — $100:&lt;/strong&gt; Storing tenant-scoped student, fee, transaction, allocation, and audit records.&lt;/li&gt;
&lt;li&gt;🏆 &lt;strong&gt;Best Use of Sentry Agent Tracing — $100:&lt;/strong&gt; Monitoring application and reconciliation errors, with further scope to demonstrate detailed traces and agent execution.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Rivo started with a problem I could see in the life of someone who matters to me.&lt;/p&gt;

&lt;p&gt;It has become an opportunity to combine engineering, open-weight AI, financial integrity, and a small-business use case that I genuinely care about.&lt;/p&gt;

&lt;p&gt;There is something exciting about being able to take a frustrating monthly routine and ask, "Could I build something that makes this easier?"&lt;/p&gt;

&lt;p&gt;That is what I want open-source AI to enable: not just bigger models or more impressive demos, but useful tools that solve specific problems for real people.&lt;/p&gt;

&lt;p&gt;And if this little project eventually gives my Mam more time to teach Kuchipudi instead of tracking payment screenshots, it will have accomplished exactly what I hoped for when I started building it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built with ❤️ for my Mam, Indian dance gurus, independent educators, and the Hacktoberfest 2026 Open-Source AI Challenge.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rivo-app-ss62.onrender.com/" rel="noopener noreferrer"&gt;Try Rivo&lt;/a&gt; | &lt;a href="https://github.com/SK-Sathyavada-008/rivo" rel="noopener noreferrer"&gt;Explore the source code on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Team &lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/veerrr"&gt;@veerrr&lt;/a&gt; &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>TouchGrass 🌿 — An AI Companion That Tells You to Put Your Phone Away</title>
      <dc:creator>Keerthana Sathyavada</dc:creator>
      <pubDate>Wed, 07 Oct 2026 04:11:47 +0000</pubDate>
      <link>https://dev.to/sksathyavada008/touchgrass-an-ai-companion-that-tells-you-to-put-your-phone-away-1i8l</link>
      <guid>https://dev.to/sksathyavada008/touchgrass-an-ai-companion-that-tells-you-to-put-your-phone-away-1i8l</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;We spend a ridiculous amount of time staring at screens — and then we build AI apps that ask us to stare at them even more.&lt;/p&gt;

&lt;p&gt;So I decided to build something with the opposite goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TouchGrass&lt;/strong&gt; is an AI-powered outdoor companion that gives you a reason to step away from your screen and actually go outside.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Ask AI → Get a small outdoor challenge → Put your phone away → Go touch some grass. 🌿&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of giving you another endless chat conversation, TouchGrass gives you a quick, playful real-world activity that you can actually do.&lt;/p&gt;

&lt;p&gt;Maybe it's finding something unusual around you, paying attention to sounds you've been ignoring, observing your surroundings differently, or simply taking a few minutes to explore.&lt;/p&gt;

&lt;p&gt;The AI gives you the nudge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The rest happens outside the screen.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ What Can You Do With TouchGrass?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🌱 Quick Outdoor Quests
&lt;/h3&gt;

&lt;p&gt;Don't have much time?&lt;/p&gt;

&lt;p&gt;Tell TouchGrass how much time you have and get a small outdoor activity that you can complete during your break.&lt;/p&gt;

&lt;p&gt;No complicated planning. No giant itinerary.&lt;/p&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get a quest → Put your phone away → Go.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🗺️ Explore Your Surroundings
&lt;/h3&gt;

&lt;p&gt;TouchGrass turns going outside into a small adventure.&lt;/p&gt;

&lt;p&gt;Instead of walking around while scrolling through your phone, the app encourages you to actually notice what's around you.&lt;/p&gt;

&lt;h3&gt;
  
  
  📸 What Did I Just See?
&lt;/h3&gt;

&lt;p&gt;Found something interesting outside?&lt;/p&gt;

&lt;p&gt;Take a picture and use AI to help identify what you're looking at and turn the discovery into another little outdoor activity.&lt;/p&gt;

&lt;p&gt;Because apparently even touching grass needed AI. 😂&lt;/p&gt;

&lt;h3&gt;
  
  
  📱 Built for the Real World
&lt;/h3&gt;

&lt;p&gt;TouchGrass is designed as a &lt;strong&gt;mobile-first Progressive Web App&lt;/strong&gt;, so it feels much more like a small outdoor companion than a traditional website.&lt;/p&gt;

&lt;p&gt;The goal isn't to keep you inside the app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal is to get you out of it.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎮 Try It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🌐 Live App
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://sk-sathyavada-008.github.io/touch-grass/" rel="noopener noreferrer"&gt;https://sk-sathyavada-008.github.io/touch-grass/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open it on your phone and try it during your next break.&lt;/p&gt;

&lt;p&gt;You can also add it to your home screen and use it like an app.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Backend
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://touch-grass-trdy.onrender.com/" rel="noopener noreferrer"&gt;https://touch-grass-trdy.onrender.com/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The backend API is deployed on Render and handles the application's server-side functionality and AI requests.&lt;/p&gt;




&lt;h2&gt;
  
  
  💻 Open Source
&lt;/h2&gt;

&lt;p&gt;The complete project is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/SK-Sathyavada-008/touch-grass" rel="noopener noreferrer"&gt;https://github.com/SK-Sathyavada-008/touch-grass&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Feel free to explore the code, try it locally, or contribute.&lt;/p&gt;




&lt;h1&gt;
  
  
  🛠️ How I Built It
&lt;/h1&gt;

&lt;p&gt;TouchGrass combines an AI backend with a mobile-first web experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 Gemma
&lt;/h3&gt;

&lt;p&gt;Gemma is used as the AI layer behind the outdoor experiences.&lt;/p&gt;

&lt;p&gt;Instead of using AI to generate another long conversation, I wanted to use it for something much smaller and more useful:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;turning a little bit of free time into a reason to go outside.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The prompts are designed around short, actionable outdoor activities rather than generic chatbot responses.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎨 Frontend
&lt;/h3&gt;

&lt;p&gt;The frontend is built as a &lt;strong&gt;mobile-first PWA&lt;/strong&gt; with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Responsive UI&lt;/li&gt;
&lt;li&gt;PWA capabilities&lt;/li&gt;
&lt;li&gt;A playful tactile/clay-inspired visual style&lt;/li&gt;
&lt;li&gt;Small animations and interactive elements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted the interface to feel friendly and playful rather than like another productivity dashboard.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚙️ Backend
&lt;/h3&gt;

&lt;p&gt;The backend is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Express&lt;/li&gt;
&lt;li&gt;AI API integration&lt;/li&gt;
&lt;li&gt;Request validation&lt;/li&gt;
&lt;li&gt;CORS handling&lt;/li&gt;
&lt;li&gt;Environment-based configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is deployed on &lt;strong&gt;Render&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  🍃 MongoDB
&lt;/h3&gt;

&lt;p&gt;MongoDB is used for storing application data such as outdoor experiences and user activity data.&lt;/p&gt;

&lt;p&gt;The flexible document structure also makes it easier to extend the app with more types of adventures and discoveries in the future.&lt;/p&gt;




&lt;h3&gt;
  
  
  🚀 GitHub
&lt;/h3&gt;

&lt;p&gt;GitHub is used for source control and deployment of the frontend.&lt;/p&gt;

&lt;p&gt;The project is completely open source, so the entire development process — from the code to the deployment — is available to explore.&lt;/p&gt;




&lt;h1&gt;
  
  
  💡 Why Build Something Like This?
&lt;/h1&gt;

&lt;p&gt;AI is becoming incredibly good at helping us do things faster.&lt;/p&gt;

&lt;p&gt;But sometimes &lt;strong&gt;faster isn't the thing we need.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sometimes we need to stop.&lt;/p&gt;

&lt;p&gt;Look around.&lt;/p&gt;

&lt;p&gt;Walk outside.&lt;/p&gt;

&lt;p&gt;Notice that weird-looking tree.&lt;/p&gt;

&lt;p&gt;Hear the birds.&lt;/p&gt;

&lt;p&gt;Feel the sunlight.&lt;/p&gt;

&lt;p&gt;Talk to a friend.&lt;/p&gt;

&lt;p&gt;Touch some grass.&lt;/p&gt;

&lt;p&gt;TouchGrass is my small experiment in using AI to &lt;strong&gt;reduce screen time instead of increasing it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And honestly, I think AI telling you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Okay, enough screen. Go outside."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;is probably one of the healthiest things an AI can say. 🌿&lt;/p&gt;




&lt;h1&gt;
  
  
  🏆 Challenge Categories
&lt;/h1&gt;

&lt;p&gt;TouchGrass was built using technologies aligned with several Hacktoberfest challenge categories, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma&lt;/strong&gt; — powering the AI-generated outdoor experiences&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render&lt;/strong&gt; — hosting the backend API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB Atlas&lt;/strong&gt; — storing application data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; — open-source development and deployment&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌎 What's Next?
&lt;/h2&gt;

&lt;p&gt;There are plenty of directions I'd love to take this project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better location-aware outdoor quests&lt;/li&gt;
&lt;li&gt;More personalized adventures&lt;/li&gt;
&lt;li&gt;Richer outdoor discovery/identification&lt;/li&gt;
&lt;li&gt;Offline capabilities&lt;/li&gt;
&lt;li&gt;Adventure history and journals&lt;/li&gt;
&lt;li&gt;More accessibility options&lt;/li&gt;
&lt;li&gt;Community-created outdoor challenges&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the core idea will stay the same:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technology should sometimes help us put technology down.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌿 Now Go Touch Some Grass
&lt;/h2&gt;

&lt;p&gt;If you try the app, I'd genuinely love to know what kind of outdoor quest it gives you.&lt;/p&gt;

&lt;p&gt;And if you spend 45 minutes talking to the AI instead of going outside...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;you completely missed the point. 😂&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try TouchGrass:&lt;/strong&gt;&lt;br&gt;
🌐 &lt;a href="https://sk-sathyavada-008.github.io/touch-grass/" rel="noopener noreferrer"&gt;https://sk-sathyavada-008.github.io/touch-grass/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source Code:&lt;/strong&gt;&lt;br&gt;
💻 &lt;a href="https://github.com/SK-Sathyavada-008/touch-grass/" rel="noopener noreferrer"&gt;https://github.com/SK-Sathyavada-008/touch-grass/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt;&lt;br&gt;
⚙️ &lt;a href="https://touch-grass-trdy.onrender.com/" rel="noopener noreferrer"&gt;https://touch-grass-trdy.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading — now close this tab and go outside. 🌱&lt;/p&gt;

&lt;p&gt;Team&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/veerrr"&gt;@veerrr&lt;/a&gt; &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Nudge Veer — I Built My Friend a Personal AI Coding Companion (With real treats)</title>
      <dc:creator>Keerthana Sathyavada</dc:creator>
      <pubDate>Fri, 02 Oct 2026 14:12:05 +0000</pubDate>
      <link>https://dev.to/sksathyavada008/nudge-veer-i-built-my-friend-a-personal-ai-coding-companion-with-real-treats-3deb</link>
      <guid>https://dev.to/sksathyavada008/nudge-veer-i-built-my-friend-a-personal-ai-coding-companion-with-real-treats-3deb</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;Meet &lt;strong&gt;Nudge Veer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's an AI coding companion I built specifically for my &lt;strong&gt;best buddy&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Veer and I spend a lot of time solving DSA and LeetCode problems. &lt;em&gt;Sometimes the problem is the problem. Sometimes the problem is Java. And sometimes... the problem is simply staring at the screen for 20 minutes and refusing to move.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I didn't want to build him another productivity dashboard.&lt;/p&gt;

&lt;p&gt;I wanted to build something that could &lt;strong&gt;nudge him when he's stuck, plan things when he doesn't know where to start, roast him when he's trying to cheese the system, and actually reward him when he earns it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So that's what &lt;strong&gt;Nudge Veer&lt;/strong&gt; became.&lt;/p&gt;

&lt;h3&gt;
  
  
  THINK
&lt;/h3&gt;

&lt;p&gt;Veer can bring a coding problem into THINK mode and interact with &lt;strong&gt;Gemma&lt;/strong&gt; while solving it.&lt;/p&gt;

&lt;p&gt;The AI receives context such as his coding state, mood, problem, language, hint history and current hint level.&lt;/p&gt;

&lt;p&gt;Instead of immediately dumping a solution, Gemma decides what kind of intervention makes sense:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ask a question&lt;/li&gt;
&lt;li&gt;give a conceptual nudge&lt;/li&gt;
&lt;li&gt;provide a hint&lt;/li&gt;
&lt;li&gt;help with syntax&lt;/li&gt;
&lt;li&gt;adjust the difficulty&lt;/li&gt;
&lt;li&gt;or occasionally tell him that yes, he is in fact cooked 😭&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The philosophy is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nudge, don't replace.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🗺️ GAME PLAN
&lt;/h3&gt;

&lt;p&gt;Sometimes the problem isn't solving a problem.&lt;/p&gt;

&lt;p&gt;It's not knowing &lt;strong&gt;what to learn next&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Veer can enter something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want to learn Dynamic Programming."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of giving him a giant generic checklist, Gemma first asks for relevant context — experience, timeframe, available time, goals, etc.&lt;/p&gt;

&lt;p&gt;It then generates a structured, multi-phase roadmap with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;phases&lt;/li&gt;
&lt;li&gt;topics&lt;/li&gt;
&lt;li&gt;tasks&lt;/li&gt;
&lt;li&gt;milestones&lt;/li&gt;
&lt;li&gt;timelines&lt;/li&gt;
&lt;li&gt;practice recommendations&lt;/li&gt;
&lt;li&gt;LeetCode problems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to turn:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I should probably learn this."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;into:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Okay. I know what I'm doing today."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  😈 CHALLENGE
&lt;/h3&gt;

&lt;p&gt;This is where I decided to make things slightly evil.&lt;/p&gt;

&lt;p&gt;Challenges have difficulty levels and points, but &lt;strong&gt;points aren't handed out for clicking buttons&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There is an anti-cheese system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;opening a challenge → no points&lt;/li&gt;
&lt;li&gt;repeating a challenge → no farming&lt;/li&gt;
&lt;li&gt;using hints → reduced reward&lt;/li&gt;
&lt;li&gt;asking for the full solution → zero challenge points&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because otherwise Veer would discover the optimal strategy in approximately 14 seconds.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏆 BADGES
&lt;/h3&gt;

&lt;p&gt;Badges are earned through actual milestones rather than simply opening pages.&lt;/p&gt;

&lt;p&gt;Some are intentionally ridiculous.&lt;/p&gt;

&lt;h3&gt;
  
  
  🍦 TREATS
&lt;/h3&gt;

&lt;p&gt;This is my favourite part.&lt;/p&gt;

&lt;p&gt;The points aren't just imaginary internet numbers.&lt;/p&gt;

&lt;p&gt;They can be exchanged for &lt;strong&gt;actual treats from me (SK)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Current rewards include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🍦 Ice Cream&lt;/li&gt;
&lt;li&gt;🌯 Veg Frankie&lt;/li&gt;
&lt;li&gt;🖊️ Pen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then there's the ridiculous one:&lt;/p&gt;

&lt;h3&gt;
  
  
  💀 THE 1000-COIN MISTAKE
&lt;/h3&gt;

&lt;p&gt;If Veer somehow saves up 1000 coins (hopefully he doesn't 🤐), he unlocks a much bigger real-world treat.&lt;/p&gt;

&lt;p&gt;The coins are persisted through &lt;strong&gt;MongoDB&lt;/strong&gt;, and when a treat is redeemed, the balance actually decreases.&lt;/p&gt;

&lt;p&gt;So yes, there is now a database keeping track of whether I owe my friend food.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎮 The Home Page
&lt;/h2&gt;

&lt;p&gt;I didn't want the home page to look like a SaaS dashboard.&lt;/p&gt;

&lt;p&gt;It's basically a small interactive title screen.&lt;/p&gt;

&lt;p&gt;The centerpiece is a &lt;strong&gt;3D Nudge Veer logo&lt;/strong&gt; with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;#From Developer to the Best PM&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The logo reacts to the user's mouse with 3D perspective, lighting and depth effects.&lt;/p&gt;

&lt;p&gt;There is also a small weird playable character that you can poke because apparently that was necessary.&lt;/p&gt;

&lt;p&gt;The page also contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;😈 the Evil Scorekeeper&lt;/li&gt;
&lt;li&gt;💌 personal messages I've written for Veer&lt;/li&gt;
&lt;li&gt;🪙 his earned coins&lt;/li&gt;
&lt;li&gt;🎁 his real-world treats&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And, of course, some subtle Mr. Bean and Motu Patlu doodles in the background.&lt;/p&gt;

&lt;p&gt;It is intentionally more like a &lt;strong&gt;game title screen made for one friend&lt;/strong&gt; than a traditional productivity app.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Live:&lt;/strong&gt; &lt;a href="https://sk-sathyavada-008.github.io/nudge/" rel="noopener noreferrer"&gt;sk-sathyavada-008.github.io/nudge/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is available on GitHub with the complete source code and setup instructions; Render deployment was attempted but is currently unavailable.&lt;/p&gt;

&lt;p&gt;The local development setup uses Gemma through Ollama, while the deployed environment uses the configured fallback AI provider where required.&lt;/p&gt;

&lt;p&gt;MongoDB Atlas persists the application's reward and progress data across sessions.&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://github.com/SK-Sathyavada-008/nudge" rel="noopener noreferrer"&gt;https://github.com/SK-Sathyavada-008/nudge&lt;/a&gt; &lt;/p&gt;




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

&lt;p&gt;The stack is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 2&lt;/strong&gt; — the open-weight AI model powering the coding companion and roadmap generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; — local model runtime during development&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React 19 + Vite&lt;/strong&gt; — frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three.js / React Three Fiber&lt;/strong&gt; — interactive 3D home page&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js + Express 5 + TypeScript&lt;/strong&gt; — backend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB Atlas&lt;/strong&gt; — persistent application data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Antigravity IDE&lt;/strong&gt; — AI-assisted development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are two major AI workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  THINK Agent
&lt;/h3&gt;

&lt;p&gt;The THINK workflow provides Gemma with structured context such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mood
coding state
hint level
hints used
problem
programming language
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gemma then determines the appropriate next interaction instead of simply returning a generic answer.&lt;/p&gt;

&lt;h3&gt;
  
  
  GAME PLAN Agent
&lt;/h3&gt;

&lt;p&gt;The roadmap workflow works differently.&lt;/p&gt;

&lt;p&gt;It first gathers the information necessary to understand the user's goal and constraints, then generates a structured roadmap that the frontend can render and track.&lt;/p&gt;

&lt;p&gt;The important part for me was making AI an actual &lt;strong&gt;decision-making component of the product&lt;/strong&gt;, rather than putting a chatbot in the corner and calling the project AI-powered.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌱 Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;Building this around an open-weight model changes what I can do with the product.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. I can run the model locally
&lt;/h3&gt;

&lt;p&gt;With Gemma and Ollama, I can experiment with the AI companion locally without requiring every interaction to go through a hosted API.&lt;/p&gt;

&lt;p&gt;That matters for a personal tool where experimentation is part of the fun.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. I control the AI behaviour
&lt;/h3&gt;

&lt;p&gt;Nudge Veer isn't supposed to sound like a generic assistant.&lt;/p&gt;

&lt;p&gt;It's supposed to sound like something that understands the context of the application — including when a hint should be given, when the user should be pushed to think, and when a little teasing is appropriate.&lt;/p&gt;

&lt;p&gt;Using an open model gives me much more control over that behaviour and the surrounding system.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The system is replaceable
&lt;/h3&gt;

&lt;p&gt;The application keeps the model interaction behind the backend rather than tightly coupling the UI to one model provider.&lt;/p&gt;

&lt;p&gt;That means experimenting with different models and runtimes doesn't require rebuilding the entire application.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. It makes personal AI more accessible
&lt;/h3&gt;

&lt;p&gt;This project started with a very small problem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"My friend gets stuck while learning."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It didn't require a huge AI platform.&lt;/p&gt;

&lt;p&gt;It required an open model, a small application, some creativity, and knowing the person you're building for.&lt;/p&gt;

&lt;p&gt;That's what I like most about open innovation.&lt;/p&gt;




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

&lt;p&gt;I built Nudge Veer using &lt;strong&gt;Antigravity IDE&lt;/strong&gt; with an AI-assisted development workflow.&lt;/p&gt;

&lt;p&gt;The agent helped with things including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React + Express architecture&lt;/li&gt;
&lt;li&gt;MongoDB persistence&lt;/li&gt;
&lt;li&gt;the Gemma integration&lt;/li&gt;
&lt;li&gt;structured roadmap generation&lt;/li&gt;
&lt;li&gt;challenge/reward logic&lt;/li&gt;
&lt;li&gt;the interactive 3D home page&lt;/li&gt;
&lt;li&gt;responsive UI&lt;/li&gt;
&lt;li&gt;debugging deployment issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One particularly fun debugging session involved an Express 5 routing change where a wildcard route caused a &lt;code&gt;TypeError&lt;/code&gt;, requiring the backend routing approach to be changed.&lt;/p&gt;

&lt;p&gt;The project also went through several iterations where I deliberately removed features that made it feel too much like a productivity tracker.&lt;/p&gt;

&lt;p&gt;No confidence score.&lt;/p&gt;

&lt;p&gt;No streak counter.&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI companion + challenges + chaos + actual food.&lt;/strong&gt;&lt;/p&gt;




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

&lt;p&gt;I'm submitting Nudge Veer for:&lt;/p&gt;

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

&lt;p&gt;Gemma is central to both major AI workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;THINK — contextual coding assistance&lt;/li&gt;
&lt;li&gt;GAME PLAN — personalized roadmap generation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Best Use of MongoDB Atlas
&lt;/h3&gt;

&lt;p&gt;MongoDB Atlas provides persistent storage for things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;user reward balance&lt;/li&gt;
&lt;li&gt;challenges&lt;/li&gt;
&lt;li&gt;badges&lt;/li&gt;
&lt;li&gt;treat redemptions&lt;/li&gt;
&lt;li&gt;roadmap/progress data&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ❤️ Why I Built It
&lt;/h2&gt;

&lt;p&gt;The easiest way to explain Nudge Veer is this:&lt;/p&gt;

&lt;p&gt;I didn't start with a business idea.&lt;/p&gt;

&lt;p&gt;I started with a friend.&lt;/p&gt;

&lt;p&gt;I know the person who is going to use this. I know the problems that annoy him. I know the jokes he'll understand. I know what kind of motivation he'll ignore.&lt;/p&gt;

&lt;p&gt;So instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What AI product should I build?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I asked:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What would actually make my friend's day a little better?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And somehow that turned into an AI coding companion that keeps track of whether I owe him an ice cream.&lt;/p&gt;

&lt;p&gt;That's &lt;strong&gt;Nudge Veer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your brain isn't broken. It just needs a nudge.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dashboards aside, Veer loved the “Messages From SK” section. Because what's friendship without a roast? 😂&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#BestBuddyEver&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Team &lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/veerrr"&gt;@veerrr&lt;/a&gt; &lt;/p&gt;

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