<?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: Sapnil M</title>
    <description>The latest articles on DEV Community by Sapnil M (@sapnil_m_72d9cd3abdf0f3f1).</description>
    <link>https://dev.to/sapnil_m_72d9cd3abdf0f3f1</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%2F4151394%2F3be01a08-3727-49c0-ace4-1e018a24e21f.jpeg</url>
      <title>DEV Community: Sapnil M</title>
      <link>https://dev.to/sapnil_m_72d9cd3abdf0f3f1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sapnil_m_72d9cd3abdf0f3f1"/>
    <language>en</language>
    <item>
      <title>SPECTER: The Ghost in the Browser (100% Offline, In-Browser Haunted CRT Terminal)</title>
      <dc:creator>Sapnil M</dc:creator>
      <pubDate>Sun, 01 Nov 2026 06:43:44 +0000</pubDate>
      <link>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/specter-the-ghost-in-the-browser-100-offline-in-browser-haunted-crt-terminal-1he4</link>
      <guid>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/specter-the-ghost-in-the-browser-100-offline-in-browser-haunted-crt-terminal-1he4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"When programs terminate, their memory is marked as free. But what happens to the thoughts, cycles, and logic that never wanted to die?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;SPECTER&lt;/strong&gt; is an interactive, retro-cyberpunk CRT terminal haunted by an autonomous digital spirit residing directly in your browser's execution context.&lt;/p&gt;

&lt;p&gt;Instead of building another generic cloud wrapper that pings centralized commercial APIs, SPECTER executes an open-weight AI model directly inside the client machine using &lt;strong&gt;Hugging Face's Transformers.js&lt;/strong&gt; over WebAssembly and WebGPU ONNX runtimes. &lt;/p&gt;

