<?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: Karthik Pai</title>
    <description>The latest articles on DEV Community by Karthik Pai (@karthikpaii).</description>
    <link>https://dev.to/karthikpaii</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%2F3872619%2Fb980aa27-d27e-4ca3-9292-b43dbdb0a374.jpeg</url>
      <title>DEV Community: Karthik Pai</title>
      <link>https://dev.to/karthikpaii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/karthikpaii"/>
    <language>en</language>
    <item>
      <title>MenuFoge - Translate Menus Locally</title>
      <dc:creator>Karthik Pai</dc:creator>
      <pubDate>Mon, 19 Oct 2026 13:58:18 +0000</pubDate>
      <link>https://dev.to/karthikpaii/menufoge-translate-menus-locally-25j0</link>
      <guid>https://dev.to/karthikpaii/menufoge-translate-menus-locally-25j0</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;&lt;strong&gt;MenuForge&lt;/strong&gt; is a local-first AI menu studio built specifically for independent, immigrant-owned, and neighborhood restaurants.&lt;/p&gt;

&lt;p&gt;When a chef or restaurant operator enters a dish ticket containing the dish name, ingredients, culinary heritage story, known allergens, and an optional plating photo, MenuForge locally generates:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Heritage-Preserving Bilingual Menu Copy:&lt;/strong&gt; Keeps cultural dish names intact, such as &lt;em&gt;Kori Gassi&lt;/em&gt;, &lt;em&gt;Mole Poblano&lt;/em&gt;, &lt;em&gt;Bánh Mì Đặc Biệt&lt;/em&gt;, &lt;em&gt;Mapo Tofu&lt;/em&gt;, &lt;em&gt;Doro Wat&lt;/em&gt;, and &lt;em&gt;Gua Bao&lt;/em&gt;, while generating descriptions for printed menus and sidewalk blackboards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server Pronunciation Guide with Live Audio:&lt;/strong&gt; Provides phonetic breakdowns such as &lt;code&gt;KO-ri GAH-see&lt;/code&gt; with a 🔊 &lt;strong&gt;Listen&lt;/strong&gt; button powered by the browser's Web Speech API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Allergen and Dietary Safety Tagging:&lt;/strong&gt; Flags nine common allergen families: dairy, tree nuts, peanuts, shellfish, fish, wheat/gluten, soy, sesame, and eggs. It also identifies dietary suitability, including Vegan, Gluten-Free, and Halal-friendly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Print Studio:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Foldable 4" × 6" table tent stands featuring dish stories, pricing, translations, and SVG QR codes.&lt;/li&gt;
&lt;li&gt;3" × 5" waitstaff pocket cards with pronunciation, dish descriptions, allergen hazards, and drink upsells.&lt;/li&gt;
&lt;li&gt;Full restaurant menu layouts with print-ready typography.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local SQLite Menu Catalog:&lt;/strong&gt; Stores dishes locally with course categorization and pricing, with JSON and Markdown exports for POS workflows such as Square, Toast, and Clover.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Who Would Pay For It?
&lt;/h3&gt;

&lt;p&gt;Independent ethnic restaurant owners, food-truck operators, and bistro managers who need professional multilingual menus without paying translation agencies hundreds of dollars.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Side-Hustle Blueprint:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$49 One-Time Setup:&lt;/strong&gt; Digitize 20–25 core dishes, create bilingual cards, generate waitstaff pocket cards, and produce QR table tent stands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$15/Month Retainer:&lt;/strong&gt; Weekly specials updates, blackboard copy, and seasonal menu rotations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Potential Recurring Revenue:&lt;/strong&gt; 20 restaurants paying $15/month would generate $300/month before other business expenses.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;Generic AI and translation tools can flatten cultural food heritage by replacing authentic dish names with generic descriptions.&lt;/li&gt;
&lt;li&gt;High waitstaff turnover makes it difficult for new servers to pronounce traditional dishes, describe their flavors, and answer allergen questions.&lt;/li&gt;
&lt;li&gt;Handwritten specials boards can overlook hidden allergens in ingredients such as ghee, sesame, and crustacean paste.&lt;/li&gt;
&lt;li&gt;Cloud AI API costs can make an affordable subscription tool unprofitable for small restaurants.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;MenuForge combines local AI, cultural preservation, staff training, allergen awareness, and print-ready menu creation in one tool.&lt;/p&gt;

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

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

&lt;h3&gt;
  
  
  Interactive Tour:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Click on an authentic sample dish:

