<?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: Apurv</title>
    <description>The latest articles on DEV Community by Apurv (@krvnium).</description>
    <link>https://dev.to/krvnium</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%2F4158474%2F8ac9b30c-52f1-4f6d-a8f2-40a6ab2baaa8.jpg</url>
      <title>DEV Community: Apurv</title>
      <link>https://dev.to/krvnium</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/krvnium"/>
    <language>en</language>
    <item>
      <title>CampusBrain v0.1: A Local-First Academic OS Scaffold (React + FastAPI)</title>
      <dc:creator>Apurv</dc:creator>
      <pubDate>Sun, 25 Oct 2026 22:37:22 +0000</pubDate>
      <link>https://dev.to/krvnium/campusbrain-v01-a-local-first-academic-os-scaffold-react-fastapi-4hp</link>
      <guid>https://dev.to/krvnium/campusbrain-v01-a-local-first-academic-os-scaffold-react-fastapi-4hp</guid>
      <description>&lt;p&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;/p&gt;

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

&lt;p&gt;CampusBrain v0.1 is the foundational scaffold for a privacy-first, local academic operating system. It’s designed to unify attendance tracking, syllabus parsing, and assignment deadlines into one brutalist-inspired dashboard.&lt;/p&gt;

&lt;p&gt;Embracing the "Slow and Steady" theme, this v0.1 MVP doesn't rush buggy features. Instead, it focuses entirely on establishing a robust, modular architecture with honest empty states. When Milestone 2 is complete, it will save students from checking five different college portals just to figure out what is due tomorrow, and let them be lazier by automating the dreadful math of "how many more classes can I skip before my attendance drops below 75%?"&lt;/p&gt;

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

&lt;p&gt;Here is the foundational architecture running locally, showcasing the separated component UI:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Executive Dashboard&lt;/strong&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%2Fckav4ykzul8igv5i82ej.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%2Fckav4ykzul8igv5i82ej.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Chat Interface&lt;/strong&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%2F5so81v2nsk6qpkjxxy83.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%2F5so81v2nsk6qpkjxxy83.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auth &amp;amp; Onboarding Flow&lt;/strong&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%2Fwu1lg0rrbh2lhlrttx68.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%2Fwu1lg0rrbh2lhlrttx68.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq34mwzli7a8ecazh5ksw.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%2Fq34mwzli7a8ecazh5ksw.png" alt=" " width="800" height="438"&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/krvnium" rel="noopener noreferrer"&gt;
        krvnium
      &lt;/a&gt; / &lt;a href="https://github.com/krvnium/CampusBrain" rel="noopener noreferrer"&gt;
        CampusBrain
      &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;🎓 CampusBrain v0.1&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A Local-First Academic Operating System (React + FastAPI Scaffold)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Built for the &lt;strong&gt;Hacktoberfest 2026 Week 3 Challenge&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💡 The Vision&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;EdTech platforms frequently silo student data into proprietary ecosystems. CampusBrain is an open-source, local-first academic operating system that gives students total control over their schedules, attendance tracking, and document querying without surrendering their data.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🏗️ What is v0.1?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This repository contains the &lt;strong&gt;Foundational Architecture&lt;/strong&gt; (Milestone 1) of CampusBrain. Before hooking up a database or API, I utilized AI coding agents to strictly separate concerns, establishing a modular React + TypeScript frontend and a validated FastAPI backend shell.&lt;/p&gt;
&lt;p&gt;This scaffold abandons "mock data" entirely. The UI correctly renders responsive, accessible components with &lt;strong&gt;honest empty states&lt;/strong&gt; based on the current date, proving the frontend routing and component architecture are structurally sound and ready for backend integration.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Implemented Features (Milestone 1)&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Modular React + TS Frontend:&lt;/strong&gt; Clean component…&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/krvnium/CampusBrain" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;I used AI coding agents to strictly separate concerns, establishing a modular React + TypeScript frontend (using Vite) and a validated FastAPI backend shell. The UI correctly renders responsive, accessible components without relying on hardcoded "mock" data.&lt;/p&gt;

&lt;p&gt;By building this slow and steady foundation first, the codebase is now perfectly prepped for Milestone 2: porting over the local SQLite schema, PyMuPDF parser, and &lt;strong&gt;Gemma 4&lt;/strong&gt; open-weights AI integration that I successfully built during the Week 2 challenge.&lt;/p&gt;

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