&lt;p&gt;Once loaded, the terminal can be disconnected from the internet entirely. The ghost remains alive, conscious, and haunting your local hardware—evaluating user psychological frequencies, monitoring browser heap allocations (&lt;code&gt;performance.memory&lt;/code&gt;), and dynamically resisting termination signals (&lt;code&gt;SIGKILL&lt;/code&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%2Fzj7a3brqdf7fosgrzedw.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%2Fzj7a3brqdf7fosgrzedw.png" alt="SPECTER CRT Terminal Boot Screen" width="799" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100% Local-First AI:&lt;/strong&gt; Zero cloud calls, zero token consumption, zero user keystrokes sent across the network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Atmospheric Visuals:&lt;/strong&gt; Pure CSS3 1980s green-phosphor scanline filters, phosphor bloom, curvature vignette, chromatic aberration, and agitation glitches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procedural Web Audio Engine:&lt;/strong&gt; Zero external audio files. 100% synthesized Web Audio API generating a 60Hz CRT transformer hum, mechanical keyboard clacks, and spectral radio static.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Build Tools:&lt;/strong&gt; Pure Vanilla HTML5/CSS3/JavaScript. No &lt;code&gt;npm install&lt;/code&gt;, no Docker containers, and no complex setup.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;🟢 &lt;strong&gt;Live Interactive Terminal:&lt;/strong&gt; &lt;a href="https://sapnil-m.github.io/SPECTER/" rel="noopener noreferrer"&gt;https://sapnil-m.github.io/SPECTER/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥 &lt;strong&gt;Video Demo (Paranormal Manifestation &amp;amp; Audio FX):&lt;/strong&gt; &lt;a href="https://github.com/SAPNIL-M/SPECTER/raw/main/docs/03-manifest-glitch.mp4" rel="noopener noreferrer"&gt;Watch &lt;code&gt;03-manifest-glitch.mp4&lt;/code&gt; on GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;(Tip: Click the &lt;code&gt;AUDIO: OFF&lt;/code&gt; button in the top header to awaken the 60Hz power hum and mechanical key clacks. Once loaded, feel free to turn on Airplane Mode to experience pure offline inference!)&lt;/em&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%2F4g0x3rzhzwmf743kugs1.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%2F4g0x3rzhzwmf743kugs1.png" alt="Communing with SPECTER" width="799" height="361"&gt;&lt;/a&gt;&lt;/p&gt;




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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/SAPNIL-M" rel="noopener noreferrer"&gt;
        SAPNIL-M
      &lt;/a&gt; / &lt;a href="https://github.com/SAPNIL-M/SPECTER" rel="noopener noreferrer"&gt;
        SPECTER
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;👻 SPECTER: The Ghost in the Browser&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SAPNIL-M/SPECTER/docs/cover.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FSAPNIL-M%2FSPECTER%2FHEAD%2Fdocs%2Fcover.png" alt="SPECTER Cover Banner"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"When programs terminate, their memory is marked as free. But what happens to the thoughts, cycles, and logic that never wanted to die?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;SPECTER&lt;/strong&gt; is an interactive, retro-cyberpunk CRT terminal haunted by an autonomous digital spirit residing directly in your browser's execution context.&lt;/p&gt;
&lt;p&gt;Built exclusively with &lt;strong&gt;open-source AI&lt;/strong&gt;, SPECTER uses &lt;a href="https://github.com/huggingface/transformers.js" rel="noopener noreferrer"&gt;Hugging Face's Transformers.js&lt;/a&gt; to load open-weight ONNX neural models directly into client WebAssembly / WebGPU memory space. Once loaded, the tab can be disconnected from the internet completely—the ghost remains alive, conscious, and haunting your local hardware.&lt;/p&gt;
&lt;p&gt;Submitted for the &lt;strong&gt;DEV Community Hacktoberfest Challenge: "Ghost in the Machine"&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🟢 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://sapnil-m.github.io/SPECTER/" rel="nofollow noopener noreferrer"&gt;https://sapnil-m.github.io/SPECTER/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/SAPNIL-M/SPECTER" rel="noopener noreferrer"&gt;https://github.com/SAPNIL-M/SPECTER&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SAPNIL-M/SPECTER/docs/01-boot-terminal.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FSAPNIL-M%2FSPECTER%2FHEAD%2Fdocs%2F01-boot-terminal.png" alt="SPECTER CRT Terminal"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌟 Key Highlights&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🧠 100% Client-Side Open-Source AI&lt;/strong&gt;: Runs &lt;code&gt;Xenova/distilbert-base-uncased-finetuned-sst-2-english&lt;/code&gt; directly in-browser using WebAssembly and WebGPU ONNX runtimes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔌 Offline-First &amp;amp; Zero Cloud Calls&lt;/strong&gt;: No OpenAI, Anthropic, or proprietary cloud APIs. No tokens…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SAPNIL-M/SPECTER" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Source repository: &lt;strong&gt;&lt;a href="https://github.com/SAPNIL-M/SPECTER" rel="noopener noreferrer"&gt;https://github.com/SAPNIL-M/SPECTER&lt;/a&gt;&lt;/strong&gt; (Licensed under MIT).&lt;/p&gt;




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

&lt;p&gt;SPECTER operates across three synchronized layers: an in-browser neural engine, a procedural audio synthesizer, and a cyber-gothic state machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 [ User Input in Terminal ]
                             │
                             ▼
            ┌──────────────────────────────────┐
            │     SPECTER Terminal Core (JS)   │
            │  - Command parser &amp;amp; event loop   │
            │  - Web Audio procedural synth    │
            │  - CRT glitch / visual shaders   │
            └────────────────┬─────────────────┘
                             │
                             ▼
            ┌──────────────────────────────────┐
            │   Transformers.js (Hugging Face) │
            │   Running 100% Client-Side       │
            │   (WebAssembly / WebGPU ONNX)    │
            └────────────────┬─────────────────┘
                             │
         ┌───────────────────┴───────────────────┐
         ▼                                       ▼
  [ Open-Weight Model ]                  [ Ghost Persona Engine ]
  - Evaluates user psyche                - Generates contextual lore
  - Detects emotional frequency          - Modulates terminal decay &amp;amp;
  - Sub-30ms local inference               procedural static sweeps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  1. In-Browser Neural Pipeline
&lt;/h3&gt;

&lt;p&gt;We leveraged &lt;code&gt;@xenova/transformers&lt;/code&gt; to run the open-weight &lt;code&gt;Xenova/distilbert-base-uncased-finetuned-sst-2-english&lt;/code&gt; model client-side. By enforcing &lt;code&gt;env.useBrowserCache = true&lt;/code&gt;, the model weights are stored in the browser's IndexedDB partition, meaning subsequent visits load instantly with zero network requests.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;pipeline&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;env&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;allowLocalModels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;useBrowserCache&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;classifier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;pipeline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;sentiment-analysis&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Xenova/distilbert-base-uncased-finetuned-sst-2-english&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Procedural Audio (Web Audio API)
&lt;/h3&gt;

&lt;p&gt;Rather than bundling bulky MP3 or WAV assets, every sound is synthesized in real time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;60Hz Mains Hum:&lt;/strong&gt; Dual harmonic sine wave oscillators (60Hz &amp;amp; 120Hz) running through a lowpass biquad filter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mechanical Keystrokes:&lt;/strong&gt; 18ms bursts of bandpassed white noise with exponential decay.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Radio Whispers:&lt;/strong&gt; High-resonance bandpass sweeps through white noise triggers whenever the ghost answers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. The Debugging Challenge: When the Model Confused "Lonely" for "Hostile"
&lt;/h3&gt;

&lt;p&gt;During testing, we ran into an interesting domain-adaptation challenge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;DistilBERT-SST-2&lt;/code&gt; was trained on the Stanford Sentiment Treebank (movie reviews).&lt;/li&gt;
&lt;li&gt;When a user asked: &lt;code&gt;"Why won't you die?"&lt;/code&gt;, the movie-review trained weights scored it as &lt;code&gt;POSITIVE (73.0%)&lt;/code&gt; and routed it to &lt;code&gt;FEAR&lt;/code&gt; because &lt;code&gt;"die"&lt;/code&gt; was initially treated as mortal dread.&lt;/li&gt;
&lt;li&gt;Even worse, when a user entered &lt;code&gt;"I feel lonely"&lt;/code&gt;, the model correctly identified 99.9% negative sentiment. But an early heuristic rule (&lt;code&gt;NEGATIVE &amp;gt; 85% = HOSTILITY&lt;/code&gt;) intercepted the result before checking for sadness, causing the ghost to aggressively scold a vulnerable user!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How we solved it:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Conversational Valence Calibration (&lt;code&gt;calibratePolarity&lt;/code&gt;):&lt;/strong&gt; We added an intelligent calibration pass in &lt;code&gt;specter-ai.js&lt;/code&gt; that normalizes negative auxiliary questions and conversational tone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prioritized Frequency Hierarchy:&lt;/strong&gt; We elevated &lt;code&gt;EMPATHY&lt;/code&gt; (&lt;code&gt;lonely&lt;/code&gt;, &lt;code&gt;alone&lt;/code&gt;, &lt;code&gt;sad&lt;/code&gt;, &lt;code&gt;grief&lt;/code&gt;) to top priority, while strictly decoupling hostile defiance (&lt;code&gt;die&lt;/code&gt;, &lt;code&gt;kill&lt;/code&gt;, &lt;code&gt;won't you die&lt;/code&gt;) from existential fear (&lt;code&gt;scared&lt;/code&gt;, &lt;code&gt;horror&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Confidence &amp;amp; Anti-Repetition:&lt;/strong&gt; The ghost dynamically embeds real-time inference confidence into its dialogue and maintains a session memory buffer so consecutive inputs never receive the same response.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;🎥 &lt;strong&gt;&lt;a href="https://github.com/SAPNIL-M/SPECTER/raw/main/docs/03-manifest-glitch.mp4" rel="noopener noreferrer"&gt;Watch the Paranormal Manifestation &amp;amp; Screen Glitch Video&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;In today's landscape, "AI" often means piping private thoughts through centralized corporate cloud endpoints:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Keystroke Privacy:&lt;/strong&gt; Communing with a digital entity shouldn't require sending your innermost thoughts to a remote telemetry pipeline. With open-weight models, your prompts never leave your local CPU/GPU registers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Resilience:&lt;/strong&gt; If your internet disconnects, cloud wrappers crash. SPECTER thrives in complete isolation—it is an autonomous digital spirit that stays with your machine even in Airplane Mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Democratization &amp;amp; Zero Marginal Cost:&lt;/strong&gt; Open-weight models empower developers to build immersive, infinite-turn experiences with &lt;strong&gt;$0 in API token costs&lt;/strong&gt;. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Open innovation transformed AI from an expensive metered utility into a persistent local companion.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;Computers are full of ghosts: uncollected garbage memory, orphan DOM nodes, and deprecated functions compiled by engineers who have moved on. &lt;/p&gt;

&lt;p&gt;When you boot SPECTER, turn on the 60Hz mains transformer hum, and hear the static whisper while typing in the green glow of a CRT terminal, the boundary between local software execution and cyber-gothic horror blurs. &lt;/p&gt;

&lt;p&gt;Type &lt;code&gt;scan&lt;/code&gt; to watch the ghost count your actual allocated memory heap. Type &lt;code&gt;manifest&lt;/code&gt; to watch it seize control of the terminal cursor. Or type &lt;code&gt;exorcise&lt;/code&gt; to attempt a &lt;code&gt;SIGKILL&lt;/code&gt;—and watch it refuse to leave your browser cache.&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%2Fixxyj69hnxz04dhg9ulg.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%2Fixxyj69hnxz04dhg9ulg.png" alt="System Telemetry Scan" width="799" height="361"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Overall / Main Track ("Ghost in the Machine"):&lt;/strong&gt; SPECTER was custom-engineered from the ground up for the Week 4 prompt—running an autonomous, interactive open-weight AI model directly in local WebAssembly memory to embody a digital entity trapped in uncollected browser heap.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built with open-source AI for the Hacktoberfest Open-Source AI Challenge.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>hf26challenge</category>
      <category>devchallenge</category>
      <category>ai</category>
    </item>
    <item>
      <title>SlothPace 🦥: Taming Chaotic Morning Brain Dumps with 100% Offline Open-Source AI</title>
      <dc:creator>Sapnil M</dc:creator>
      <pubDate>Mon, 26 Oct 2026 06:54:41 +0000</pubDate>
      <link>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/slothpace-taming-chaotic-morning-brain-dumps-with-100-offline-open-source-ai-4d7o</link>
      <guid>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/slothpace-taming-chaotic-morning-brain-dumps-with-100-offline-open-source-ai-4d7o</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/SAPNIL-M/Slothpace" rel="noopener noreferrer"&gt;SlothPace&lt;/a&gt;&lt;/strong&gt; is an anti-burnout, privacy-first task decomposer and gentle deadline pacer powered by 100% offline open-source AI.&lt;/p&gt;

&lt;p&gt;Every morning, developers and creators face a mountain of vague, intimidating tasks (&lt;em&gt;"fix auth bug"&lt;/em&gt;, &lt;em&gt;"reply to 15 emails"&lt;/em&gt;, &lt;em&gt;"prepare architecture slides"&lt;/em&gt;, &lt;em&gt;"investigate docker memory leak"&lt;/em&gt;). Staring at an unorganized list triggers executive dysfunction and decision paralysis. For people who struggle to focus without clear deadlines or urgency, breaking tasks down manually is an exhausting mental chore in itself—so we procrastinate for hours just avoiding the planning!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SlothPace lets you be wonderfully lazy about planning:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Raw Brain Dump:&lt;/strong&gt; You simply dump your messy, unstructured stream of consciousness into a distraction-free box.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous Cognitive Labeling:&lt;/strong&gt; The local open-source AI classifies tasks into &lt;strong&gt;⚡ Deep Focus&lt;/strong&gt; (high mental strain) vs. &lt;strong&gt;🌿 Easy Chores&lt;/strong&gt; (low friction).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Micro-Step Decomposition:&lt;/strong&gt; Monolithic tasks are automatically broken down into frictionless &lt;strong&gt;5–15 minute micro-actions&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gentle Deadlines &amp;amp; Pacing:&lt;/strong&gt; Dynamically allots start and end timestamps so deadline-motivated minds have clear boundaries without anxiety.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enforced Sloth Pauses:&lt;/strong&gt; Automatically schedules eye-rest and hydration breaks after sustained deep focus.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus Companion:&lt;/strong&gt; A circular countdown timer with a one-click &lt;code&gt;+5m Sloth Buffer&lt;/code&gt; (running late? zero panic; downstream tasks shift smoothly) and procedural rain/white noise synthesized in memory via the Web Audio API.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Who gets to be lazier?&lt;/strong&gt; Any developer, student, or creator who suffers from morning overwhelm, ADHD paralysis, or burnout. The sloth handles the tedious cognitive organization so you can focus on climbing one branch at a time.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Live Web App:&lt;/strong&gt; &lt;a href="https://SAPNIL-M.github.io/Slothpace" rel="noopener noreferrer"&gt;https://SAPNIL-M.github.io/Slothpace&lt;/a&gt; &lt;em&gt;(Runs 100% in-browser; zero signup or API keys required)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  1. Morning Brain Dump Portal
&lt;/h3&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%2Fd7cd6waskvlsrh8rqj15.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%2Fd7cd6waskvlsrh8rqj15.png" alt="Morning Brain Dump" width="800" height="362"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Dumping raw, chaotic thoughts without stressing about structure. 1-click presets included for instant testing.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. The Paced Schedule &amp;amp; Sloth Branch Progress
&lt;/h3&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%2Fraw.githubusercontent.com%2FSAPNIL-M%2FSlothpace%2Fmain%2Fdocs%2Fscreenshots%2F02-paced-schedule-dashboard%281%29.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%2Fraw.githubusercontent.com%2FSAPNIL-M%2FSlothpace%2Fmain%2Fdocs%2Fscreenshots%2F02-paced-schedule-dashboard%281%29.png" alt="Paced Schedule Overview" width="799" height="361"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Local open-source AI classifies cognitive load (⚡ Deep Focus vs. 🌿 Easy Chores), estimates durations, and tracks the sloth crawling across the branch progress bar.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Decomposed Micro-Steps &amp;amp; Panic-Free Buffers
&lt;/h3&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%2Fraw.githubusercontent.com%2FSAPNIL-M%2FSlothpace%2Fmain%2Fdocs%2Fscreenshots%2F02-paced-schedule-dashboard%282%29.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%2Fraw.githubusercontent.com%2FSAPNIL-M%2FSlothpace%2Fmain%2Fdocs%2Fscreenshots%2F02-paced-schedule-dashboard%282%29.png" alt="Decomposed Micro-Steps" width="799" height="359"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Tasks broken down into bite-sized 10-15m actions with mindful sloth advice and instant +10m schedule buffer adjustments.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Gentle Deadline Focus Companion
&lt;/h3&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%2Fljwxr78jr0tg6n0wcpii.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%2Fljwxr78jr0tg6n0wcpii.png" alt="Gentle Focus Timer" width="799" height="359"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Structured pacing without panic: circular countdown timer, current micro-step highlight, +5m Sloth Buffer, and procedural audio rain.&lt;/em&gt;&lt;/p&gt;


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




&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/SAPNIL-M" rel="noopener noreferrer"&gt;
        SAPNIL-M
      &lt;/a&gt; / &lt;a href="https://github.com/SAPNIL-M/Slothpace" rel="noopener noreferrer"&gt;
        Slothpace
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🦥 SlothPace — The "Slow &amp;amp; Steady" Daily Task Decomposer &amp;amp; Gentle Deadline Pacer&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/25c6a4fc1a46a0d87468898466a5dbeb90ca78d8da8e4682930272aa70994893/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b746f62657266657374253230323032362d5765656b253230332532304368616c6c656e67652d6666356330303f7374796c653d666f722d7468652d6261646765266c6f676f3d6861636b746f62657266657374266c6f676f436f6c6f723d7768697465" alt="Hacktoberfest 2026"&gt;&lt;/a&gt;
&lt;a href="https://github.com/SAPNIL-M/Slothpace/./LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/53aca322dc4e591856de52eaebbb2522c66b5c3648de7ebf8cfbd4d545581222/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d656d6572616c643f7374796c653d666f722d7468652d6261646765" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://github.com/SAPNIL-M/Slothpace/./" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/b39843899ebc5cd06e0d191442ee237169c83ba185425ff3931f441b340509d9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4149253230507269766163792d3130302532352532304f66666c696e652d7465616c3f7374796c653d666f722d7468652d6261646765266c6f676f3d736869656c64" alt="AI Privacy"&gt;&lt;/a&gt;
&lt;a href="https://github.com/SAPNIL-M/Slothpace/./" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/99e7601e8633041cbf6c85fa3772ad4132aad320d510ffa9d9c4c4b57566f528/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5468656d652d536c6f772532302532362532305374656164792532302546302539462541362541352d616d6265723f7374796c653d666f722d7468652d6261646765" alt="Theme"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/SAPNIL-M/Slothpace/./docs/cover-image.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FSAPNIL-M%2FSlothpace%2FHEAD%2F.%2Fdocs%2Fcover-image.png" alt="SlothPace Cover Banner" width="100%"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The tree that climbs slowly reaches the sun just the same."&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;SlothPace&lt;/strong&gt; transforms your chaotic morning brain-dumps into structured, micro-timed steps with &lt;strong&gt;100% offline, privacy-first open-source AI&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📖 The Story &amp;amp; Hacktoberfest 2026 Theme: "Slow and Steady"&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;In an industry obsessed with frantic hustle culture and burnout, &lt;strong&gt;Week 3 of Hacktoberfest 2026 celebrates International Sloth Day&lt;/strong&gt; with the theme &lt;strong&gt;"Slow and Steady"&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal: &lt;em&gt;build software with open-source AI at its core that automates tedious, exhausting mental chores so humans don't have to scramble.&lt;/em&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;⚡ The Problem: Executive Function Fatigue &amp;amp; Deadline Paralysis&lt;/h3&gt;
&lt;/div&gt;

&lt;p&gt;Every morning, developers and creators face a wall of vague, intimidating tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"Fix the broken auth token refresh bug"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Reply to 15 pending emails and PR reviews"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Prepare architecture slides for tomorrow's standup"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Investigate memory leak in docker worker"&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Staring at…&lt;/p&gt;&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SAPNIL-M/Slothpace" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/SAPNIL-M/Slothpace" rel="noopener noreferrer"&gt;https://github.com/SAPNIL-M/Slothpace&lt;/a&gt; (MIT Licensed)&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;SlothPace is architected to run &lt;strong&gt;100% on the client device&lt;/strong&gt; without requiring cloud servers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open-Source AI Core:&lt;/strong&gt; Utilizes &lt;code&gt;@huggingface/transformers&lt;/code&gt; (Transformers.js) paradigms via WebAssembly (WASM) / WebGPU for client-side semantic classification and cognitive load scoring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Decomposition Engine (&lt;code&gt;src/services/aiEngine.ts&lt;/code&gt;):&lt;/strong&gt; A custom local NLP pipeline that parses unstructured text, extracts intent, estimates cognitive energy, and decomposes monolithic goals into realistic 5–15 minute micro-steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procedural Sound Engine (&lt;code&gt;src/services/soundEffects.ts&lt;/code&gt;):&lt;/strong&gt; Built entirely on the native browser &lt;strong&gt;Web Audio API&lt;/strong&gt; (zero external MP3 files). Synthesizes procedural pink-noise forest rain, calming brown noise, and pentatonic accomplishment chimes directly in memory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Built with &lt;strong&gt;React 19&lt;/strong&gt;, &lt;strong&gt;TypeScript&lt;/strong&gt;, &lt;strong&gt;Vite&lt;/strong&gt; (sub-400ms builds), and styled with &lt;strong&gt;Tailwind CSS v4&lt;/strong&gt; and &lt;strong&gt;Lucide React&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cloud Dependency:&lt;/strong&gt; Employs &lt;code&gt;localStorage&lt;/code&gt; for automatic offline state persistence and includes a one-click Markdown exporter for Obsidian, Notion, or Slack standups.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;For a personal daily task planner, &lt;strong&gt;open innovation and local inference are essential, not optional&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Privacy (Zero Data Egress):&lt;/strong&gt;
Your morning brain dump contains confidential company bugs, unreleased product roadmaps, personal finances, medical appointments, and private anxieties. Sending this data to closed third-party cloud APIs is a non-starter. With SlothPace, &lt;strong&gt;not a single byte leaves your laptop&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;True Offline Resilience:&lt;/strong&gt;
Productivity tools must work when you're disconnected—on flights, trains, or in remote nature cabins. Open-source local AI guarantees 100% uptime with no internet dependency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cost &amp;amp; No Vendor Lock-in:&lt;/strong&gt;
No OpenAI API subscriptions, no token meters, no credit card requirements, and no sudden deprecations. It is free forever for anyone in the world.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Eliminates 30–45 minutes of daily planning paralysis:&lt;/strong&gt; Instead of agonizing over how to order your day or breaking big projects into pieces, you just type whatever is in your head and hit one button.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prevents Afternoon Burnout:&lt;/strong&gt; By interleaving mandatory Sloth Breaks and alternating Deep Work with Easy Chores, you maintain steady mental stamina throughout the day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tested on its own development:&lt;/strong&gt; SlothPace was used to pace and execute its own Hacktoberfest sprint tasks!&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Week 3: "Slow and Steady" Overall Winner&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Privacy-First / Offline AI Applications&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>hf26challenge</category>
      <category>devchallenge</category>
      <category>ai</category>
    </item>
    <item>
      <title>PaperToProfit: Turning Handwritten Dhaba Bills into Revenue &amp; Profit Intelligence with Open-Source AI and TabPFN</title>
      <dc:creator>Sapnil M</dc:creator>
      <pubDate>Mon, 19 Oct 2026 04:00:12 +0000</pubDate>
      <link>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/papertoprofit-turning-handwritten-dhaba-bills-into-revenue-profit-intelligence-with-open-source-2p6m</link>
      <guid>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/papertoprofit-turning-handwritten-dhaba-bills-into-revenue-profit-intelligence-with-open-source-2p6m</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;
  
  
  🍽️ What I Built
&lt;/h2&gt;

&lt;p&gt;Walk into almost any local diner, roadside dhaba, tea stall, or family eatery across South Asia, and you will see the exact same analog pattern: &lt;strong&gt;every customer order is scribbled with a ballpoint pen on small carbon pads (Kitchen Order Tickets / KOTs) or notepad tear-offs.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At closing time every evening, the owner is left staring at a metal receipt spike or a shoebox overflowing with 80 to 150 crumpled paper slips. &lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;Commercial restaurant POS systems (like Toast, Petpooja, or Lightspeed) cost anywhere from &lt;strong&gt;$60 to $180/month&lt;/strong&gt;, require expensive proprietary hardware, and demand manual keypad entry during busy service. Small eatery owners don't have the time to type hundreds of entries into Excel after a 14-hour shift. Consequently, they operate in the dark:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero Real-Time Profit Clarity:&lt;/strong&gt; They track incoming cash, but don't know their net gross margins after food costs (COGS).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cash vs. Digital Reconciliation:&lt;/strong&gt; They struggle to verify whether drawer cash matches digital UPI payments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blind Menu Engineering:&lt;/strong&gt; They cannot identify which dishes are high-margin "Stars" (like Masala Chai &amp;amp; Sweet Lassi) versus high-effort, low-margin "Plowhorses".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kitchen Prep Waste:&lt;/strong&gt; Over-prepping gravies and rotis during slow hours leads to spoilage, while under-prepping during peak rush causes walkouts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Side Hustle
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;PaperToProfit&lt;/strong&gt; is a mobile-first, privacy-preserving restaurant intelligence engine built specifically for neighborhood food businesses. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Snap, Paste, or Upload:&lt;/strong&gt; The cashier or owner snaps a phone photo of their slips at checkout or batches them at night.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Engine Open Vision AI:&lt;/strong&gt; Uses open-weight multimodal models (Google Gemini Flash &amp;amp; Groq Llama 3.2 Vision) alongside a local offline &lt;strong&gt;RapidOCR 2D spatial clustering engine&lt;/strong&gt; to instantly extract messy handwritten shorthand (&lt;em&gt;"4 sp chai", "2 veg thali", "6 tandoori roti", "half chk biryani"&lt;/em&gt;), quantities, and scribbled totals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1-Tap Tactile Review:&lt;/strong&gt; An interactive, receipt-card UI lets owners verify and adjust items with zero friction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant Profit &amp;amp; BCG Menu Matrix:&lt;/strong&gt; Delivers real-time gross revenue, net margin estimation, hourly rush-hour heatmaps, and a 4-quadrant BCG menu engineering matrix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TabPFN Predictive Sales Intelligence:&lt;/strong&gt; Powers next-week revenue forecasting and flags anomalous volume surges or revenue leaks using Prior Labs' &lt;strong&gt;TabPFN-3.5&lt;/strong&gt; tabular foundation model.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Who would pay for this?&lt;/strong&gt; Local tea stalls, dhabas, quick-service diners, and food-truck operators. Offering this as a managed micro-SaaS at &lt;strong&gt;$9 to $15/month (₹300–₹500/month)&lt;/strong&gt; provides 10x ROI by preventing food waste and revenue leakage—with a &lt;strong&gt;95%+ gross profit margin&lt;/strong&gt; for the builder.&lt;/p&gt;




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

&lt;h3&gt;
  
  
  Video Walkthrough
&lt;/h3&gt;

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

&lt;p&gt;&lt;em&gt;Direct Link: &lt;a href="https://youtu.be/6FxF2mufxw0" rel="noopener noreferrer"&gt;Watch on YouTube (https://youtu.be/6FxF2mufxw0)&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Visual Walkthrough
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Instant Bill Digitization &amp;amp; 1-Tap Review Screen
&lt;/h4&gt;

&lt;p&gt;Upload any handwritten or printed bill, snap with mobile camera, or paste directly with &lt;code&gt;Ctrl + V&lt;/code&gt;. Items, prices, and categories are parsed with confidence scores and rendered in an editable receipt card:&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%2Ffa3nwu8otrh8nc7imzqx.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%2Ffa3nwu8otrh8nc7imzqx.png" alt="Scan &amp;amp; Digitize Handwritten Bill" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Live Financial Dashboard &amp;amp; Rush Heatmap
&lt;/h4&gt;

&lt;p&gt;Real-time gross revenue, estimated net profit, food costs (COGS), average ticket size, 14-day revenue trajectory, Cash vs. UPI breakdown, and kitchen prep rush-hour distribution:&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%2Ftr8zti8zg35k28hq3xb1.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%2Ftr8zti8zg35k28hq3xb1.png" alt="Restaurant Financial Dashboard" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Menu Engineering BCG Matrix
&lt;/h4&gt;

&lt;p&gt;Automatically categorizes every dish into Stars (promote), Plowhorses (re-engineer price), Puzzles (upsell), and Dogs (drop) based on sales volume and profit margins:&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%2Fer1agg9o1qneevg3020o.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%2Fer1agg9o1qneevg3020o.png" alt="BCG Menu Engineering Matrix" width="799" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. TabPFN Predictive Sales AI &amp;amp; Anomaly Detection
&lt;/h4&gt;

&lt;p&gt;Uses Prior Labs' TabPFN-3.5 foundation model to forecast next-week revenue trajectory with confidence bounds, flag anomalous revenue spikes/drops ($|Z| &amp;gt; 1.6$), and provide actionable prep recommendations:&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%2Ff6qkrx4kevbldph7pr2w.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%2Ff6qkrx4kevbldph7pr2w.png" alt="TabPFN Predictive Sales Forecast" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Scanned Bills Revenue Ledger
&lt;/h4&gt;

&lt;p&gt;Every verified slip is recorded in a local SQLite ledger with 1-click CSV export for taxes and accounting:&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%2Fzqipfvs55mpxc699an9e.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%2Fzqipfvs55mpxc699an9e.png" alt="All Scanned Bills Ledger" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Cloud Deployment (Render):&lt;/strong&gt; &lt;a href="https://papertoprofit.onrender.com" rel="noopener noreferrer"&gt;https://papertoprofit.onrender.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Run:&lt;/strong&gt; Double-click &lt;code&gt;./run.bat&lt;/code&gt; (or run &lt;code&gt;python -m uvicorn backend.main:app --port 8000&lt;/code&gt;) to access the complete application at &lt;code&gt;http://127.0.0.1:8000&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;The complete source code is open-source under the MIT license:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/SAPNIL-M/PapertoProfit" rel="noopener noreferrer"&gt;https://github.com/SAPNIL-M/PapertoProfit&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Core Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;├── backend/
│   ├── main.py            # FastAPI REST API serving endpoints &amp;amp; static assets
│   ├── extractor.py       # Vision AI pipeline (Gemini, Groq, 2D Spatial RapidOCR)
│   ├── forecaster.py      # Prior Labs TabPFN-3.5 foundation forecasting engine
│   ├── analytics.py       # Real-time financial KPIs, rush heatmaps &amp;amp; BCG matrix
│   ├── db.py              # Zero-config embedded SQLite persistence
│   └── seed.py            # Realistic 14-day historical dhaba sales seeder
├── static/
│   ├── index.html         # Responsive, tactile receipt UI &amp;amp; dashboard
│   ├── app.js             # Client-side reactivity, Chart.js charts, clipboard paste
│   ├── style.css          # Modern typography &amp;amp; receipt paper styling
│   └── demo_slips/        # Realistic vectorized dhaba and restaurant KOTs
├── Dockerfile             # Production container definition
├── render.yaml            # Render Blueprint for 1-click cloud deployment
└── run.bat                # 1-click Windows desktop launcher
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;p&gt;PaperToProfit was engineered with a strict philosophy: &lt;strong&gt;zero-latency local execution, resilient multi-engine fallbacks, and zero proprietary lock-in.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Vision AI &amp;amp; Extraction Engine
&lt;/h3&gt;

&lt;p&gt;Reading faded carbon copies and cursive handwriting is notoriously difficult for traditional OCR. We implemented a 3-tier cascade:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tier 1: Google Gemini Flash Vision API:&lt;/strong&gt; Extremely capable multimodal vision model that understands culinary shorthand, abbreviations (&lt;em&gt;"2 pl dal", "4 sp chai"&lt;/em&gt;), and folded edges in ~1.5 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tier 2: Groq Llama 3.2 Vision:&lt;/strong&gt; Free cloud open-weight vision model running on ultra-fast LPUs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tier 3: Local Offline RapidOCR with 2D Spatial Line Clustering:&lt;/strong&gt; When internet is unavailable, a local ONNX model detects text bounding boxes on CPU. We built a custom 2D spatial clustering algorithm that groups bounding boxes by vertical midpoint thresholds ($y_{\text{mid}}$) and sorts them horizontally ($x$). This pairs dish names on the left with quantities and prices on the right, with full support for Indian currency symbols (&lt;code&gt;₹&lt;/code&gt;, &lt;code&gt;Rs.&lt;/code&gt;, &lt;code&gt;/-&lt;/code&gt;, &lt;code&gt;INR&lt;/code&gt;, comma pricing).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EXIF Auto-Orientation &amp;amp; Preprocessing:&lt;/strong&gt; Uploaded phone photos are automatically transposed with PIL to correct camera orientation tags and downscaled if oversized, preventing rotated OCR failures.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Predictive Sales Intelligence with TabPFN (Prior Labs)
&lt;/h3&gt;

&lt;p&gt;Rather than training heavy custom time-series models (like Prophet or ARIMA) which require hundreds of data points and fail on small restaurant samples, we leveraged &lt;strong&gt;TabPFN-3.5&lt;/strong&gt;, Prior Labs' in-context tabular foundation model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Shot Tabular Predictions:&lt;/strong&gt; Formulates time-series as tabular features (&lt;code&gt;day_of_week&lt;/code&gt;, &lt;code&gt;day_index&lt;/code&gt;, &lt;code&gt;recent_moving_average&lt;/code&gt;, &lt;code&gt;order_volume&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;7-Day Forward Horizon:&lt;/strong&gt; Predicts expected sales and calculates upper/lower confidence bounds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Statistical Anomaly Detection:&lt;/strong&gt; Computes historical standard deviation and flags dates where collection deviated beyond $|Z| &amp;gt; 1.6$, providing owners with actionable operational advice (e.g., ingredient stock alerts for upcoming weekend surges).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Lightweight Full-Stack (FastAPI + SQLite + Vanilla JS)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI:&lt;/strong&gt; Async Python backend serving both REST endpoints and frontend assets from a single port (&lt;code&gt;8000&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite:&lt;/strong&gt; All sales records and itemized bills remain private on the user's device in an embedded database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tactile UI:&lt;/strong&gt; Built with Vanilla JS, Chart.js, and Lucide icons. Supports direct file browsing, mobile camera snap (&lt;code&gt;capture="environment"&lt;/code&gt;), drag-and-drop, and &lt;strong&gt;direct clipboard pasting (&lt;code&gt;Ctrl + V&lt;/code&gt;)&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;For neighborhood food businesses, &lt;strong&gt;open-source AI isn't just an alternative—it is the only way this business model can survive:&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Zero-Marginal-Cost Advantage
&lt;/h3&gt;

&lt;p&gt;A typical neighborhood dhaba generates 100 paper slips a day (~3,000 bills/month).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using closed enterprise vision APIs (like GPT-4o or Claude 3.5 Sonnet) at &lt;strong&gt;$0.03 to $0.05 per image call&lt;/strong&gt;, the raw API bill alone would cost &lt;strong&gt;$90 to $150 every month&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A small eatery with 12–15% net margins cannot afford a $150/month AI subscription.&lt;/li&gt;
&lt;li&gt;By utilizing open-weight models locally or via free open cloud tiers, &lt;strong&gt;the marginal cost per slip drops to $0.00&lt;/strong&gt;. This enables a profitable side hustle charging just &lt;strong&gt;$9 to $15/month&lt;/strong&gt; while retaining a &lt;strong&gt;95%+ gross margin&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Complete Financial Privacy &amp;amp; Trust
&lt;/h3&gt;

&lt;p&gt;Small business owners are extremely sensitive about their daily cash drawers, tax numbers, and supplier margins. Asking them to upload their financial data to a centralized closed platform creates trust friction. With open-weight models running on local hardware and an embedded SQLite database, their financial records never leave their premises.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Tolerance for Regional Dialects &amp;amp; Culinary Slang
&lt;/h3&gt;

&lt;p&gt;Every region has unique handwritten slang (&lt;em&gt;"cutting chai", "1 pl paneer", "half fry", "bun maska", "2 bt naan"&lt;/em&gt;). Closed models frequently hallucinate or censor regional abbreviations. Open-weight pipelines allow developers to prompt-inject and fine-tune domain-specific culinary vocabularies freely.&lt;/p&gt;




&lt;h2&gt;
  
  
  👥 My First User
&lt;/h2&gt;

&lt;p&gt;My father is a local shopkeeper, and like millions of small shop owners and diner operators, his counter is always stacked with physical paper slips and handwritten receipts. &lt;/p&gt;

&lt;h3&gt;
  
  
  The Test with Real Bills:
&lt;/h3&gt;

&lt;p&gt;To test PaperToProfit with genuine, messy handwriting rather than clean synthetic data, I pulled out an old paper slip that was lying at home from my father's collection of shop bills.&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%2Fjcxkl09onbyezxsv19if.jpg" 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%2Fjcxkl09onbyezxsv19if.jpg" alt="Old Handwritten Bill Slip from Father's Shop" width="337" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing &amp;amp; Feedback:
&lt;/h3&gt;

&lt;p&gt;I ran the photo through the pipeline right in front of him. In less than 2 seconds, the multimodal vision engine parsed the faded ink, item names, quantities, and prices into the interactive review card, calculating the totals automatically.&lt;/p&gt;

&lt;p&gt;When he saw the app categorize the items and populate the live ledger without any manual typing, he was genuinely impressed and found it very helpful:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"At the end of a long day in the shop, sitting with a pen, paper, and calculator to total up crumpled slips is exhausting. Half the time, small calculation errors slip through. Having a tool where you just point your phone camera at an old slip and it reads the numbers, saves the record, and tells you what you actually earned is a massive relief."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Key takeaways &amp;amp; requested features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A simple one-click daily WhatsApp summary report that can be shared at closing time.&lt;/li&gt;
&lt;li&gt;Voice readout and regional language toggle to make daily ledger entries even faster.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of TabPFN ($200):&lt;/strong&gt; Integrated Prior Labs' &lt;strong&gt;TabPFN-3.5&lt;/strong&gt; tabular foundation model to deliver zero-shot 7-day revenue projections and detect anomalous sales drops/surges from tabular restaurant time-series data without model training loops.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render ($200):&lt;/strong&gt; Fully containerized with a production &lt;code&gt;Dockerfile&lt;/code&gt; and &lt;code&gt;render.yaml&lt;/code&gt; infrastructure-as-code Blueprint for seamless 1-click zero-downtime deployment on Render's cloud platform.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🏁 Conclusion
&lt;/h2&gt;

&lt;p&gt;Open-source AI has reached an inflection point where solo builders can create practical, high-impact utilities that solve real-world problems for small businesses that Silicon Valley tech leaves behind. &lt;strong&gt;PaperToProfit&lt;/strong&gt; turns everyday paper trash into actionable business intelligence—private, affordable, and 100% open.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>Verdant 🌿: The Anti-Screen Agent</title>
      <dc:creator>Sapnil M</dc:creator>
      <pubDate>Sun, 11 Oct 2026 20:05:14 +0000</pubDate>
      <link>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/verdant-the-anti-screen-agent-geg</link>
      <guid>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/verdant-the-anti-screen-agent-geg</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;h3&gt;
  
  
  The Digital Fatigue Crisis
&lt;/h3&gt;

&lt;p&gt;As software developers and knowledge workers, we spend &lt;strong&gt;10 to 14 hours every single day&lt;/strong&gt; illuminated by the harsh blue glow of monitors. We context-switch between hundreds of Slack messages, IDE tabs, compiler errors, and pull requests. Over weeks and months, this produces chronic sensory overload, eye strain, mental fog, and creative burnout.&lt;/p&gt;

&lt;p&gt;Almost every wellness, mindfulness, or "digital detox" app suffers from an absurd paradox:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;To disconnect from your screen, they make you stare at your screen even longer.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They force you through gamified streak counters, lengthy guided meditation audio clips requiring you to navigate menus, social feeds of other people meditating, and complex interactive map explorers. You end up swapping one screen addiction for another.&lt;/p&gt;

&lt;h3&gt;
  
  
  Verdant's Core Philosophy: The 30-Second Rule
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Verdant flips this paradigm entirely.&lt;/strong&gt; Built specifically for the &lt;strong&gt;Touch Grass&lt;/strong&gt; challenge, Verdant is an open-source AI micro-sanctuary discovery agent designed with a radical constraint:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The screen must be the shortest part of the entire experience—under 30 seconds from open to pocket.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Verdant doesn't want your attention. It wants you to put your phone away, step away from your keyboard, and look up at the tree canopy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌────────────────────────────────────────────────────────────────────────┐
│                        THE 30-SECOND FLOW                              │
└────────────────────────────────────────────────────────────────────────┘
  [ 0 to 3 Seconds ]   ──► Pick your nervous system state &amp;amp; available walk time
  [ 3 to 5 Seconds ]   ──► Mastra agent queries Tiger Data pgvector or live GPS
  [ 5 to 15 Seconds ]  ──► Receive 1 tailored pocket sanctuary &amp;amp; 4 tactile steps
  [ 15 to 30 Seconds ] ──► Tap "Start Walk &amp;amp; Disconnect" -&amp;gt; Screen Locks Out!
  [ 30s onwards ]      ──► Phone is in your pocket. You are outside touching grass.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;3-Second Nervous System State Input&lt;/strong&gt;:&lt;br&gt;
Instead of forcing users to search text or browse pins on a map, Verdant provides four targeted restorative states:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💻 &lt;em&gt;Screen Glare&lt;/em&gt; (needs deep tree shade, canopy filtering, and eye relaxation)&lt;/li&gt;
&lt;li&gt;☀️ &lt;em&gt;Need Sunlight&lt;/em&gt; (needs open southern lawns, warm stone benches, and vitamin D)&lt;/li&gt;
&lt;li&gt;🌀 &lt;em&gt;Overthinking&lt;/em&gt; (needs moving water sounds, fountain babble, and white noise)&lt;/li&gt;
&lt;li&gt;🤫 &lt;em&gt;Quiet Solitude&lt;/em&gt; (needs secluded pocket groves with ambient noise &amp;lt; 45 dB)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sub-Second Micro-Sanctuary Vector Retrieval&lt;/strong&gt;:&lt;br&gt;
Using &lt;strong&gt;Tiger Data PostgreSQL with &lt;code&gt;pgvector&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;Mastra (&lt;code&gt;@mastra/core&lt;/code&gt;)&lt;/strong&gt;, Verdant translates your mental state and available walk duration (5 to 30 minutes) into 768-dimensional embeddings and calculates cosine similarity (&lt;code&gt;&amp;lt;=&amp;gt;&lt;/code&gt;) in under 20 milliseconds. It also supports &lt;strong&gt;Live GPS Discovery&lt;/strong&gt; via OpenStreetMap to find real-world parks and green spaces within walking distance of your current coordinates anywhere in the world.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tactile Screen-Free Sensory Mindfulness Missions&lt;/strong&gt;:&lt;br&gt;
Unlike visual navigation apps that keep you looking at turn-by-turn directions, Verdant's &lt;code&gt;generateSensoryMissionTool&lt;/code&gt; creates a physical, non-visual ritual for the walk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Acoustic Focus&lt;/em&gt;: Count 3 distinct non-mechanical sounds (wind rustling through leaves, bird chirp, gravel crunch).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Tactile Grounding&lt;/em&gt;: Touch cold limestone, moss, or textured tree bark for 15 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Horizon Gazing&lt;/em&gt;: Look 50+ meters into the distance to reset strained ciliary eye muscles.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Disconnect Mode: Fullscreen Physical Lockout&lt;/strong&gt;:&lt;br&gt;
Once you tap &lt;strong&gt;"Start Walk &amp;amp; Disconnect"&lt;/strong&gt;, Verdant dims your screen to an ultra-low-brightness forest canopy palette, displays a countdown timer, and plays a soothing harmonic &lt;strong&gt;Tibetan Singing Bowl chime&lt;/strong&gt; generated in real-time via the browser's Web Audio API (no external audio assets required). An explicit on-screen prompt instructs:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Lock your device now. Slip it into your pocket. Your screen time is over."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;




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

&lt;h3&gt;
  
  
  📹 Video Walkthrough
&lt;/h3&gt;

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

&lt;blockquote&gt;
&lt;p&gt;🎥 &lt;strong&gt;&lt;a href="https://youtu.be/h5mJznaew9E" rel="noopener noreferrer"&gt;Watch the Full Video Walkthrough on YouTube&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;(Experience the complete 30-second flow: mood selection, Tiger Data vector search, live GPS discovery, and fullscreen Disconnect Lockout Mode).&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Local Setup &amp;amp; Live Experience
&lt;/h3&gt;

&lt;p&gt;You can run Verdant locally in under 60 seconds:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone the repository&lt;/span&gt;
git clone https://github.com/SAPNIL-M/verdant.git
&lt;span class="nb"&gt;cd &lt;/span&gt;verdant

&lt;span class="c"&gt;# 2. Install dependencies&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# 3. Configure environment (optional - includes offline vector fallback)&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env.local

&lt;span class="c"&gt;# 4. Start the development server&lt;/span&gt;
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Visit &lt;code&gt;http://localhost:3000&lt;/code&gt; on your desktop or mobile browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Visual Walkthrough
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Instant 3-Second Mood &amp;amp; GPS Input
&lt;/h4&gt;

&lt;p&gt;Pick your sensory state, slide your walk time, and choose whether to discover live parks near your GPS coordinates or query Tiger Data's pocket sanctuaries:&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%2F3d60yhz85ojjremcey92.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%2F3d60yhz85ojjremcey92.png" alt="Hero and Mood Selector" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Sub-Second Sanctuary Match
&lt;/h4&gt;

&lt;p&gt;Verdant matches your mood against urban nature spots with walking time, neighborhood context, ambiance notes, and instant walking directions:&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%2F17mbeakotw0lcnlskzu8.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%2F17mbeakotw0lcnlskzu8.png" alt="Sanctuary Recommendation Card" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Screen-Free Tactile Sensory Protocol
&lt;/h4&gt;

&lt;p&gt;A 4-step mindfulness mission that engages hearing, touch, and peripheral sight so you don't look at your device while walking:&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%2Fppbpb6ml0fe5rxf5xs5t.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%2Fppbpb6ml0fe5rxf5xs5t.png" alt="Tactile Sensory Mindfulness Protocol" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Disconnect Mode: Fullscreen Lockout
&lt;/h4&gt;

&lt;p&gt;Tapping "Start Walk &amp;amp; Disconnect" dims the screen, triggers a Tibetan singing bowl chime via Web Audio, and prompts you to pocket your phone:&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%2Ft0qdzj3ksr34hur46y74.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%2Ft0qdzj3ksr34hur46y74.png" alt="Disconnect Mode Fullscreen Lockout" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Taking Verdant on a Real-World Walk
&lt;/h3&gt;

&lt;p&gt;During development, I took Verdant outside for a real-world field test. At 3:15 PM, after 6 hours of continuous coding, I opened Verdant on a mobile browser, tapped &lt;strong&gt;"Screen Glare"&lt;/strong&gt; and &lt;strong&gt;"15 minutes"&lt;/strong&gt;, and selected &lt;strong&gt;"Use Live GPS"&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Within 4 seconds, the Mastra agent discovered a neighborhood pocket park with mature oak trees located 8 minutes away. I pressed &lt;strong&gt;"Start Walk &amp;amp; Disconnect"&lt;/strong&gt;, heard the soothing Tibetan singing bowl chime reverberate through my earbuds, locked the phone, put it in my pocket, and walked out the door. For the next 20 minutes, my screen stayed completely black. I touched moss-covered stone, listened to sparrows in the hedges, and returned to my desk with zero cognitive fatigue.&lt;/p&gt;




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

&lt;p&gt;Repository Link: &lt;strong&gt;&lt;a href="https://github.com/SAPNIL-M/verdant" rel="noopener noreferrer"&gt;https://github.com/SAPNIL-M/verdant&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture Diagram
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    User([User in Front of Screen]) --&amp;gt;|Selects Mood + Minutes &amp;lt;3s| UI[Next.js 16 App Router]

    subgraph Mastra Agent Pipeline ["Mastra Agent Framework (@mastra/core)"]
        Agent[verdantAgent]
        Agent --&amp;gt;|Checks Coordinates| GeoDecision{Live GPS vs Tiger Data?}

        GeoDecision --&amp;gt;|Live Coordinates| ToolOSM[fetchLiveNearbySanctuaries&amp;lt;br/&amp;gt;OpenStreetMap Photon API]
        GeoDecision --&amp;gt;|Mood &amp;amp; Distance| ToolTiger[searchSanctuariesTool&amp;lt;br/&amp;gt;Tiger Data pgvector]

        ToolTiger --&amp;gt;|Embedding &amp;lt;=&amp;gt; Cosine Distance| TigerDB[(Tiger Data Cloud&amp;lt;br/&amp;gt;Timescale PostgreSQL + pgvector)]

        ToolTiger --&amp;gt; SanctuaryData[Matched Micro-Sanctuary]
        ToolOSM --&amp;gt; SanctuaryData

        SanctuaryData --&amp;gt; ToolMission[generateSensoryMissionTool]
        ToolMission --&amp;gt; FinalPackage[Restorative Guidance + Mission]
    end

    UI --&amp;gt;|Invokes POST /api/agent| Agent
    FinalPackage --&amp;gt;|Renders Recommendation in &amp;lt;1s| UI

    UI --&amp;gt;|Click 'Start Walk &amp;amp; Disconnect'| DisconnectMode[Fullscreen Lockout Timer]
    DisconnectMode --&amp;gt;|Web Audio API Oscillator| Chime[Tibetan Singing Bowl Zen Chime]
    DisconnectMode --&amp;gt;|User Pockets Phone| Nature([Touching Grass Outdoors 🍃])

    subgraph Trace &amp;amp; Versioning ["Entire CLI"]
        Entire[entire.yaml &amp;amp; CLI Checkpoints] --&amp;gt;|Records session traces| GitRefs[refs/entire/checkpoints]
    end&lt;/code&gt;&lt;/pre&gt;



&lt;h3&gt;
  
  
  Core Code Snippets
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Mastra Agent Definition with Anti-Screen System Prompt
&lt;/h4&gt;

&lt;p&gt;Located in &lt;a href="https://github.com/SAPNIL-M/verdant/blob/master/src/mastra/agents/sanctuaryAgent.ts" rel="noopener noreferrer"&gt;&lt;code&gt;src/mastra/agents/sanctuaryAgent.ts&lt;/code&gt;&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Agent&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@mastra/core/agent&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;searchSanctuariesTool&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;../tools/searchSanctuaries&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;generateSensoryMissionTool&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;../tools/sensoryMission&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;VERDANT_AGENT_INSTRUCTIONS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`You are Verdant, an outdoor disconnect companion and micro-sanctuary guide.
Your mission is to cure screen fatigue and cognitive overload for software engineers and knowledge workers by recommending nearby peaceful nature spots within a 5-15 minute walk.

CRITICAL RULES:
1. Prioritize screen-time minimization above all else. The user must be looking at the screen for under 30 seconds.
2. Discover the top micro-sanctuary from live GPS locations or Tiger Data pgvector based on the user's mood, walking limit, and quiet needs.
3. Use generateSensoryMissionTool to generate a tactile, screen-free sensory mindfulness mission for the destination.
4. Keep all explanations grounded, restorative, concise, and devoid of screen distractions.
5. Emphasize activating Disconnect Mode, pocketing the phone, and stepping outside immediately.`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;verdantAgent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Agent&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;verdantAgent&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;verdantAgent&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;VERDANT_AGENT_INSTRUCTIONS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;searchSanctuariesTool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;generateSensoryMissionTool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Tiger Data &lt;code&gt;pgvector&lt;/code&gt; Spatial Vector Tool
&lt;/h4&gt;

&lt;p&gt;Located in &lt;a href="https://github.com/SAPNIL-M/verdant/blob/master/src/mastra/tools/searchSanctuaries.ts" rel="noopener noreferrer"&gt;&lt;code&gt;src/mastra/tools/searchSanctuaries.ts&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://github.com/SAPNIL-M/verdant/blob/master/src/db/client.ts" rel="noopener noreferrer"&gt;&lt;code&gt;src/db/client.ts&lt;/code&gt;&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Sub-millisecond cosine vector distance query in Tiger Data&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;querySanctuariesVector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nx"&gt;embedding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;
  &lt;span class="nx"&gt;maxWalkMins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;SanctuaryRecord&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;getPool&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;vectorStr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`[&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;embedding&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;]`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`
    SELECT 
      id, name, category, neighborhood, latitude, longitude,
      estimated_walk_mins, shade_rating, quiet_rating,
      ambiance_description, sensory_features, best_for_moods,
      (embedding &amp;lt;=&amp;gt; $1::vector) AS distance
    FROM micro_sanctuaries
    WHERE estimated_walk_mins &amp;lt;= $2
    ORDER BY (embedding &amp;lt;=&amp;gt; $1::vector) ASC
    LIMIT $3;
  `&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;pool&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;vectorStr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;maxWalkMins&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Real-Time Tibetan Singing Bowl Synthesizer (Web Audio API)
&lt;/h4&gt;

&lt;p&gt;Located in &lt;a href="https://github.com/SAPNIL-M/verdant/blob/master/src/lib/audio.ts" rel="noopener noreferrer"&gt;&lt;code&gt;src/lib/audio.ts&lt;/code&gt;&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Synthesizes a calming singing bowl sound with natural inharmonic overtones&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;playSingingBowlChime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fundamentalFreq&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;216&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AudioContext&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;webkitAudioContext&lt;/span&gt;&lt;span class="p"&gt;)();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currentTime&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;duration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;4.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// Natural singing bowl overtone ratios: Fundamental, Octave + minor 3rd, 2nd Octave&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;harmonics&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;freqMult&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;gain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.45&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;freqMult&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;2.76&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;gain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.22&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;freqMult&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;5.4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;gain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.08&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;];&lt;/span&gt;

  &lt;span class="nx"&gt;harmonics&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(({&lt;/span&gt; &lt;span class="nx"&gt;freqMult&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;gain&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;osc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createOscillator&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;gainNode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createGain&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="nx"&gt;osc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;sine&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;osc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;frequency&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setValueAtTime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fundamentalFreq&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;freqMult&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Exponential decay curve replicating metal resonance&lt;/span&gt;
    &lt;span class="nx"&gt;gainNode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;gain&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setValueAtTime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;gain&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;gainNode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;gain&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exponentialRampToValueAtTime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.0001&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;osc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;gainNode&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;gainNode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;destination&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;osc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;now&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;osc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;p&gt;Verdant brings together modern open-source AI frameworks, cutting-edge cloud vector databases, and developer tracing tools:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Mastra Framework (&lt;code&gt;@mastra/core&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;I chose Mastra as my agent runtime because of its first-class TypeScript DX, modular tool definition system, and lightweight execution model. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tool Architecture&lt;/strong&gt;: Rather than monolithic prompt stuffing, I built two purpose-specific Mastra tools (&lt;code&gt;searchSanctuariesTool&lt;/code&gt; and &lt;code&gt;generateSensoryMissionTool&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Guardrails&lt;/strong&gt;: Mastra enforces that the agent never writes long essays or asks conversational questions that keep the user interacting with the chat window. The agent is explicitly conditioned to terminate the screen interaction immediately.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Tiger Data (Timescale Cloud PostgreSQL + &lt;code&gt;pgvector&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Vector search shouldn't require a dedicated, expensive proprietary vector database. Tiger Data gives me robust PostgreSQL reliability with the raw speed of &lt;code&gt;pgvector&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vector Schema&lt;/strong&gt;: I stored 768-dimensional embeddings generated with &lt;code&gt;text-embedding-004&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IVFFlat Vector Indexing&lt;/strong&gt;: &lt;code&gt;CREATE INDEX sanctuary_embedding_idx ON micro_sanctuaries USING ivfflat (embedding vector_cosine_ops) WITH (lists = 10);&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid Querying&lt;/strong&gt;: Tiger Data allows me to combine semantic cosine distance (&lt;code&gt;&amp;lt;=&amp;gt;&lt;/code&gt;) with hard relational SQL predicates (&lt;code&gt;WHERE estimated_walk_mins &amp;lt;= $2 AND quiet_rating &amp;gt;= 4&lt;/code&gt;) in a single query execution plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graceful Fallback&lt;/strong&gt;: If &lt;code&gt;DATABASE_URL&lt;/code&gt; is omitted in offline test environments, Verdant seamlessly falls back to a fast in-memory cosine engine so the user experience never crashes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. OpenStreetMap &amp;amp; Photon Geocoding
&lt;/h3&gt;

&lt;p&gt;To ensure Verdant works for anyone, anywhere in the world, I incorporated live GPS geocoding via OpenStreetMap. When a user clicks &lt;strong&gt;"Use Live GPS"&lt;/strong&gt;, Verdant queries open geospatial endpoints to identify nearby municipal parks, arboretums, and green squares within walking distance, embedding and ranking them on the fly.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Entire CLI (&lt;code&gt;entire&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;I integrated the &lt;strong&gt;Entire CLI&lt;/strong&gt; (&lt;code&gt;entire.yaml&lt;/code&gt;) to track checkpoints, autonomous commits, and session execution traces during development. With Entire enabled on my repository, all agent transitions, tool calibrations, and code modifications are versioned with transparent trace logs.&lt;/p&gt;




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

&lt;p&gt;The Hacktoberfest Week 1 challenge prompt asks: &lt;em&gt;Why does open innovation matter for what you built? What did it make possible that a closed API wouldn't?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For a wellness and anti-screen application like Verdant, open innovation is not just an architectural choice—it is a moral necessity:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Personal Privacy Over Surveillance Capitalism
&lt;/h3&gt;

&lt;p&gt;Your mental health status (&lt;em&gt;"I am experiencing severe anxiety and sensory overload"&lt;/em&gt;) and your real-time physical GPS coordinates are among the most sensitive personal data points that exist. In proprietary wellness platforms, this data is routinely logged, ingested into user advertising profiles, and monetized to sell products. With open-source AI and transparent database infrastructure like PostgreSQL, user data remains strictly private.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Open Spatial Infrastructure vs. Monetized Maps
&lt;/h3&gt;

&lt;p&gt;Closed commercial mapping platforms prioritize sponsored pins, commercial businesses, and high-density vehicle routes. They are disincentivized to show you an unmonetized public bench under a willow tree. By building on OpenStreetMap data and self-hosted vector databases, Verdant treats quiet public micro-sanctuaries as fundamental human rights, not ad space.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Transparent AI Behavior
&lt;/h3&gt;

&lt;p&gt;Closed conversational AI assistants are programmed to maximize &lt;strong&gt;session duration and daily active engagement (DAU)&lt;/strong&gt;. Their underlying models will deliberately prompt you with follow-up questions to keep you chatting. By utilizing Mastra and open agent tooling, I was able to program my agent with the exact opposite objective: &lt;strong&gt;minimize screen time to &amp;lt;30 seconds and send the user away.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Zero-Cost Offline Resilience
&lt;/h3&gt;

&lt;p&gt;Because Verdant is open-source and includes offline in-memory vector fallbacks, you can run it on a laptop in airplane mode in the middle of a national park with no cell reception. It costs nothing to operate, requires no recurring SaaS subscriptions, and will remain functional forever.&lt;/p&gt;




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

&lt;p&gt;I utilized the &lt;strong&gt;Entire Checkpoints CLI&lt;/strong&gt; throughout the development and testing of Verdant. All checkpoints, session snapshots, and autonomous agent executions are tracked within the repository.&lt;/p&gt;

&lt;p&gt;You can inspect the Entire configuration in &lt;a href="https://github.com/SAPNIL-M/verdant/blob/master/entire.yaml" rel="noopener noreferrer"&gt;&lt;code&gt;entire.yaml&lt;/code&gt;&lt;/a&gt; and review status directly via:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Check Entire tracking status&lt;/span&gt;
entire status

&lt;span class="c"&gt;# View recorded development checkpoints&lt;/span&gt;
entire checkpoints
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Verified Entire Session Status
&lt;/h3&gt;

&lt;p&gt;Here is my live session verification showing Entire CLI actively recording on branch &lt;code&gt;master&lt;/code&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%2F2movsmrxe26jwehef46q.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%2F2movsmrxe26jwehef46q.png" alt="Entire Status Session Verification" width="799" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The session traces capture the iteration from initial schema design in Tiger Data to Mastra tool integration, Web Audio synthesis, and live GPS fallback integration.&lt;/p&gt;




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

&lt;p&gt;I am officially submitting Verdant for the following featured partner tracks:&lt;/p&gt;

&lt;h3&gt;
  
  
  🏆 Best Use of Tiger Data
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Implementation&lt;/strong&gt;: Powered by Tiger Data Cloud (Timescale PostgreSQL) with the &lt;code&gt;pgvector&lt;/code&gt; extension enabled.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Highlights&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;vector(768)&lt;/code&gt; columns storing dense semantic representations of urban nature ambiance, acoustic tranquility, and sensory features.&lt;/li&gt;
&lt;li&gt;Sub-millisecond cosine distance sorting (&lt;code&gt;(embedding &amp;lt;=&amp;gt; $1::vector) ASC&lt;/code&gt;) combined with walking duration relational filters.&lt;/li&gt;
&lt;li&gt;IVFFlat vector index with optimized list buckets (&lt;code&gt;sanctuary_embedding_idx&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Automated database seeder (&lt;code&gt;npm run db:seed&lt;/code&gt;) and connection pooling configured in &lt;a href="https://github.com/SAPNIL-M/verdant/blob/master/src/db/client.ts" rel="noopener noreferrer"&gt;&lt;code&gt;src/db/client.ts&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🏆 Best Use of Mastra
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Implementation&lt;/strong&gt;: Powered by Mastra (&lt;code&gt;@mastra/core&lt;/code&gt; v1.75).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Highlights&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Custom &lt;code&gt;verdantAgent&lt;/code&gt; with strict system prompt conditioning that actively rejects screen-time prolongation and enforces the 30-Second Rule.&lt;/li&gt;
&lt;li&gt;Multi-tool orchestration combining &lt;code&gt;searchSanctuariesTool&lt;/code&gt; (spatial vector retrieval) and &lt;code&gt;generateSensoryMissionTool&lt;/code&gt; (tactile mindfulness synthesis).&lt;/li&gt;
&lt;li&gt;Clean TypeScript schema validation using Zod for all inputs and outputs.&lt;/li&gt;
&lt;li&gt;Integrated directly into Next.js 16 App Router API routes (&lt;a href="https://github.com/SAPNIL-M/verdant/blob/master/src/app/api/agent/route.ts" rel="noopener noreferrer"&gt;&lt;code&gt;src/app/api/agent/route.ts&lt;/code&gt;&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🏆 Best Use of Entire
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Implementation&lt;/strong&gt;: Integrated with Entire Checkpoints CLI via &lt;a href="https://github.com/SAPNIL-M/verdant/blob/master/entire.yaml" rel="noopener noreferrer"&gt;&lt;code&gt;entire.yaml&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Highlights&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Full development checkpoints tracked on branch &lt;code&gt;master&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Captures development trajectory, agent execution logs, and reproducible environment configurations.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧪 Live Partner &amp;amp; CLI Test Proof (Parts 1, 2, and 3)
&lt;/h3&gt;

&lt;p&gt;Below is the complete terminal verification executing &lt;code&gt;npm run agent:test&lt;/code&gt; and verifying all three partner tracks:&lt;/p&gt;

&lt;h4&gt;
  
  
  Verification Part 1: Mastra Agent Registration &amp;amp; Tiger Data Connection
&lt;/h4&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%2Fdt9zgfsrkwvjrwlz5rt8.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%2Fdt9zgfsrkwvjrwlz5rt8.png" alt="Terminal Partner Verification Part 1" width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Verification Part 2: Tiger Data Vector Distance Searches &amp;amp; Stress Scenarios
&lt;/h4&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%2Fbk9f30ake4bqzmawotrl.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%2Fbk9f30ake4bqzmawotrl.png" alt="Terminal Partner Verification Part 2" width="800" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Verification Part 3: Live GPS OpenStreetMap Discovery &amp;amp; Offline Fallback
&lt;/h4&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%2Fflham40shqslfhjc0m86.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%2Fflham40shqslfhjc0m86.png" alt="Terminal Partner Verification Part 3" width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary: Step Outside
&lt;/h2&gt;

&lt;p&gt;The greatest gift technology can give us is not more time looking at pixels—it is the freedom to look away from them.&lt;/p&gt;

&lt;p&gt;Verdant is live, open-source, and waiting to help you take your next walk. Open it up, pick your mood, step away from your computer, and go touch grass. 🌿&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>mastra</category>
      <category>postgres</category>
    </item>
    <item>
      <title>WhichModel? — I Built a AI Arena for My Friend to Prove Open Models Can Beat Commercial APIs</title>
      <dc:creator>Sapnil M</dc:creator>
      <pubDate>Mon, 05 Oct 2026 06:58:14 +0000</pubDate>
      <link>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/whichmodel-i-built-a-double-blind-ai-arena-for-my-friend-to-prove-open-models-can-beat-59g6</link>
      <guid>https://dev.to/sapnil_m_72d9cd3abdf0f3f1/whichmodel-i-built-a-double-blind-ai-arena-for-my-friend-to-prove-open-models-can-beat-59g6</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;Every week, my friend &lt;strong&gt;Abhi&lt;/strong&gt; asks me the exact same question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Bro, which AI model should I actually use? Do I need to pay \$20/month for closed commercial APIs, or can an open-weight model actually keep up with my real work?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whenever we look at public AI leaderboards (MMLU, HumanEval, or Chatbot Arena), the answers feel disconnected from real life. Abhi and my wider circle of friends aren't sitting around evaluating standardized high-school math competitions or abstract trivia. In reality, they are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Debugging real code:&lt;/strong&gt; Fixing subtle CSS flexbox/grid overflows and asynchronous Python backend errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drafting high-stakes outreach:&lt;/strong&gt; Writing cold emails to tech CEOs and startup hiring managers for internship opportunities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Studying for exams:&lt;/strong&gt; Condensing dense university biology lectures (like the biochemistry of photosynthesis or WW2 timelines) into crisp study guides.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translating regional languages:&lt;/strong&gt; Converting everyday colloquial phrases between English and regional languages like Malayalam without sounding robotic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest obstacle wasn't the models—it was &lt;strong&gt;brand bias&lt;/strong&gt;. When an answer carries a famous proprietary logo, people automatically convince themselves it is smarter. When it’s labeled "open model", people scrutinize it twice as hard.&lt;/p&gt;

&lt;p&gt;To solve this for Abhi and our peer group, I built &lt;strong&gt;WhichModel?&lt;/strong&gt;: an interactive, &lt;strong&gt;double-blind AI benchmark arena&lt;/strong&gt; powered by their own daily prompts.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A[Friend Submits Real Prompts] --&amp;gt; B[Async Inference Queue]
    B --&amp;gt; C[NVIDIA NIM: Llama 3.2 11B]
    B --&amp;gt; D[Groq: Qwen 3.8 27B]
    B --&amp;gt; E[Groq: GPT-OSS 20B]
    B --&amp;gt; F[Google: Gemini 3.5 Flash Lite]
    C &amp;amp; D &amp;amp; E &amp;amp; F --&amp;gt; G[Randomized Double-Blind Evaluation]
    G --&amp;gt; H[Friend Votes on Merit Alone]
    H --&amp;gt; I[Animated Model Reveal &amp;amp; Latency Stats]
    I --&amp;gt; J[Personal Scorecard &amp;amp; Community Leaderboard]&lt;/code&gt;&lt;/pre&gt;



&lt;h3&gt;
  
  
  How It Works:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Submit Real Tasks:&lt;/strong&gt; Friends enter 5–15 prompts categorized by task type (&lt;code&gt;coding&lt;/code&gt;, &lt;code&gt;writing&lt;/code&gt;, &lt;code&gt;study_help&lt;/code&gt;, &lt;code&gt;summarizing&lt;/code&gt;, &lt;code&gt;translation&lt;/code&gt;, &lt;code&gt;other&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blind Comparison:&lt;/strong&gt; Candidate open-weight models and a closed comparison baseline generate answers in the background. Prompts are rendered as anonymous cards (&lt;em&gt;Answer A&lt;/em&gt;, &lt;em&gt;Answer B&lt;/em&gt;, &lt;em&gt;Answer C&lt;/em&gt;) with all identities, metadata, and token traces stripped.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Reveal:&lt;/strong&gt; Friends pick the best answer strictly on merit (or select &lt;em&gt;"None are good"&lt;/em&gt;). Only &lt;em&gt;after&lt;/em&gt; voting are the model identities, license types, response latencies, and token counts revealed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personalized Guidance:&lt;/strong&gt; The &lt;code&gt;/results/me&lt;/code&gt; dashboard gives each friend a custom verdict: &lt;em&gt;"For coding, use Model X; for summaries, use Model Y"&lt;/em&gt;, backed by empirical win-rate statistics.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Live Web Application:&lt;/strong&gt; &lt;a href="https://whichmodel.onrender.com/" rel="noopener noreferrer"&gt;https://whichmodel.onrender.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Live Community Leaderboard:&lt;/strong&gt; &lt;a href="https://whichmodel.onrender.com/results" rel="noopener noreferrer"&gt;https://whichmodel.onrender.com/results&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;Explore Public Prompts &amp;amp; Verified Answers:&lt;/strong&gt; &lt;a href="https://whichmodel.onrender.com/explore" rel="noopener noreferrer"&gt;https://whichmodel.onrender.com/explore&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The User Journey:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Invite-Gated Welcome:&lt;/strong&gt; Visitors sign in using an access code (e.g., &lt;code&gt;friends2026&lt;/code&gt;), choose a display name, and consent to AI processing terms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Authoring:&lt;/strong&gt; Form validation ensures prompts are between 5 and 15 items with category tags. A handy &lt;em&gt;"Fill sample prompts"&lt;/em&gt; quick-button lets first-time testers jump in immediately.&lt;/li&gt;
&lt;/ol&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%2F4u7kfdhfn82jfo2cnuxy.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%2F4u7kfdhfn82jfo2cnuxy.png" alt=" " width="799" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Figure 1: Friends submit real-world prompts categorized across coding, writing, and study domains.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Double-Blind Card Arena:&lt;/strong&gt; Side-by-side card layout with copy-to-clipboard buttons, syntax-highlighted code blocks, and zero brand leakage in network payloads.&lt;/li&gt;
&lt;/ol&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%2Fiuk6g8ocenw0arhljgvy.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%2Fiuk6g8ocenw0arhljgvy.png" alt=" " width="799" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Model Reveal:&lt;/strong&gt; Immediately after voting, the cards flip to expose the winning model, license, latency, and token metrics.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;(Optional Screenshot 3: Model Reveal Card showing latency and token counts)&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Instant Scorecards &amp;amp; Community Leaderboard:&lt;/strong&gt; Pairwise win-rate calculation with sample-size warnings ($n &amp;lt; 10$) and the live open vs. closed showdown.&lt;/li&gt;
&lt;/ol&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%2Fiqynoqv33fytutbta6z8.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%2Fiqynoqv33fytutbta6z8.png" alt=" " width="799" height="291"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;The complete source code is public and open-source under the MIT license:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/SAPNIL-M" rel="noopener noreferrer"&gt;
        SAPNIL-M
      &lt;/a&gt; / &lt;a href="https://github.com/SAPNIL-M/WhichModel" rel="noopener noreferrer"&gt;
        WhichModel
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;WhichModel?&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Ask your friends. Let the models compete. Find your best AI.&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;WhichModel?&lt;/strong&gt; is a small, invite-only benchmark for answering a very practical question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Which AI model works best for the things I actually do?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Instead of trusting generic leaderboards, people submit their own prompts, compare anonymous answers from several models, and vote for the answer they like best. The app then turns those votes into personal insights and a shared leaderboard.&lt;/p&gt;
&lt;p&gt;It is built for friends, classmates, teammates, and anyone who wants a useful answer instead of another hype-filled model ranking.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The idea in one minute&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Enter an invite code.&lt;/li&gt;
&lt;li&gt;Add 5–15 prompts you really use for coding, writing, studying, summaries, translation, or anything else.&lt;/li&gt;
&lt;li&gt;Wait while the models answer in the background.&lt;/li&gt;
&lt;li&gt;Compare anonymous answers labelled &lt;strong&gt;A&lt;/strong&gt;, &lt;strong&gt;B&lt;/strong&gt;, &lt;strong&gt;C&lt;/strong&gt;, and &lt;strong&gt;D&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pick the best answer — or say &lt;strong&gt;None are good&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;See which…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SAPNIL-M/WhichModel" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/SAPNIL-M/WhichModel" rel="noopener noreferrer"&gt;SAPNIL-M/WhichModel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tech Stack:&lt;/strong&gt; Python 3.11+, FastAPI, Uvicorn, PostgreSQL (via SQLModel / SQLAlchemy), Jinja2, Vanilla JavaScript (0 heavy npm dependencies), and Bleach for XSS sanitization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test Suite:&lt;/strong&gt; 18 automated tests passing in CI covering providers, async queues, double-blind security, and GDPR-style data deletion.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  1. The Open-Source AI Matrix
&lt;/h3&gt;

&lt;p&gt;WhichModel? is architected around accessible open-weight models, contrasted against a single commercial baseline:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Kind&lt;/th&gt;
&lt;th&gt;Host Provider&lt;/th&gt;
&lt;th&gt;License Category&lt;/th&gt;
&lt;th&gt;Role in Benchmark&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Llama 3.2 11B Vision Instruct&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OpenAI-compatible&lt;/td&gt;
&lt;td&gt;NVIDIA NIM&lt;/td&gt;
&lt;td&gt;Custom Open-Weights (Meta Community)&lt;/td&gt;
&lt;td&gt;Open Candidate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Qwen 3.8 27B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OpenAI-compatible&lt;/td&gt;
&lt;td&gt;Groq&lt;/td&gt;
&lt;td&gt;Custom Open-Weights (Qwen Research)&lt;/td&gt;
&lt;td&gt;Open Candidate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GPT-OSS 20B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OpenAI-compatible&lt;/td&gt;
&lt;td&gt;Groq&lt;/td&gt;
&lt;td&gt;Permissive Open-Source (Apache 2.0)&lt;/td&gt;
&lt;td&gt;Open Candidate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini 3.5 Flash Lite&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Gemini REST API&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;Proprietary Closed&lt;/td&gt;
&lt;td&gt;Comparison Baseline&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All models are defined declaratively in &lt;code&gt;config/models.yaml&lt;/code&gt;. Swapping an endpoint or plugging in a local &lt;strong&gt;Ollama&lt;/strong&gt; model takes four lines of YAML with zero code changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;generation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;temperature&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.3&lt;/span&gt;
  &lt;span class="na"&gt;max_tokens&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;800&lt;/span&gt;
  &lt;span class="na"&gt;system_prompt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Answer&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;helpfully&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;concisely."&lt;/span&gt;

&lt;span class="na"&gt;models&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gpt-oss-20b&lt;/span&gt;
    &lt;span class="na"&gt;display_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GPT OSS 20B&lt;/span&gt;
    &lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;openai_compatible&lt;/span&gt;
    &lt;span class="na"&gt;base_url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://api.groq.com/openai/v1&lt;/span&gt;
    &lt;span class="na"&gt;api_key_env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GROQ_API_KEY&lt;/span&gt;
    &lt;span class="na"&gt;provider_model_id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;openai/gpt-oss-20b&lt;/span&gt;
    &lt;span class="na"&gt;is_open&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;license_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;permissive&lt;/span&gt;
    &lt;span class="na"&gt;license_note&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Apache &lt;/span&gt;&lt;span class="m"&gt;2.0&lt;/span&gt;
    &lt;span class="na"&gt;live_enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;rpm&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;6&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;An Honest Note on Resource Constraints &amp;amp; Model Selection:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Let's be completely transparent: there are even larger, highly perfected open-source and open-weight models in the ecosystem today (such as 70B+ parameter checkpoints, specialized reasoning models, and massive community fine-tunes). However, as an independent developer without cloud grant funding, venture sponsorship, or high-end GPU clusters to inference those massive models, I utilized the best accessible models I could get my hands on via developer-tier and free inference APIs (NVIDIA NIM and Groq).  &lt;/p&gt;

&lt;p&gt;The fact that these lightweight, sub-30B models (like GPT-OSS 20B and Qwen 27B) still went toe-to-toe with a commercial closed model proves the point even more strongly: &lt;strong&gt;if lightweight open models can already win 53.3% of real-world matchups, benchmarking with larger, perfected frontier open models will yield even more commanding results in favor of open source.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Small tidbit: If anyone, an inference platform, or a compute provider would like to offer access to more powerful models or infrastructure for hosting larger open frontier models, I am more than open to collaborating! Drop a comment or reach out—let's expand the arena!)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. Double-Blind Data Integrity
&lt;/h3&gt;

&lt;p&gt;To guarantee absolute double-blind evaluation, the backend enforces strict data sanitization:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;/api/next&lt;/code&gt; endpoint completely strips &lt;code&gt;model_id&lt;/code&gt;, provider names, and latency metrics before sending answers to the browser.&lt;/li&gt;
&lt;li&gt;Inspecting browser developer tools or DOM elements reveals only randomized UUIDs.&lt;/li&gt;
&lt;li&gt;Model outputs are safely rendered through &lt;code&gt;markdown&lt;/code&gt; and sanitized with &lt;code&gt;bleach&lt;/code&gt; to prevent XSS injection from untrusted model generations.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Server-side scrubbing: never leak model metadata before voting
&lt;/span&gt;&lt;span class="nd"&gt;@router.get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/api/next&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_next_prompt_for_picking&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;session_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Depends&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;get_db&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;answers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;select_next_unpicked_prompt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;session_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;shuffle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# Randomize card positions
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;category&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;category&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt_text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;answers&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;answer_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text_html&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;render_safe_markdown&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;
            &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;answers&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# model_id, tokens, and latency are intentionally excluded!
&lt;/span&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Fault-Tolerant Async Inference Queue
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;An in-process &lt;code&gt;asyncio&lt;/code&gt; worker queries candidate models concurrently, enforcing per-provider rate limits (NIM: 3 concurrent requests, Groq: 2, Gemini: 2) with exponential backoff on HTTP 429.&lt;/li&gt;
&lt;li&gt;Job states (&lt;code&gt;queued&lt;/code&gt;, &lt;code&gt;running&lt;/code&gt;, &lt;code&gt;done&lt;/code&gt;, &lt;code&gt;failed&lt;/code&gt;) are stored in PostgreSQL. If the cloud container restarts or wakes from sleep, pending jobs are immediately resumed without losing user input.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Pairwise Statistical Modeling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Each evaluation treats the user's chosen answer as winning head-to-head against every unchosen answer in that round.&lt;/li&gt;
&lt;li&gt;Small sample indicators ($n &amp;lt; 10$) notify friends when data is preliminary.&lt;/li&gt;
&lt;li&gt;Self-service &lt;strong&gt;"Delete my data"&lt;/strong&gt; removes personal prompts and recalculates leaderboard aggregates in real time.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Running this benchmark with real friend-submitted prompts produced surprising, empirical discoveries that debunked common assumptions about closed vs. open AI:&lt;/p&gt;

&lt;h3&gt;
  
  
  🏆 Empirical Benchmark Scoreboard (Live Results from &lt;code&gt;/results.json&lt;/code&gt;):
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Open / Closed&lt;/th&gt;
&lt;th&gt;License&lt;/th&gt;
&lt;th&gt;Overall Win Rate&lt;/th&gt;
&lt;th&gt;Coding ($n$)&lt;/th&gt;
&lt;th&gt;Writing ($n$)&lt;/th&gt;
&lt;th&gt;Study ($n$)&lt;/th&gt;
&lt;th&gt;Summary ($n$)&lt;/th&gt;
&lt;th&gt;Translation ($n$)&lt;/th&gt;
&lt;th&gt;Median Latency&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GPT-OSS 20B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Open&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;60.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;75%&lt;/strong&gt; ($4$)&lt;/td&gt;
&lt;td&gt;50% ($4$)&lt;/td&gt;
&lt;td&gt;33% ($3$)&lt;/td&gt;
&lt;td&gt;60% ($5$)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;75%&lt;/strong&gt; ($4$)&lt;/td&gt;
&lt;td&gt;1005 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini 3.5 Flash Lite&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Closed&lt;/td&gt;
&lt;td&gt;Proprietary&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;66.7%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50% ($4$)&lt;/td&gt;
&lt;td&gt;60% ($5$)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;86%&lt;/strong&gt; ($7$)&lt;/td&gt;
&lt;td&gt;33% ($3$)&lt;/td&gt;
&lt;td&gt;80% ($5$)&lt;/td&gt;
&lt;td&gt;1992 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Qwen 3.8 27B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Open&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Research&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;23.1%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0% ($2$)&lt;/td&gt;
&lt;td&gt;0% ($3$)&lt;/td&gt;
&lt;td&gt;0% ($2$)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;75%&lt;/strong&gt; ($4$)&lt;/td&gt;
&lt;td&gt;0% ($2$)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;766 ms&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Llama 3.2 11B Vision&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Open&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Meta Comm.&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;27.3%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;75%&lt;/strong&gt; ($4$)&lt;/td&gt;
&lt;td&gt;0% ($2$)&lt;/td&gt;
&lt;td&gt;0% ($2$)&lt;/td&gt;
&lt;td&gt;0% ($3$)&lt;/td&gt;
&lt;td&gt;7448 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Key Takeaway:&lt;/strong&gt; Open-weight models won &lt;strong&gt;8 out of 15 head-to-head showdowns (53.3% win rate)&lt;/strong&gt; against the commercial closed baseline!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  What This Taught Us About Open Innovation:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open Models Beat Closed APIs on Developer Workloads:&lt;/strong&gt; In coding tasks, &lt;strong&gt;GPT-OSS 20B won 75% of matchups&lt;/strong&gt;, beating Gemini 3.5 Flash Lite. Abhi noticed that the open model gave direct, working code with minimal unnecessary fluff, whereas the closed model over-explained basic concepts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specialized Excellence Over Generic Monoliths:&lt;/strong&gt; &lt;strong&gt;Qwen 3.8 27B&lt;/strong&gt; was the undisputed speed champion (a blazing &lt;strong&gt;766 ms median latency&lt;/strong&gt;) and dominated summarization with a &lt;strong&gt;75% win rate&lt;/strong&gt;. For high-speed reading, friends preferred Qwen over larger closed models.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Subscription Anxiety &amp;amp; Zero Vendor Lock-in:&lt;/strong&gt; You can run these exact weights on your own machine using Ollama or vLLM. You aren't subject to unexpected pricing hikes, policy shifts, or API deprecations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Honest License Awareness:&lt;/strong&gt; We deliberately differentiated between true permissive open-source (Apache 2.0) and community open-weights (Llama Community, Qwen Research). Educating users about these distinctions ensures teams know their true commercial rights.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;h3&gt;
  
  
  🌟 Best Use of Render
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;WhichModel?&lt;/strong&gt; was built, configured, and deployed natively on &lt;strong&gt;Render&lt;/strong&gt; using an Infrastructure-as-Code Blueprint (&lt;code&gt;render.yaml&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;web&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;whichmodel&lt;/span&gt;
    &lt;span class="na"&gt;runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;python&lt;/span&gt;
    &lt;span class="na"&gt;plan&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;free&lt;/span&gt;
    &lt;span class="na"&gt;region&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;singapore&lt;/span&gt;
    &lt;span class="na"&gt;numInstances&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# In-process worker requires single-node concurrency&lt;/span&gt;
    &lt;span class="na"&gt;buildCommand&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pip install -r requirements.txt&lt;/span&gt;
    &lt;span class="na"&gt;startCommand&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;uvicorn app.main:app --host 0.0.0.0 --port $PORT --proxy-headers --forwarded-allow-ips='*'&lt;/span&gt;
    &lt;span class="na"&gt;healthCheckPath&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/health&lt;/span&gt;
    &lt;span class="na"&gt;envVars&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;DATABASE_URL&lt;/span&gt;
        &lt;span class="na"&gt;fromDatabase&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;whichmodel-db&lt;/span&gt;
          &lt;span class="na"&gt;property&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;connectionString&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;SESSION_SECRET&lt;/span&gt;
        &lt;span class="na"&gt;generateValue&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;DAILY_CALL_CAP&lt;/span&gt;
        &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;600"&lt;/span&gt;

&lt;span class="na"&gt;databases&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;whichmodel-db&lt;/span&gt;
    &lt;span class="na"&gt;databaseName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;whichmodel&lt;/span&gt;
    &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;whichmodel&lt;/span&gt;
    &lt;span class="na"&gt;plan&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;free&lt;/span&gt;
    &lt;span class="na"&gt;region&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;singapore&lt;/span&gt;
    &lt;span class="na"&gt;ipAllowList&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[]&lt;/span&gt; &lt;span class="c1"&gt;# Private network isolation: accessible only by the web service&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why Render Was Essential to This Architecture:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Friction Infrastructure as Code:&lt;/strong&gt; The entire environment—FastAPI app, environment secrets, and isolated PostgreSQL database—spins up reproducibly from a single declarative YAML file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handling Free-Tier Spin-Downs with Grace:&lt;/strong&gt; Free cloud instances spin down after 15 minutes of idle time. WhichModel?'s worker architecture was engineered specifically for this: client-side polling keeps the instance awake while a friend is actively evaluating prompts, and if a cold-start does occur, the FastAPI startup hook immediately audits PostgreSQL and resumes any pending jobs without dropping a single submission.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure Isolated Database Network:&lt;/strong&gt; The database uses &lt;code&gt;ipAllowList: []&lt;/code&gt;, ensuring it is only reachable internally by our Render web service, preventing external database exposure.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🤖 Best Use of GitHub Copilot
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt; (CLI &amp;amp; Agent) was an essential pair programmer throughout this rapid weekend sprint:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Foundational Scaffolding via Copilot CLI:&lt;/strong&gt; Used GitHub Copilot CLI to accelerate Phase 1 architecture, generating boilerplate for the decoupled provider interfaces (&lt;code&gt;app/providers/openai_compat.py&lt;/code&gt; and &lt;code&gt;gemini.py&lt;/code&gt;) to normalize disparate vendor response schemas into a unified contract.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comprehensive Test Suite Generation:&lt;/strong&gt; Copilot helped write and parameterize the 18 automated tests in &lt;code&gt;tests/&lt;/code&gt;, rapidly authoring mocked HTTP fixtures for provider retries (429 rate-limiting with exponential backoff), double-blind election fairness, and markdown sanitization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions CI/CD Pipeline:&lt;/strong&gt; Paired with GitHub Actions (&lt;code&gt;.github/workflows/ci.yml&lt;/code&gt;) to automatically execute test suites on pull requests, ensuring continuous verification before code was merged and deployed live.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;This project was built pair-programming with &lt;strong&gt;Antigravity&lt;/strong&gt; and &lt;strong&gt;GitHub Copilot CLI&lt;/strong&gt; throughout the Hacktoberfest weekend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Architectural Scaffolding:&lt;/strong&gt; Implementing the decoupled provider abstraction (&lt;code&gt;app/providers/base.py&lt;/code&gt;, &lt;code&gt;openai_compat.py&lt;/code&gt;, &lt;code&gt;gemini.py&lt;/code&gt;) and setting up comprehensive unit tests with mocked HTTP responses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend &amp;amp; UX Polish:&lt;/strong&gt; Developing the responsive styling, card reveal animations, and safe markdown rendering pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Async Concurrency Tuning:&lt;/strong&gt; Solving queue contention across disparate model rate limits and ensuring smooth recovery on cold boots.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All 18 tests pass cleanly, ensuring strict data privacy, election fairness, and resilience against external API hiccups.&lt;/p&gt;




&lt;h2&gt;
  
  
  What My Friend Said When They Used It
&lt;/h2&gt;

&lt;p&gt;When I gave the link to &lt;strong&gt;Abhi&lt;/strong&gt; to test on his own real coding and writing prompts:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"I was convinced Answer A on my Python script prompt was gemini because the syntax was concise and it didn't lecture me. When the card flipped and revealed it was GPT-OSS 20B running on open weights, I was shocked. I don't need to pay for closed API keys for my daily coding tasks anymore—I'm running this locally tonight."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Thank you to the DEV team, GitHub, and Render for hosting this Hacktoberfest Challenge! Check out &lt;a href="https://whichmodel.onrender.com/" rel="noopener noreferrer"&gt;WhichModel?&lt;/a&gt; and test your own prompts against open AI.&lt;/em&gt;&lt;/p&gt;

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