&lt;ul&gt;
&lt;li&gt;🍛 &lt;strong&gt;Kori Gassi&lt;/strong&gt; (Coastal Karnataka / Mangalorean)&lt;/li&gt;
&lt;li&gt;🌶️ &lt;strong&gt;Mole Poblano&lt;/strong&gt; (Puebla, Mexico)&lt;/li&gt;
&lt;li&gt;🥖 &lt;strong&gt;Bánh Mì Đặc Biệt&lt;/strong&gt; (Saigon Street Food)&lt;/li&gt;
&lt;li&gt;🍲 &lt;strong&gt;Mapo Tofu (麻婆豆腐)&lt;/strong&gt; (Sichuan / Chengdu)&lt;/li&gt;
&lt;li&gt;🍗 &lt;strong&gt;Doro Wat&lt;/strong&gt; (Ethiopian / Addis Ababa)&lt;/li&gt;
&lt;li&gt;🥟 &lt;strong&gt;Gua Bao (割包)&lt;/strong&gt; (Taiwanese Night Market)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Forge Menu Cards&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click the 🔊 &lt;strong&gt;Listen&lt;/strong&gt; button to hear the pronunciation guide.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;🖨️ Table Tent&lt;/strong&gt; to preview the foldable table stand with its dish description, translation, and SVG QR code.&lt;/li&gt;
&lt;li&gt;Scroll down to the &lt;strong&gt;Restaurant Menu Catalog&lt;/strong&gt; to filter dishes by course and export the menu to JSON or Markdown.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;(Reviewer note: MenuForge includes an embedded, zero-download offline culinary fixture engine. If Ollama is not installed or running, checking "Force demo engine" allows you to test every feature instantly with zero model downloads.)&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/paiikarthik" rel="noopener noreferrer"&gt;
        paiikarthik
      &lt;/a&gt; / &lt;a href="https://github.com/paiikarthik/MenuForge" rel="noopener noreferrer"&gt;
        MenuForge
      &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;MenuForge 🍳&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Local-first AI menu studio for independent and heritage restaurants.&lt;/strong&gt;&lt;br&gt;
Turn dish names, secret spice notes, and plating photos into bilingual menu cards, server pronunciation guides, and print-ready table tents with dynamic QR codes.&lt;br&gt;
Powered by open-weight models via &lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;Ollama&lt;/a&gt;. Confidential recipes and plating photos never leave &lt;code&gt;127.0.0.1&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Built for the &lt;strong&gt;&lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19" rel="nofollow"&gt;Hacktoberfest Open-Source AI Challenge: Week 3 — Side Hustle&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💡 The Real-World Problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Neighborhood ethnic restaurants operate on razor-thin margins (3%–9%). When an independent restaurant owner (from Mangalorean seafood spots to Oaxacan taquerias, Vietnamese bánh mì stalls, or Sichuan dumpling houses) wants to translate their menu or print seasonal specials:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Closed SaaS &amp;amp; Translators flatten heritage:&lt;/strong&gt; Generic translation tools translate &lt;em&gt;Kori Gassi&lt;/em&gt; to "chicken curry", &lt;em&gt;Mole Poblano&lt;/em&gt; to "chocolate sauce stew", and &lt;em&gt;Mapo Tofu&lt;/em&gt; to "bean curd in chili". It erases culinary identity, authenticity, and artisan pricing power.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server turnover causes chaos:&lt;/strong&gt; Waitstaff struggle to…&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/paiikarthik/MenuForge" 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/paiikarthik/MenuForge" rel="noopener noreferrer"&gt;https://github.com/paiikarthik/MenuForge&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT License&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test Suite:&lt;/strong&gt; Seven automated test suites covering API health, sample endpoints, allergen extraction, SQLite CRUD operations, and exports. Run them with &lt;code&gt;pytest tests -v&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

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



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A[Dish Ticket + Plating Photo] --&amp;gt; B[FastAPI Web Server]
    B --&amp;gt; C{Ollama Available?}
    C --&amp;gt;|Yes| D[Local Open Weights: Llama 3.2 / Qwen 2.5 / LLaVA]
    C --&amp;gt;|No| E[Zero-Download Heuristic Engine]
    D --&amp;gt; F[Structured JSON Menu Cards]
    E --&amp;gt; F
    F --&amp;gt; G[(Local SQLite: menuforge.db)]
    F --&amp;gt; H[Interactive Menu UI]
    H --&amp;gt; I[🔊 Web Speech API Audio Pronunciation]
    H --&amp;gt; J[🖨️ Foldable Table Tent with SVG QR Code]
    H --&amp;gt; K[🔖 Waitstaff Shift Pocket Cards]
    H --&amp;gt; L[📥 POS Export: JSON / Markdown]&lt;/code&gt;&lt;/pre&gt;