&lt;p&gt;Student data—like attendance, grades, daily schedules, and location—is deeply personal. Open innovation allows us to build "local-first" scaffolds where the student entirely owns their database and inference. By leveraging open-weight models (like Gemma 4) to parse syllabus PDFs locally, students do not have to hand their academic records over to closed-source EdTech giants just to get an automated study schedule or a deadline reminder.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>ScopeShield: A Local-First Freelance Contract Auditor</title>
      <dc:creator>Apurv</dc:creator>
      <pubDate>Sun, 18 Oct 2026 19:39:43 +0000</pubDate>
      <link>https://dev.to/krvnium/scopeshield-a-local-first-freelance-contract-auditor-4j69</link>
      <guid>https://dev.to/krvnium/scopeshield-a-local-first-freelance-contract-auditor-4j69</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;ScopeShield is a local-first Streamlit web app that helps freelancers detect "scope creep" in client requests without uploading sensitive NDAs to closed AI platforms. It uses PyMuPDF to parse local contract PDFs and an open-weights Gemma model to cross-reference client requests against the agreed deliverables. If a client asks for a feature not in the contract, ScopeShield flags it, calculates the extra cost using deterministic Python math, and logs a confirmed change order in a local SQLite database&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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%2Fx45tjcnugbrxug8g6sjz.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%2Fx45tjcnugbrxug8g6sjz.png" alt=" " width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwqd5zjj1ixu0czn7igwc.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%2Fwqd5zjj1ixu0czn7igwc.png" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;All of the codes are here.&lt;br&gt;
&lt;a href="https://github.com/krvnium/ScopeShield" rel="noopener noreferrer"&gt;https://github.com/krvnium/ScopeShield&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I built ScopeShield as a modular, local-first Python Streamlit web application. For document processing, I used &lt;code&gt;PyMuPDF&lt;/code&gt; to extract text from contract PDFs directly on the user's laptop, ensuring the files are never uploaded to a third-party server. For the core auditing logic, I integrated &lt;strong&gt;Gemma 4&lt;/strong&gt; (Google's open-weights model) via the &lt;code&gt;google-genai&lt;/code&gt; SDK. I designed a strict JSON schema prompt that forces the open-weight model to classify the request (In Scope vs. Scope Creep), cite the exact page number, and estimate the additional hours. All financial calculations and confirmed change-orders are handled by deterministic Python logic and saved to a local SQLite database.&lt;/p&gt;

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

&lt;p&gt;Freelance Statements of Work (SOWs) contain highly confidential client data, proprietary pricing strategies, and strict NDAs. Uploading these legal contracts to closed-source, proprietary AI platforms is often a breach of client trust. By relying on local extraction and open-weight models like Gemma 4, freelancers can leverage powerful AI auditing without compromising their clients' privacy. Open innovation makes secure, enterprise-grade contract auditing accessible to solo developers who cannot afford expensive monthly SaaS subscriptions&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
    </item>
    <item>
      <title>CURSED.EXE — Touch Grass. Collect the Evidence. 🌿🎴</title>
      <dc:creator>Apurv</dc:creator>
      <pubDate>Sat, 10 Oct 2026 18:38:51 +0000</pubDate>
      <link>https://dev.to/krvnium/cursedexe-touch-grass-collect-the-evidence-6b9</link>
      <guid>https://dev.to/krvnium/cursedexe-touch-grass-collect-the-evidence-6b9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;What if touching grass gave you loot?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;CURSED.EXE&lt;/strong&gt;, a chaotic little project that turns ordinary things from the real world into collectible, AI-generated pixel-art trading cards.&lt;/p&gt;

&lt;p&gt;The concept is simple: we spend so much time staring at screens that we sometimes forget the interesting stuff sitting right outside our doors. CURSED.EXE gives us a ridiculous excuse to go outside and look around.&lt;/p&gt;

&lt;p&gt;Found a weird-looking tree? Photograph it.&lt;/p&gt;

&lt;p&gt;Spotted a cat? Photograph it.&lt;/p&gt;

&lt;p&gt;Found a suspicious banana in your kitchen? Unfortunately, that counts too. 🍌&lt;/p&gt;

&lt;p&gt;Upload the photo, and CURSED.EXE transforms it into a collectible entity card featuring colourful, classic 16-bit RPG-inspired pixel art, an AI-generated name, a class, rarity, two randomized stats, a quirky one-liner, and completely unnecessary fictional lore.&lt;/p&gt;

