<?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: Shrey Sindher</title>
    <description>The latest articles on DEV Community by Shrey Sindher (@shrey_sindher).</description>
    <link>https://dev.to/shrey_sindher</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4154816%2F66913bdd-9024-4658-87a0-eb77586aea5b.webp</url>
      <title>DEV Community: Shrey Sindher</title>
      <link>https://dev.to/shrey_sindher</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shrey_sindher"/>
    <language>en</language>
    <item>
      <title>What's That Green? — Plant identifier</title>
      <dc:creator>Shrey Sindher</dc:creator>
      <pubDate>Mon, 12 Oct 2026 06:41:30 +0000</pubDate>
      <link>https://dev.to/shrey_sindher/whats-that-green-plant-identifier-509h</link>
      <guid>https://dev.to/shrey_sindher/whats-that-green-plant-identifier-509h</guid>
      <description>&lt;h2&gt;
  
  
  🌿 What's that Green Thing — Instant Plant Identification
&lt;/h2&gt;

&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;&lt;strong&gt;"What's that Green Thing"&lt;/strong&gt; is an AI botanical companion designed to do one simple, joyful thing: &lt;strong&gt;get you outside, exploring the living world, and touching actual grass.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modern life traps us behind monitors and glowing rectangles. We walk past hundreds of fascinating plant species every day in parks, sidewalk cracks, hiking trails, and backyards—often without knowing what they are, how they survive, or how to nurture them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's that Green Thing&lt;/strong&gt; bridges the gap between technology and the physical world. Users can step outside with their phone or laptop, point their camera at any mysterious leaf, flower, or succulent, and instantly receive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Common &amp;amp; Botanical Latin Names&lt;/strong&gt;: Spot-on taxonomy to bridge everyday curiosity with real botanical science.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Estimated Confidence Score&lt;/strong&gt;: Transparent certainty ratings on every specimen analyzed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Engaging 2-Sentence Field Summary&lt;/strong&gt;: An approachable look at the plant’s origins, adaptations, and natural habitat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Essential Care &amp;amp; Habitat Guidelines&lt;/strong&gt;: Quick, actionable insights for Water 💧, Sunlight ☀️, and Soil 🌱.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you are an urban forager, weekend hiker, budding gardener, or just someone looking for an excuse to take a walk during a coding break, this tool turns every stroll into an interactive nature walk.&lt;/p&gt;




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

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

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4apaw6ido901r9kgps13.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4apaw6ido901r9kgps13.png" alt=" " width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local Preview:&lt;/strong&gt; Run locally in seconds with &lt;code&gt;python app.py&lt;/code&gt; at &lt;code&gt;http://localhost:5001&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Highlights
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;📷 &lt;strong&gt;Live Viewfinder:&lt;/strong&gt; Stream direct camera feed with an interactive specimen reticle and one-tap shutter capture.&lt;/li&gt;
&lt;li&gt;📁 &lt;strong&gt;Drag-and-Drop:&lt;/strong&gt; Instant upload supporting JPEG, PNG, and WebP images up to 16 MB.&lt;/li&gt;
&lt;li&gt;⏳ &lt;strong&gt;Botanical Loading Ticker:&lt;/strong&gt; Cycles through playful nature-themed status updates (&lt;em&gt;"Consulting the forest spirits..."&lt;/em&gt;, &lt;em&gt;"Analyzing leaf venation patterns..."&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;📋 &lt;strong&gt;Botanical Field Card:&lt;/strong&gt; Displays a clean presentation card with a one-click "Copy Botanical Card" button.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;The complete source code is open source and available on GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/ssindher11/whats-that-green" rel="noopener noreferrer"&gt;https://github.com/ssindher11/whats-that-green&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture Overview
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;app.py&lt;/code&gt;&lt;/strong&gt;: Lightweight Python/Flask server utilizing the official &lt;code&gt;google-genai&lt;/code&gt; SDK with Pydantic structured schemas, image pre-processing (Pillow), and automated model resilience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;templates/index.html&lt;/code&gt;&lt;/strong&gt;: Zero-build frontend combining Tailwind CSS (via CDN) and vanilla JavaScript for camera streams, canvas capture, and responsive botanical UI cards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;requirements.txt&lt;/code&gt;&lt;/strong&gt;: Minimal, clean dependencies (&lt;code&gt;flask&lt;/code&gt;, &lt;code&gt;google-genai&lt;/code&gt;, &lt;code&gt;python-dotenv&lt;/code&gt;, &lt;code&gt;pillow&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  1. Multimodal AI &amp;amp; Structured Outputs
&lt;/h3&gt;

&lt;p&gt;The intelligence engine is built on &lt;strong&gt;Google Gemini 3.8 Flash&lt;/strong&gt; via the official &lt;code&gt;google-genai&lt;/code&gt; Python SDK. We configure Gemini with a specialized botanical persona and enforce rigid JSON schemas via Pydantic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CareTips&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseModel&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;water&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Watering requirements and schedule&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;light&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Sunlight conditions&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;soil&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Soil composition and potting medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PlantIdentification&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseModel&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;is_plant&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;True if image contains botanical specimen&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;plant_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Common name of the plant&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;scientific_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Botanical Latin binomial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Estimated confidence percentage&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Engaging 2-sentence botanical summary&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;care_tips&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;CareTips&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. High-Effort Reasoning (&lt;code&gt;thinking_config&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Plant morphology can be subtle—differentiating lookalike cultivars or venation patterns requires more than superficial classification. By passing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;thinking_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;types&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ThinkingConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;thinking_budget&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the model reasons through leaf margins, stem nodes, and petiole structure prior to synthesizing the final diagnostic report.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Native Browser Camera Integration
&lt;/h3&gt;

&lt;p&gt;Rather than requiring a native mobile app download, the app leverages the browser’s native &lt;code&gt;navigator.mediaDevices.getUserMedia&lt;/code&gt; API. Users can frame specimens directly on their device screen, flip between front and rear cameras, and snapshot frames directly onto an HTML5 canvas for immediate analysis.&lt;/p&gt;




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

&lt;p&gt;Open innovation is essential for environmental literacy and real-world technology:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Democratizing Biodiversity Education:&lt;/strong&gt; Nature identification tools shouldn't be locked behind aggressive paywalls or subscription pay-traps. Open innovation lets anyone build accessible tools for students, community gardens, and nature lovers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extensibility &amp;amp; Local Resilience:&lt;/strong&gt; Open-weight models and transparent SDKs empower developers to customize schemas, support regional plant databases, or adapt tools to run offline on lightweight field devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encouraging Real-World Curiosity:&lt;/strong&gt; When developers have open access to cutting-edge multimodal vision models, we can craft creative applications that motivate people to unplug, step outdoors, and connect with the natural world around them.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;This application was developed pair-programming with &lt;strong&gt;Antigravity&lt;/strong&gt;, leveraging agentic coding workflows to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rapidly scaffold the Flask backend and implement the Google GenAI SDK integration with Pydantic structured schema outputs.&lt;/li&gt;
&lt;li&gt;Build and polish the responsive Tailwind CSS single-page interface with live webcam controls and loading animations.&lt;/li&gt;
&lt;li&gt;Perform end-to-end multimodal testing against real botanical photos and verify edge cases (e.g., distinguishing real foliage from illustrations and non-plant objects).&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Track:&lt;/strong&gt; Touch Grass (Encouraging real-world outdoor engagement, nature exploration, and unplugged curiosity)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multimodal AI / Vision Track:&lt;/strong&gt; Leveraging multimodal reasoning for practical, real-world visual identification.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Little Focus for my friend with ADHD</title>
      <dc:creator>Shrey Sindher</dc:creator>
      <pubDate>Sun, 04 Oct 2026 19:38:48 +0000</pubDate>
      <link>https://dev.to/shrey_sindher/little-focus-for-my-friend-with-adhd-2hb5</link>
      <guid>https://dev.to/shrey_sindher/little-focus-for-my-friend-with-adhd-2hb5</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;Little Focus&lt;/strong&gt; for my friend. They have ADHD, and the part I kept watching them get stuck on was the beginning. A day would show up as one loud pile. A thought would arrive sideways, and the thing they meant to do would slip. The timers they had already tried felt like a test, so a lot of days ended before they had picked a place to start.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8cbptf6uj1g14rj45bh0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8cbptf6uj1g14rj45bh0.png" alt="Idle" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wanted one quiet screen they could open without bracing for it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A little list.&lt;/strong&gt; They can add a task, edit it, mark it done, or put it back. Then they pick one row and leave the rest alone. One small next thing is enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thought parking.&lt;/strong&gt; This is the piece I made because I know how their mind works. The idea and the distraction show up in the same minute. They can set the thought down, keep it, and come back when the session is over, without having to hold it in their head the whole time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A focus session they can leave.&lt;/strong&gt; I put 10, 15, 25, and 40 minutes on the screen, plus any length from 1 to 180, because some days ten minutes is a real win and some days they want longer. They can start, pause, resume, or reset. When the time ends, the page tells them they showed up, then offers another stretch or a five-minute break. The break counts as part of the work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wrote the words on the page the way I would talk to them. An empty list is breathing room. A finished session is something they did. There is no streak to protect and no score to fall behind on.&lt;/p&gt;

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

&lt;p&gt;The demo is live at &lt;a href="https://little-focus.vercel.app/" rel="noopener noreferrer"&gt;https://little-focus.vercel.app/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6bjg42get0f70iwv6vlo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6bjg42get0f70iwv6vlo.png" alt="Demo" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The whole thing my friend sees is one React page: &lt;code&gt;[artifacts/focus-companion/src/App.tsx](artifacts/focus-companion/src/App.tsx)&lt;/code&gt;. Layout and type live in &lt;code&gt;[artifacts/focus-companion/src/index.css](artifacts/focus-companion/src/index.css)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The code is present here: &lt;a href="https://github.com/ssindher11/Little-Focus" rel="noopener noreferrer"&gt;https://github.com/ssindher11/Little-Focus&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;I kept Little Focus in the browser, because my friend should be able to open it and start. React and TypeScript draw the screen. Vite serves and builds it. The timer, the list, and the parked thoughts live on their device. There is no account to create, no database, and no model call sitting between them and the first task.&lt;/p&gt;

&lt;p&gt;The clock stores a deadline while it runs and checks that deadline on a short interval, so leaving the tab does not quietly stretch the session. I lock the duration controls once they have started, so a restless click cannot reset the length underneath them. Buttons have names, the countdown is a timer, and a short line announces when a session starts or ends. If they prefer less motion, the page respects that. On a phone, the timer comes first, then the list, then the thoughts they parked.&lt;/p&gt;

&lt;p&gt;I did not put an open-weight model, a local inference server, or an open-source agent inside this version. The open piece is the app itself: React, Vite, and TypeScript, with nothing behind an API key. My friend can use it without sending their list or their half-finished thoughts to anyone.&lt;/p&gt;

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

&lt;p&gt;The useful part of Little Focus is private, and that mattered to me because of who I made it for. My friend parks thoughts there that are still messy: a worry, a reminder, an idea they are afraid they will lose. I did not want those sentences leaving their laptop. &lt;code&gt;localStorage&lt;/code&gt; keeps the list and the parked thoughts on their machine. After the page has loaded, it keeps working, with no key to rotate, no per-session bill, and no log of what they almost said.&lt;/p&gt;

&lt;p&gt;A closed assistant API would turn “park this thought” into a request someone else stores. It would also make a five-minute break depend on a vendor staying up and a quota staying open. I wanted the opposite for them. The durations, the wording, and the fact that a break is allowed all live in the source, where I can change them when I see what actually helps.&lt;/p&gt;

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

&lt;p&gt;I am entering the overall weekend challenge.&lt;/p&gt;

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