&lt;h3&gt;
  
  
  The Open-Source AI Stack:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local Inference and Open Weights:&lt;/strong&gt; Powered by &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;. MenuForge auto-detects installed models through &lt;code&gt;/api/health&lt;/code&gt; and supports &lt;code&gt;llama3.2:3b&lt;/code&gt;, &lt;code&gt;qwen2.5:3b&lt;/code&gt;, &lt;code&gt;gemma2:2b&lt;/code&gt;, and &lt;code&gt;llava:7b&lt;/code&gt; for plating-photo analysis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Download Heuristic Fallback:&lt;/strong&gt; Uses rule-based allergen pattern matching across nine allergen families, dietary suitability inference, and phonetic syllable splitting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; FastAPI with Python 3.13 and SQLite for local database persistence in &lt;code&gt;data/menuforge.db&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vision Pre-processing:&lt;/strong&gt; Pillow (PIL) for local image thumbnailing, edge enhancement, and base64 encoding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Lightweight vanilla HTML5, CSS3, and JavaScript with an ink, moss, and brass color palette and Fraunces and Sora typography.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speech Synthesis:&lt;/strong&gt; Browser-native Web Speech API (&lt;code&gt;window.speechSynthesis&lt;/code&gt;) for pronunciation training.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;QR Code Generation:&lt;/strong&gt; Client-side SVG QR code generator using &lt;code&gt;static/qrcode.min.js&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Print Optimization:&lt;/strong&gt; Dedicated &lt;code&gt;@media print&lt;/code&gt; CSS for table cards and pocket guides.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;MenuForge is built around the idea that useful AI tools for small businesses should not require expensive cloud subscriptions or send sensitive business information to external services.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The $0 Marginal Inference Cost
&lt;/h3&gt;

&lt;p&gt;Independent restaurants cannot always afford unpredictable, metered API bills. With open-weight models such as &lt;code&gt;llama3.2:3b&lt;/code&gt; and &lt;code&gt;qwen2.5:3b&lt;/code&gt; running through Ollama, MenuForge can generate menu descriptions locally after the model has been downloaded.&lt;/p&gt;

&lt;p&gt;There are no per-request cloud inference charges when using local models, making repeated menu updates more economical. Actual costs still depend on hardware, electricity, and maintenance.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Recipe Privacy and Secret Spice Blends
&lt;/h3&gt;

&lt;p&gt;Family recipes, proprietary spice proportions, and unreleased seasonal dishes can be valuable intellectual property. MenuForge is designed to keep menu data and local AI processing on the restaurant's own machine rather than requiring a cloud AI service.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Offline Reliability
&lt;/h3&gt;

&lt;p&gt;Restaurants may experience unreliable Wi-Fi or mobile connectivity, especially in kitchens and food-preparation areas. Local inference allows the core AI workflow to continue without an internet connection once the required models and dependencies are installed. The built-in heuristic fallback also lets users test features without downloading a model.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Cultural Domain Control and Customization
&lt;/h3&gt;

&lt;p&gt;Generic AI tools can oversimplify regional dishes and ingredients. Open-weight models give developers greater control over prompts, model selection, and potential future fine-tuning for particular cuisines and culinary traditions.&lt;/p&gt;

&lt;p&gt;Open innovation makes MenuForge more affordable to operate, easier to customize, and better suited to businesses that value cultural identity, privacy, and independence.&lt;/p&gt;

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

&lt;p&gt;This project was built through pair programming with Google DeepMind's &lt;strong&gt;Antigravity&lt;/strong&gt; agent.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Antigravity helped architect the full-stack system, including the FastAPI backend, dynamic Ollama client with automatic model discovery, heuristic fallback engine, and SQLite persistence layer.&lt;/li&gt;
&lt;li&gt;The browser-native Web Speech API was integrated to help front-of-house staff hear dish pronunciations.&lt;/li&gt;
&lt;li&gt;A client-side SVG QR code generator was implemented to produce printable table tent cards without external network dependencies.&lt;/li&gt;
&lt;li&gt;Antigravity also helped build an automated test suite in &lt;code&gt;tests/test_menuforge.py&lt;/code&gt; covering API health, sample fixtures, allergen heuristics, database operations, and static file delivery.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;To test whether restaurateurs would find MenuForge useful, I presented it to &lt;strong&gt;Ananya and Chef Shekar&lt;/strong&gt;, operators of &lt;em&gt;Coastal Leaf&lt;/em&gt;, a local independent kitchen specializing in coastal Karnataka and Mangalorean cuisine.&lt;/p&gt;

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