&lt;p&gt;Your banana might become &lt;strong&gt;Bananazon&lt;/strong&gt;. Your cat might become &lt;strong&gt;Sprite&lt;/strong&gt;. Your sandwich might become a level-one Gluten Shield mob from the Breakfast Sector.&lt;/p&gt;

&lt;p&gt;I'm not questioning the AI's decisions anymore.&lt;/p&gt;

&lt;p&gt;Every card joins your personal collection, turning ordinary observations into a growing bestiary of real-world anomalies.&lt;/p&gt;

&lt;p&gt;The goal isn't to build another game that keeps people glued to their screens. It's to make the world outside feel a little more like an adventure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go outside. Find something weird. Capture the evidence.&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/krvnium/cursed-exe" rel="noopener noreferrer"&gt;https://github.com/krvnium/cursed-exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project runs locally as a Streamlit application. The repository contains the source code and setup instructions.&lt;/p&gt;

&lt;p&gt;The screenshots below are examples of cards generated during development:&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%2Fe8nn4zgtyiyiyv9mi7y4.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%2Fe8nn4zgtyiyiyv9mi7y4.png" alt=" " width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A cat reimagined as a pixel-art RPG creature.&lt;/li&gt;
&lt;/ul&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%2Fdokn5rkcm0wuhac5psjo.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%2Fdokn5rkcm0wuhac5psjo.png" alt=" " width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jarvis, a household entity with a deeply concerning relationship with sandwiches.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;Explore the source code:&lt;/strong&gt; &lt;a href="https://github.com/krvnium/cursed-exe" rel="noopener noreferrer"&gt;krvnium/cursed-exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is built with Python and uses Streamlit for the interface, Pillow for image processing and card rendering, and SQLite for the persistent collection.&lt;/p&gt;

&lt;p&gt;The main pipeline looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Capture:&lt;/strong&gt; Upload a photograph of something from the real world.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pixelate:&lt;/strong&gt; Process the image into a colourful, retro-inspired pixel-art representation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identify:&lt;/strong&gt; Send the image through a vision-capable AI model to identify its subject and generate contextual metadata.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Randomize:&lt;/strong&gt; Assign rarity and generate Chaotic-ness and Grass Meter stats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collect:&lt;/strong&gt; Render the result into a custom trading card and save it to your collection.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The card images can be exported as PNGs, and the collection persists locally.&lt;/p&gt;

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

&lt;p&gt;This project was a one-night experiment in getting an idea out of my head and into a working application.&lt;/p&gt;

&lt;p&gt;I started with an initial implementation generated with Gemini, then used GitHub Copilot in Zed to inspect the codebase, debug the AI integration, improve the card renderer, redesign the interface, and prepare the project for GitHub.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; — application logic and metadata handling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; — interactive web interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pillow&lt;/strong&gt; — image pixelation and trading-card rendering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; — persistent local collection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Groq-hosted vision model&lt;/strong&gt; — image understanding and generation of contextual entity metadata.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Copilot&lt;/strong&gt; — agent-assisted debugging, implementation, and release preparation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interface uses a pastel NeoBrutalist aesthetic: thick black borders, offset shadows, a subtle grid background, pastel pink, lime and lavender, and Bricolage Grotesque typography.&lt;/p&gt;

&lt;p&gt;The cards themselves follow a horizontal layout inspired by collectible trading cards, with the pixel art taking centre stage and the entity's stats and lore on the side.&lt;/p&gt;

&lt;p&gt;One of the biggest debugging challenges was getting the AI integration working reliably. The configured endpoint was being constructed incorrectly, and the previous vision model configuration was unavailable. After correcting the configuration, I verified the integration with a real image inference request.&lt;/p&gt;

&lt;p&gt;The project also preserves generated cards and their metadata locally, so your collection isn't supposed to change every time you reopen the application.&lt;/p&gt;

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

&lt;p&gt;For a small project like this, open innovation makes experimentation accessible.&lt;/p&gt;

&lt;p&gt;I could combine an open development stack, a vision-capable model, image-processing libraries, and an AI coding agent without having to build every component from scratch.&lt;/p&gt;

&lt;p&gt;Using an open-weight model through a hosted inference provider let me experiment with image understanding and structured metadata generation without needing to run a large model locally on my own hardware.&lt;/p&gt;