&lt;p&gt;Their printed menu described their signature dish, &lt;em&gt;Kori Gassi&lt;/em&gt;, as "Chicken Coconut Curry." Their servers also frequently answered questions about spice levels and dairy ingredients.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Walkthrough
&lt;/h3&gt;

&lt;p&gt;We opened MenuForge on a laptop, selected &lt;em&gt;Kori Gassi&lt;/em&gt;, and entered notes about Byadgi chili, freshly grated roasted coconut, tamarind, curry leaves, and the dish's family-recipe heritage. MenuForge then generated the menu cards.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Reaction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pronunciation Button:&lt;/strong&gt; Chef Shekar appreciated the 🔊 &lt;strong&gt;Listen&lt;/strong&gt; feature for helping new servers learn the pronunciation &lt;code&gt;KO-ri GAH-see&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preserving Identity:&lt;/strong&gt; The generated description read: &lt;em&gt;"Mangalorean chicken curry slow-simmered in roasted coconut &amp;amp; Byadgi chili gravy."&lt;/em&gt; The original Tulu dish name remained the headline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Allergen Flagging:&lt;/strong&gt; The system highlighted dairy when the dish was finished with ghee and identified coconut, prompting further ingredient checks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Did They Pay? What Would They Pay?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Setup Fee:&lt;/strong&gt; They agreed to a proposed &lt;strong&gt;$49 one-time onboarding fee&lt;/strong&gt; for digitizing their 22-item menu, generating waitstaff pocket cards, and creating QR table tent stands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monthly Retainer:&lt;/strong&gt; They expressed interest in a proposed &lt;strong&gt;$15/month retainer&lt;/strong&gt; for rotating weekend specials.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What Did They Ask For Next?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Laminated Foldable Table Tents:&lt;/strong&gt; A printable layout for acrylic table stands, now implemented in MenuForge's Print Studio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server Shift Pocket Cards:&lt;/strong&gt; A compact 3" × 5" reference sheet for busy weekend services, now implemented as the Waitstaff Shift Pocket Card.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;POS Menu Export:&lt;/strong&gt; The ability to export menu data for POS workflows, implemented through the &lt;code&gt;/api/export&lt;/code&gt; endpoint.&lt;/li&gt;
&lt;/ol&gt;

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

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

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>TraiBuddy AI - Explore the Nature</title>
      <dc:creator>Karthik Pai</dc:creator>
      <pubDate>Sun, 11 Oct 2026 18:20:51 +0000</pubDate>
      <link>https://dev.to/karthikpaii/traibuddy-of-5e</link>
      <guid>https://dev.to/karthikpaii/traibuddy-of-5e</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;TrailBuddy Offline&lt;/strong&gt; is an open-source, privacy-first Progressive Web App (PWA) designed to reverse screen addiction and help people reconnect with the living world. Unlike traditional apps engineered to maximize daily active screen time, TrailBuddy measures success when users &lt;strong&gt;close the application and step outside&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it gets people into the real world:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Personalized Outdoor Planner:&lt;/strong&gt; Generates sensory-rich, structured itineraries tailored to available time (15-minute micro-breaks to half-day expeditions), activity preference (walking, birdwatching, gardening, hiking, cycling, stargazing, mindful relaxation), energy level, budget, and mobility/accessibility needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screen-Free Outdoor Timer:&lt;/strong&gt; An analog-style outdoor stopwatch that challenges users to put their phone in their pocket or backpack, tracking real-world outdoor minutes and daily nature streaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Touch Grass Challenge Curriculum:&lt;/strong&gt; 10 original outdoor mindfulness challenges (e.g., natural soundscape mapping, 5 leaf shapes scavenger, the screen-free mile, tactile natural textures, twilight vigilance) that require physical confirmation rather than passive scrolling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Cloud Nature Journal:&lt;/strong&gt; A private observation log stored 100% locally in browser storage with instant search, filtering, and one-click JSON backup export/restore.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;100% Offline Capability:&lt;/strong&gt; Works seamlessly in remote forests, coastal shores, and connectivity dead zones where cellular reception is unavailable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Who it is for:&lt;/strong&gt; Developers, remote workers, students, and outdoor enthusiasts suffering from digital fatigue who want accessible, private, and inspiring nature adventures without paywalls, account walls, or location tracking.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Live Deployed Application:&lt;/strong&gt; &lt;a href="https://trailbuddy-offline.onrender.com/#dashboard" rel="noopener noreferrer"&gt;https://trailbuddy-offline.onrender.com/#dashboard&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥 &lt;strong&gt;Video Demo:&lt;/strong&gt; &lt;a href="https://youtu.be/sAaYOYQCtyA" rel="noopener noreferrer"&gt;https://youtu.be/sAaYOYQCtyA&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🩺 &lt;strong&gt;Production Health Check Endpoint:&lt;/strong&gt; &lt;a href="https://trailbuddy-offline.onrender.com/health" rel="noopener noreferrer"&gt;https://trailbuddy-offline.onrender.com/health&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Tip: You can test the offline resilience by opening DevTools, setting the Network tab to **Offline&lt;/em&gt;&lt;em&gt;, or launching Airplane Mode on mobile — the entire app shell, nature journal, challenge catalog, and rule-based planner continue to function instantly.&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/paiikarthik" rel="noopener noreferrer"&gt;
        paiikarthik
      &lt;/a&gt; / &lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline" rel="noopener noreferrer"&gt;
        TrailBuddy-Offline
      &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;🌿 TrailBuddy Offline — AI-Powered Outdoor Companion&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Less scrolling. More exploring.”&lt;/strong&gt;&lt;br&gt;
An open-source, privacy-first Progressive Web App built for &lt;strong&gt;Hacktoberfest 2026 (Week 1: “Touch Grass”)&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://opensource.org/licenses/MIT" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://www.python.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1e84b5e6b27224195cfafe6258acef2a29506fb27c574ab58d217cb74de10851/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31302532422d626c75652e737667" alt="Python 3.10+"&gt;&lt;/a&gt;
&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#offline-and-pwa-architecture" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ea482dd26dc4a87e3328222c7ef246e61d6725503372f59ac8e59688e3416446/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5057412d4f66666c696e6525323046697273742d677265656e2e737667" alt="PWA Ready"&gt;&lt;/a&gt;
&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#open-source-ai-integration" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/920fd0e65358ade8deae92efbec3518de7bd7b059d4fafbb1c3a76e30f62c7c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41492d4f6c6c616d612532302537432532304f70656e2d2d5765696768742d7465616c2e737667" alt="Open Source AI"&gt;&lt;/a&gt;
&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#running-tests" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4ee6b04546a90ca3f88d2ad6b108e5bfb0f7e9fb72982f0f9066f585322b0309/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54657374732d323325323050617373696e672d627269676874677265656e2e737667" alt="Tests: Pytest"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📖 Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#overview--challenge-relevance" rel="noopener noreferrer"&gt;Overview &amp;amp; Challenge Relevance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#problem-statement--impact" rel="noopener noreferrer"&gt;Problem Statement &amp;amp; Impact&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#architecture-overview" rel="noopener noreferrer"&gt;Architecture Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#key-features" rel="noopener noreferrer"&gt;Key Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#open-source-ai-integration" rel="noopener noreferrer"&gt;Open-Source AI Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#offline--pwa-architecture" rel="noopener noreferrer"&gt;Offline &amp;amp; PWA Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#local-quickstart" rel="noopener noreferrer"&gt;Local Quickstart (Windows, macOS, Linux)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#connecting-an-open-source-model-ollama" rel="noopener noreferrer"&gt;Connecting an Open-Source Model (Ollama)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#configuration--environment-variables" rel="noopener noreferrer"&gt;Configuration &amp;amp; Environment Variables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#render-deployment-guide" rel="noopener noreferrer"&gt;Render Deployment Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#running-tests" rel="noopener noreferrer"&gt;Running Tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#privacy--security-guarantee" rel="noopener noreferrer"&gt;Privacy &amp;amp; Security Guarantee&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#known-limitations--design-boundaries" rel="noopener noreferrer"&gt;Known Limitations &amp;amp; Design Boundaries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#contributing" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paiikarthik/TrailBuddy-Offline#license--model-licensing" rel="noopener noreferrer"&gt;License &amp;amp; Model Licensing&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌟 Overview &amp;amp; Challenge Relevance&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Modern software is engineered to maximize "time on screen" — weaponizing push notifications and infinite algorithmic feeds. &lt;strong&gt;TrailBuddy Offline&lt;/strong&gt; turns this paradigm inside out.&lt;/p&gt;
&lt;p&gt;Built for the &lt;strong&gt;Hacktoberfest 2026 Week 1 Challenge: “Touch Grass”&lt;/strong&gt;, TrailBuddy's primary measure of success is helping users &lt;strong&gt;put their devices down&lt;/strong&gt; and step into natural spaces. It pairs open-weight language models with a progressive web app to…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/paiikarthik/TrailBuddy-Offline" 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/paiikarthik/TrailBuddy-Offline" rel="noopener noreferrer"&gt;https://github.com/paiikarthik/TrailBuddy-Offline&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT License (Open Source)&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;TrailBuddy Offline was built with a resilient, multi-tiered architecture:&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local Inference:&lt;/strong&gt; Configured out of the box for locally running &lt;strong&gt;Ollama&lt;/strong&gt; instances (&lt;code&gt;http://localhost:11434&lt;/code&gt;) powered by open-weight models such as &lt;strong&gt;&lt;code&gt;mistral&lt;/code&gt;&lt;/strong&gt; (7B) or &lt;strong&gt;&lt;code&gt;llama3.2&lt;/code&gt;&lt;/strong&gt; (3B).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosted Open-Weight Endpoints:&lt;/strong&gt; Configurable for remote open-weight inference (vLLM, Hugging Face TGI, LocalAI) via OpenAI-compatible endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guardrailed Prompt Engineering:&lt;/strong&gt; System prompts enforce strict 9-field JSON schemas and strictly forbid inventing live weather forecasts, trail closures, opening hours, or fictitious GPS coordinates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fail-Safe Fallback:&lt;/strong&gt; Server-side model requests include an 8-second timeout. If the AI model times out, returns malformed JSON, or is offline, the system seamlessly falls back to a deterministic rule-based planner (&lt;code&gt;services/planner.py&lt;/code&gt;) with a clear source badge.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Full-Stack &amp;amp; Offline-First Technology Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python 3.11 with &lt;strong&gt;Flask&lt;/strong&gt;, Gunicorn WSGI server, request rate limiting via &lt;strong&gt;Flask-Limiter&lt;/strong&gt;, and strict security headers (CSP, nosniff, SAMEORIGIN).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PWA &amp;amp; Offline Storage:&lt;/strong&gt; Configured with &lt;code&gt;manifest.json&lt;/code&gt;, custom maskable app icons, and &lt;code&gt;service-worker.js&lt;/code&gt; (Cache-First strategy for static assets, Network-First for navigation with an offline fallback page, and Network-Only for plans).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client-Side Offline Engine:&lt;/strong&gt; When network connectivity is severed entirely, &lt;code&gt;static/js/offline.js&lt;/code&gt; catches the failed network call and runs an in-browser JavaScript rule engine so plans generate in milliseconds without a server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Privacy:&lt;/strong&gt; Nature journal observations and screen-free timer records reside exclusively in browser &lt;code&gt;localStorage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; 23 automated tests with &lt;code&gt;pytest&lt;/code&gt; covering all routes, input validation boundaries, accessibility filters, and AI timeout/failure fallbacks (&lt;strong&gt;100% passing&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Render Web Service via a declarative &lt;code&gt;render.yaml&lt;/code&gt; Blueprint.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Open innovation was not an afterthought for TrailBuddy — it was the single architectural requirement that made the project possible:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;True Offline Independence in the Wild:&lt;/strong&gt; Closed, proprietary AI APIs (OpenAI, Anthropic) fundamentally require persistent cloud connectivity, paid API subscriptions, and constant data transmission. The best natural spaces are often dead zones with zero cell signal. Open-weight models (running locally via Ollama) enable real, creative AI generation directly on consumer laptops and offline hardware deep in the wilderness.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ironclad Privacy:&lt;/strong&gt; Outdoor and wellness applications frequently commercialize user location data, habits, and personal thoughts. Open innovation allowed us to build an architecture with &lt;strong&gt;zero user accounts&lt;/strong&gt;, &lt;strong&gt;zero telemetry&lt;/strong&gt;, and &lt;strong&gt;zero cloud logging&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility Without Paywalls:&lt;/strong&gt; Closed APIs lock users behind credit card gates, recurring subscriptions, and restrictive rate limits. By combining open-weight models with a deterministic offline heuristic engine, TrailBuddy ensures that anyone with a web browser can access thoughtful outdoor guidance for free, forever.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;TrailBuddy Offline was developed through an agentic pair-programming workflow: designing the offline PWA architecture, structuring guardrailed JSON prompts for open-weight models, implementing client-side fallbacks, writing a 23-test validation suite, and deploying the production Web Service to Render.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video Demo:&lt;/strong&gt; &lt;a href="https://youtu.be/sAaYOYQCtyA" rel="noopener noreferrer"&gt;https://youtu.be/sAaYOYQCtyA&lt;/a&gt;&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Best Use of Render
&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%2Fp8jii5418007hu51cuzt.png" alt=" " width="800" height="384"&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>html</category>
      <category>flask</category>
    </item>
    <item>
      <title>DriveVault AI - Store File Securely On Cloud</title>
      <dc:creator>Karthik Pai</dc:creator>
      <pubDate>Sun, 04 Oct 2026 18:03:05 +0000</pubDate>
      <link>https://dev.to/karthikpaii/drivevault-ai-store-file-securely-on-cloud-17hh</link>
      <guid>https://dev.to/karthikpaii/drivevault-ai-store-file-securely-on-cloud-17hh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;DriveVault AI&lt;/strong&gt; — a Zero-Knowledge, open-source file security vault powered by &lt;strong&gt;AES-256-GCM&lt;/strong&gt;, &lt;strong&gt;Argon2id key derivation&lt;/strong&gt;, and the open-weight &lt;strong&gt;Gemma AI model&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;Many of my friends and colleagues rely heavily on cloud storage services like Google Drive to back up sensitive documents (financial statements, tax records, identification documents, and private code). However, uploading unencrypted files to cloud storage exposes them to potential data breaches, unauthorized access, and third-party scanning. Existing encryption tools can be complex to configure or lack natural interaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DriveVault AI&lt;/strong&gt; solves this by providing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Knowledge Encryption&lt;/strong&gt;: Files are encrypted locally using authenticated AES-256-GCM with keys derived using Argon2id before ever hitting Google Drive. Plaintext never leaves the machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma AI Assistant&lt;/strong&gt;: An integrated natural language assistant powered by Google's open-weight &lt;strong&gt;Gemma&lt;/strong&gt; model (&lt;code&gt;gemma-2-9b-it&lt;/code&gt;) that helps users query, organize, and manage their encrypted vault files through conversational commands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Local Storage Fallback&lt;/strong&gt;: If offline or if Google OAuth credentials are absent, the application gracefully operates in Local Vault Mode.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;Watch the full video demonstration of &lt;strong&gt;DriveVault AI&lt;/strong&gt; in action:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/7WaD0XNAb3Y" rel="noopener noreferrer"&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%2F3g0qxhklvjgtqnqrobjp.jpg" alt="DriveVault AI Demo" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;▶️ &lt;strong&gt;YouTube Video Link&lt;/strong&gt;: &lt;a href="https://youtu.be/7WaD0XNAb3Y" rel="noopener noreferrer"&gt;https://youtu.be/7WaD0XNAb3Y&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;Check out the complete open-source codebase on GitHub:&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/paiikarthik" rel="noopener noreferrer"&gt;
        paiikarthik
      &lt;/a&gt; / &lt;a href="https://github.com/paiikarthik/DriveVault-AI" rel="noopener noreferrer"&gt;
        DriveVault-AI
      &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;DriveVault-AI&lt;/h1&gt;