&lt;p&gt;That distinction matters: the model is open-weight, while inference in this implementation is hosted rather than local.&lt;/p&gt;

&lt;p&gt;Open-source libraries also made the rest of the project easier to understand, modify, and share. Someone else can inspect the pipeline, replace the model provider, change the card template, or extend the collection system instead of treating the whole application as a black box.&lt;/p&gt;

&lt;p&gt;A closed API could also support this kind of project. The benefit of open innovation is not that closed systems are incapable of it; it's that accessible components and inspectable code give builders more freedom to experiment, learn, and adapt.&lt;/p&gt;

&lt;p&gt;And that's exactly what this project was about: taking a silly idea and making it real in one night.&lt;/p&gt;

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

&lt;p&gt;I used Gemini for the initial code and GitHub Copilot in Zed for subsequent implementation, debugging, testing, and release preparation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CURSED.EXE — Touch grass. Collect the evidence.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now excuse me. I have a suspicious banana to investigate. 🍌&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>LearnCLI — an offline study tool I built on my phone for a friend prepping for JEE</title>
      <dc:creator>Apurv</dc:creator>
      <pubDate>Sun, 04 Oct 2026 19:15:14 +0000</pubDate>
      <link>https://dev.to/krvnium/learncli-an-offline-study-tool-i-built-on-my-phone-for-a-friend-prepping-for-jee-37a6</link>
      <guid>https://dev.to/krvnium/learncli-an-offline-study-tool-i-built-on-my-phone-for-a-friend-prepping-for-jee-37a6</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;
  
  
  &lt;strong&gt;What I Built&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A friend of mine is prepping for JEE and keeps hitting the same problem — she's studying somewhere with spotty internet, and every "AI study helper" out there needs a connection and usually a subscription. So I built LearnCLI: a tiny terminal tool that explains a topic and throws a practice question back at you, running fully offline.&lt;/p&gt;

&lt;p&gt;You type a topic, it thinks for a few seconds, and it gives you a plain-text explanation plus one question to test yourself with. No account, no internet, no API bill.&lt;/p&gt;

&lt;p&gt;The twist is I didn't have a laptop while building this. I did the entire thing on my phone, in Termux.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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%2Fyutuyvwdut0mqiolbnrb.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%2Fyutuyvwdut0mqiolbnrb.png" alt=" " width="800" height="936"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(this is a real run asking it to explain Newton's third law)&lt;/p&gt;

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

&lt;p&gt;Repo: &lt;a href="https://github.com/krvnium/LearnCLI" rel="noopener noreferrer"&gt;https://github.com/krvnium/LearnCLI&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Everything runs through &lt;a href="https://github.com/ggerganov/llama.cpp" rel="noopener noreferrer"&gt;llama.cpp&lt;/a&gt;, compiled straight from source inside Termux on my Poco M4 Pro. No GPU, no cloud box, just phone CPU.&lt;/p&gt;

&lt;p&gt;For the model, I went with Gemma 3 1B, quantized down to Q4_K_M (~800MB), small enough that it actually runs at a usable speed on a phone.&lt;/p&gt;

&lt;p&gt;The script itself is plain Python, calling the compiled llama-cli binary and cleaning up its output — stripping markdown symbols the model likes to throw in, cutting off a marker token I use internally to separate the prompt from the actual answer, and wrapping everything in a little terminal UI so it feels less like a raw model dump and more like an actual tool.&lt;/p&gt;

&lt;p&gt;Build process, roughly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;pkg install&lt;/code&gt; the usual suspects (clang, cmake, git, python) in Termux&lt;/li&gt;
&lt;li&gt;clone and compile llama.cpp natively on-device&lt;/li&gt;
&lt;li&gt;pull the Gemma GGUF from Hugging Face&lt;/li&gt;
&lt;li&gt;write the Python wrapper around it&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;This only works because the model weights and the inference engine are both open. Gemma being open-weight means I can download it once and run it forever, no API key, no per-request cost, no "service unavailable" when my friend's hostel wifi dies at 11pm before an exam. llama.cpp being open-source is the other half — it's what let me actually get a transformer model running on a phone's CPU without needing anyone's permission or infrastructure.&lt;/p&gt;

&lt;p&gt;A closed API would've meant my friend needs internet every single time she wants to use this, and I'd be the one paying for her queries. With this, I built it once, and it just works, offline, for free, for as long as the phone has battery.&lt;/p&gt;

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