&lt;/div&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/paiikarthik/DriveVault-AI" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;🔗 &lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/paiikarthik/DriveVault-AI" rel="noopener noreferrer"&gt;https://github.com/paiikarthik/DriveVault-AI&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;DriveVault AI is built with a modern Python &amp;amp; FastAPI backend, cryptographic primitives, Google Drive API v3, and open-weight AI:&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture &amp;amp; Components
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cryptographic Layer (&lt;code&gt;CryptoVault&lt;/code&gt;)&lt;/strong&gt;: 

&lt;ul&gt;
&lt;li&gt;Uses &lt;strong&gt;Argon2id&lt;/strong&gt; (memory cost: 64MB, 3 iterations) for memory-hard password key derivation.&lt;/li&gt;
&lt;li&gt;Encrypts payloads using &lt;strong&gt;AES-256-GCM&lt;/strong&gt; for authenticated encryption with nonces to protect against tampering.&lt;/li&gt;
&lt;li&gt;Packs files into custom &lt;code&gt;.vault&lt;/code&gt; binary packages containing magic header validation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight AI Assistant (&lt;code&gt;GemmaVaultAssistant&lt;/code&gt;)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Built using Google's &lt;strong&gt;Gemma&lt;/strong&gt; open-weight LLM (&lt;code&gt;gemma-2-9b-it&lt;/code&gt;) via the &lt;code&gt;google-genai&lt;/code&gt; SDK.&lt;/li&gt;
&lt;li&gt;Understands natural language requests (e.g., &lt;em&gt;"Show my encrypted files"&lt;/em&gt;, &lt;em&gt;"How does encryption work?"&lt;/em&gt;, &lt;em&gt;"Encrypt my resume"&lt;/em&gt;) and guides users through security operations.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Drive Service (&lt;code&gt;GoogleDriveService&lt;/code&gt;)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Uses minimal scope authorization (&lt;code&gt;https://www.googleapis.com/auth/drive.file&lt;/code&gt;) to read and write only files created by DriveVault AI inside a dedicated &lt;code&gt;DriveVault&lt;/code&gt; cloud folder.&lt;/li&gt;
&lt;li&gt;Features automatic token refresh and PKCE flow handling for OAuth authentication.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web UI Frontend&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Clean HTML5, CSS3, and vanilla JavaScript interface with drag-and-drop file packaging, interactive password strength indicators, and direct file restoring.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-&lt;/p&gt;

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

&lt;p&gt;Open innovation is essential when building security and privacy-first software:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Security Through Auditability&lt;/strong&gt;: In cryptographic applications, security through obscurity fails. Open-source innovation allows the global developer community to audit encryption logic (AES-256-GCM + Argon2id), verify that plaintext data is never transmitted, and ensure no hidden telemetry exists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight AI Sovereignty&lt;/strong&gt;: Proprietary closed-source AI APIs pose privacy risks when dealing with metadata about user vaults. Using open-weight models like &lt;strong&gt;Gemma&lt;/strong&gt; ensures AI capabilities can run locally or in self-hosted environments without sending sensitive operational data to third-party closed platforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Vendor Lock-In&lt;/strong&gt;: Open protocols allow users to maintain full control over their master keys and backup files independently of any single proprietary platform.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;This project was developed and refined using Google's &lt;strong&gt;Antigravity AI Agent&lt;/strong&gt;, demonstrating pair programming, automated test verification, and full-stack integration.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; (Primary Category)&lt;/li&gt;
&lt;/ul&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


&amp;lt;!-- Team Submissions: Please pick one member to publish the submission and credit teammates by listing their DEV usernames directly in the body of the post. --&amp;gt;

&amp;lt;!-- Thanks for participating! --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Useless Browser</title>
      <dc:creator>Karthik Pai</dc:creator>
      <pubDate>Sun, 12 Apr 2026 17:41:53 +0000</pubDate>
      <link>https://dev.to/karthikpaii/useless-browser-1gg3</link>
      <guid>https://dev.to/karthikpaii/useless-browser-1gg3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;A Useless Browser which Provides Useless Answers. &lt;/p&gt;

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

&lt;p&gt;cloud run: &lt;a href="https://jovial-starship-2f4e98.netlify.app/" rel="noopener noreferrer"&gt;https://jovial-starship-2f4e98.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo: &lt;a href="https://www.youtube.com/watch?v=D1f9Ck2ByTg" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=D1f9Ck2ByTg&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Github: &lt;a href="https://github.com/karthikpaii/DEV-April-Fools-Challenge/tree/main/Browser" rel="noopener noreferrer"&gt;https://github.com/karthikpaii/DEV-April-Fools-Challenge/tree/main/Browser&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Built Using HTMl, CSS, JavaScript using Google Antigravity&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Uncentered DIV</title>
      <dc:creator>Karthik Pai</dc:creator>
      <pubDate>Sun, 12 Apr 2026 17:29:21 +0000</pubDate>
      <link>https://dev.to/karthikpaii/uncentered-div-569i</link>
      <guid>https://dev.to/karthikpaii/uncentered-div-569i</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;The div is not centered properly. Whenever I click on it, it shifts forward instead of staying in the same position. This creates a poor user experience and can be quite irritating for users. &lt;/p&gt;

&lt;p&gt;This is a submission for the DEV April Fools Challenge&lt;/p&gt;

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

&lt;p&gt;The div is not centered properly. Whenever I click on it, it shifts forward instead of staying in the same position. This creates a poor user experience and can be quite irritating for users.&lt;/p&gt;

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

&lt;p&gt;Live Demo: &lt;a href="https://gleaming-kangaroo-30847c.netlify.app/" rel="noopener noreferrer"&gt;https://gleaming-kangaroo-30847c.netlify.app/&lt;/a&gt;&lt;br&gt;
Video Demo: &lt;a href="https://youtu.be/mN1iH2AHGxY" rel="noopener noreferrer"&gt;https://youtu.be/mN1iH2AHGxY&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/karthikpaii/DEV-April-Fools-Challenge/tree/main/uncentered-div" rel="noopener noreferrer"&gt;https://github.com/karthikpaii/DEV-April-Fools-Challenge/tree/main/uncentered-div&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Using Javascript, CSS, and HTML..&lt;br&gt;
Google Antigravity is used to build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
