<?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: Parth Patil</title>
    <description>The latest articles on DEV Community by Parth Patil (@parthlightning).</description>
    <link>https://dev.to/parthlightning</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%2F4159097%2Fb1af136d-e030-4de0-8a60-ab8dfebc3f92.png</url>
      <title>DEV Community: Parth Patil</title>
      <link>https://dev.to/parthlightning</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/parthlightning"/>
    <language>en</language>
    <item>
      <title>QApybara: Autonomous Open-Source AI QA Engineer for Web &amp; Real Android Devices — Channeling Sloth Energy to Never Test a PR Manually Again</title>
      <dc:creator>Parth Patil</dc:creator>
      <pubDate>Mon, 26 Oct 2026 05:14:55 +0000</pubDate>
      <link>https://dev.to/parthlightning/qapybara-autonomous-open-source-ai-qa-engineer-for-web-real-android-devices-channeling-sloth-3a17</link>
      <guid>https://dev.to/parthlightning/qapybara-autonomous-open-source-ai-qa-engineer-for-web-real-android-devices-channeling-sloth-3a17</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;AI coding assistants have made developers write twice as much code in half the time. But nobody doubled the size of testing teams. Over 60% of startups ship without dedicated QA. Review bots like CodeRabbit and Greptile read your pull request diffs, but research shows that only around 15% of review comments catch real defects. The bugs that actually ruin a user's day — a dead checkout button, a broken dropdown, an Android ANR ("Application Not Responding"), or a silent 500 error — only reveal themselves when someone actually runs and interacts with the app.&lt;/p&gt;

&lt;p&gt;Manually clicking through staging apps, filling out test forms, and inspecting devtools on every PR is tedious, dread-inducing work.&lt;/p&gt;

&lt;p&gt;This week’s theme celebrates International Sloth Day: channeling your inner sloth, moving at a relaxed pace, and letting open-source AI do the work so you don't have to.&lt;/p&gt;

&lt;p&gt;Enter QApybara (inspired by the capybara, the calmest, most unbothered creature in nature).&lt;/p&gt;

&lt;p&gt;QApybara is an autonomous, open-source AI QA Engineer that doesn't just read your code — it runs it on a real Chromium browser and a physical Android phone plugged in over USB.&lt;/p&gt;

&lt;p&gt;Instead of doing manual regression testing, you embrace pure sloth mode:&lt;/p&gt;

&lt;p&gt;Push your code.&lt;br&gt;
Slap a qa label (or comment /qa) on the GitHub pull request.&lt;br&gt;
Sit back, relax, and take a nap.&lt;br&gt;
QApybara spins up the app or installs the build APK on a physical phone, maps user journeys, exercises the app like a human user, catches crashes and console errors, captures screenshots and screen recordings, and posts an evidence-backed verdict directly back to your PR and team Slack thread.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://qapybara-dashboard.vercel.app/signin?callbackUrl=https%3A%2F%2Fqapybara-dashboard.vercel.app%2F" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;qapybara-dashboard.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&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%2Fq9ujiklga3zol5xu8wg0.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%2Fq9ujiklga3zol5xu8wg0.png" alt=" " width="800" height="506"&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%2Fjj5phrxsmit20hkznk3c.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%2Fjj5phrxsmit20hkznk3c.png" alt=" " width="800" height="556"&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%2Fmupgcg3mesgkwt6kxiwn.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%2Fmupgcg3mesgkwt6kxiwn.png" alt=" " width="800" height="593"&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/parth-lightning" rel="noopener noreferrer"&gt;
        parth-lightning
      &lt;/a&gt; / &lt;a href="https://github.com/parth-lightning/QApybara" rel="noopener noreferrer"&gt;
        QApybara
      &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;QApybara 🦥&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Review bots read your code. QApybara runs it — on a real browser and a physical Android phone — and shows proof.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;QApybara is an autonomous, open-source AI QA Engineer that tests pull requests by actually &lt;em&gt;running&lt;/em&gt; and &lt;em&gt;interacting&lt;/em&gt; with the application like a human user. When a developer labels a PR with &lt;code&gt;qa&lt;/code&gt; or comments &lt;code&gt;/qa&lt;/code&gt;, QApybara spins up the web preview or installs the APK on a USB-connected Android phone, maps user journeys, exercises the app, detects runtime errors, captures video and screenshot proof, and exports passing journeys as reusable Playwright or Maestro regression tests.&lt;/p&gt;
&lt;p&gt;Built with open-weight models, the &lt;a href="https://github.com" rel="noopener noreferrer"&gt;Eve&lt;/a&gt; agent framework, and the &lt;a href="https://modelcontextprotocol.io/" rel="nofollow noopener noreferrer"&gt;Model Context Protocol (MCP)&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;Runs, Doesn't Just Read&lt;/strong&gt;: Code review bots analyze syntax and style; QApybara boots your app, clicks buttons, fills out forms, tests edge cases, and verifies real runtime behavior.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web &amp;amp; Real&lt;/strong&gt;…&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/parth-lightning/QApybara" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&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/parth-lightning" rel="noopener noreferrer"&gt;
        parth-lightning
      &lt;/a&gt; / &lt;a href="https://github.com/parth-lightning/qapybara-store-app" rel="noopener noreferrer"&gt;
        qapybara-store-app
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Mobile e-commerce store (Stillform) for QApybara - contains all source files, assets, and build configurations to generate the Android .apk
    &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;Stillform mobile&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An offline Expo shopping app for sneakers and clothes. Accounts, sessions, per-user bags, orders and appearance are saved locally with AsyncStorage. All photography and fonts are bundled; no backend or network is required. Payments and fulfillment are simulated.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Run&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Node.js 22+, npm. Run &lt;code&gt;npm ci&lt;/code&gt;, then &lt;code&gt;npm start&lt;/code&gt;. Expo SDK 58, Expo Router, React Native 0.88, React 19.3 and TypeScript. Use a native development or release build for native modules.&lt;/p&gt;
&lt;p&gt;Existing test login remains &lt;code&gt;demo@qapybara.dev&lt;/code&gt; / &lt;code&gt;Demo1234!&lt;/code&gt;. You can also create and sign into local accounts. Passwords are stored as salted SHA-256 digests; this local implementation does not provide server authentication or cross-device sync.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Website parity&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Source: &lt;code&gt;/home/shahid/codes/hackathons/qapybara-store-web&lt;/code&gt;, commits &lt;code&gt;7d6379a&lt;/code&gt; and &lt;code&gt;8e86a75&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;lib/catalog.ts&lt;/code&gt;, &lt;code&gt;lib/pricing.ts&lt;/code&gt;, &lt;code&gt;lib/schema.ts&lt;/code&gt; and &lt;code&gt;design/tokens.ts&lt;/code&gt; are byte-identical copies.&lt;/li&gt;
&lt;li&gt;All 38 &lt;code&gt;public/images/*.webp&lt;/code&gt; files are copied unchanged into &lt;code&gt;assets/products&lt;/code&gt;. &lt;code&gt;lib/images.ts&lt;/code&gt; maps their website paths to bundled native modules. Login uses…&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/parth-lightning/qapybara-store-app" 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;ol&gt;
&lt;li&gt;Dynamic Agent Teams on the Eve Framework
Many agent workflows use rigid, hardcoded pipelines (Explorer ➔ Tester ➔ Reporter). QApybara is built on the open-source Eve agent harness and decides its team dynamically:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a small one-line PR, the main agent handles the check alone.&lt;br&gt;
For a multi-component feature touching database schemas, APIs, and UIs, the main agent spawns an Explorer to map touched routes, spins up multiple Testers in parallel (one per critical journey), and terminates with a Reporter to synthesize the report.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Real Android Automation &amp;amp; 3.2x Batch Tool Calling&lt;br&gt;
Most AI testing agents stop at the browser. QApybara drives real Android phones connected via USB. Rather than making a slow roundtrip to the model for every single tap or swipe, QApybara implements programmatic batch tool calling through MCP. The model generates batch sequences that execute in one go on the phone, speeding up Artemis execution by over 3.2x.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Proof, Not Vibes (The Deterministic Proof Gate)&lt;br&gt;
An LLM claiming "Everything looks good!" is useless if it missed a broken submit button. In QApybara, code — not the AI — enforces the verdict:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No screenshot or video trace? No pass.&lt;br&gt;
Unaddressed console errors or HTTP 500s? No pass.&lt;br&gt;
Critical configured flow skipped? Run marked as "QA Incomplete".&lt;br&gt;
Passing journeys are compiled into reusable Playwright (.spec.ts) and Maestro (.yaml) test scripts, ensuring you gain permanent automated regression tests without writing boilerplate.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Rewarding Laziness: Zero-Dashboard Setup
Even setting up QA should be effortless. Running npx qapybara init wires the QApybara MCP server and setup skills directly into your local coding agent (Claude Code or Codex). You simply say: "Set this repo up for QApybara". Your coding agent inspects your repository, configures build and start commands, pushes encrypted env variables, and executes a dry-run test on the QA host until it passes.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where Open Source AI Fits In?
&lt;/h2&gt;

&lt;p&gt;QApybara is built around open-weight models and open protocols:&lt;/p&gt;

&lt;p&gt;Open-Weight Model Backbone: Powered through any OpenAI-compatible runner (such as Moonshot Kimi, Qwen 2.5, or Llama 3 via vLLM/Ollama/OpenRouter). Swapping models or providers is a simple environment variable toggle (QA_MODEL_ID), requiring zero code changes.&lt;br&gt;
Role-Based Model Specialization: You can route different roles to different open-weight models:&lt;br&gt;
Deep reasoning open models for the Explorer to map subtle test cases.&lt;br&gt;
Fast, low-latency open models for the parallel Testers executing UI actions.&lt;br&gt;
Local Simulation Mode (QA_MODEL=sim): For complete offline testing, local CI, and testing the agent tree without an internet connection or API keys, QApybara includes a fully deterministic scripted simulation harness.&lt;br&gt;
Model Context Protocol (MCP): Built on Anthropic's open MCP specification, enabling standardized communication between the QA host, coding agents, and the interactive embedded MCP App report viewer (ui://qapybara/qa-run.html).&lt;/p&gt;

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

&lt;p&gt;Testing real applications involves pre-release code, sensitive staging environment credentials, internal databases, unreleased Android APKs, and proprietary business logic.&lt;/p&gt;

&lt;p&gt;Here is why an open approach beats closed proprietary QA services:&lt;/p&gt;

&lt;p&gt;Data Privacy &amp;amp; Zero Cloud Leakage: Proprietary cloud QA services require handing over full repository write tokens, internal staging URLs, database credentials, and APK binaries to third-party servers. With QApybara, open-weight models and self-hosted agents can run entirely on a local machine or a dedicated office laptop (like an old ThinkPad with an Android phone plugged in). Secrets are encrypted with local keys, and unreleased APKs never touch a third-party cloud.&lt;br&gt;
Zero SaaS Tax / Costs Nothing to Run: Closed QA platforms charge steep per-seat monthly fees or price-gouge per browser minute. By running open-weight models on your own hardware or through cost-effective open endpoints, continuous PR testing costs virtually nothing.&lt;br&gt;
Model Freedom &amp;amp; Future-Proofing: Closed platforms lock you into their specific model version and pricing whims. With an open architecture, you can swap models, run quantized models locally on an edge workstation, or fine-tune an open-weight model specifically on your application's design system and terminology.&lt;/p&gt;

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

&lt;p&gt;Before QApybara, manually verifying a non-trivial pull request was a 45-minute chore nobody wanted to do:&lt;/p&gt;

&lt;p&gt;Pulling the branch and starting the dev server or downloading and adb install-ing the latest APK build on a phone.&lt;br&gt;
Manually clicking through 8 different user journeys (signing up, typing credentials, testing search cases, adding items to the cart, applying coupons, checking order history).&lt;br&gt;
Keeping devtools open to watch for silent 4xx/5xx network errors and scanning adb logcat for hidden Android ANRs.&lt;br&gt;
Typing out a bug report by hand with screenshots when something inevitably broke.&lt;br&gt;
Writing end-to-end Playwright or Maestro test scripts from scratch so the bug doesn't happen again.&lt;br&gt;
With QApybara, the "lazy payoff" is real:&lt;/p&gt;

&lt;p&gt;~3 Hours Saved Per PR: Instead of context-switching away from coding to babysit staging deployments and manual test clicks, we just label the PR qa and walk away.&lt;br&gt;
Zero Test-Writing Effort: Because QApybara automatically converts passing runs into deterministic Playwright (.spec.ts) and Maestro (.yaml) test scripts, our regression test suite grows without us writing a single line of test code by hand.&lt;br&gt;
Used Live This Week: We ran QApybara against our benchmark store with 10 tricky planted bugs (like coupon double-application and silent signup errors). While we grabbed coffee, QApybara's autonomous agent team ran in parallel, caught all 10 bugs, recorded every screen video, captured the HTTP 500 traces, and posted clean reproduction steps back to our PR thread.&lt;br&gt;
Total developer effort required: typing qa. That's true sloth-level productivity.&lt;/p&gt;

&lt;p&gt;Solo submission by &lt;a class="mentioned-user" href="https://dev.to/parthlightning"&gt;@parthlightning&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>automation</category>
    </item>
    <item>
      <title>VITRide: A ride sharing Flutter Prototype with H3 and a Gemma Matching Roadmap for VIT Pune Students</title>
      <dc:creator>Parth Patil</dc:creator>
      <pubDate>Mon, 19 Oct 2026 05:01:20 +0000</pubDate>
      <link>https://dev.to/parthlightning/vitride-a-ride-sharing-flutter-prototype-with-h3-and-a-gemma-matching-roadmap-for-vit-pune-students-42b3</link>
      <guid>https://dev.to/parthlightning/vitride-a-ride-sharing-flutter-prototype-with-h3-and-a-gemma-matching-roadmap-for-vit-pune-students-42b3</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;I built a Flutter-based student ride-sharing prototype that covers the core journey of requesting a ride. Students can choose a destination, preview a route, compare ride categories and estimated fares, view nearby vehicles on a map, and request a ride.&lt;/p&gt;

&lt;p&gt;The goal is to explore how spatial indexing and AI-assisted preferences could make student ride-sharing more practical. The project includes an H3-based spatial layer as a starting point for finding geographically nearby candidates.&lt;/p&gt;

&lt;p&gt;The app is currently a prototype, not a live ride-sharing service. Nearby vehicles are synthetic, ride requests use a predefined driver assignment after a short delay, and there is no backend, real-time driver dispatch, student verification, or shared-ride matching yet.&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%2Fxjmwm5n5nl71hoc8psj5.jpeg" 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%2Fxjmwm5n5nl71hoc8psj5.jpeg" alt=" " width="738" height="1600"&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%2Frhbaefyc2n5kb9bs3zdb.jpeg" 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%2Frhbaefyc2n5kb9bs3zdb.jpeg" alt=" " width="738" height="1600"&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%2F2qleuun752d6eqduacl9.jpeg" 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%2F2qleuun752d6eqduacl9.jpeg" alt=" " width="738" height="1600"&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/parth-lightning" rel="noopener noreferrer"&gt;
        parth-lightning
      &lt;/a&gt; / &lt;a href="https://github.com/parth-lightning/HacktoberFest-Week-2" rel="noopener noreferrer"&gt;
        HacktoberFest-Week-2
      &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;Student Ride-Sharing Prototype&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A Flutter prototype exploring a student ride-sharing experience. It demonstrates a map-based trip flow: choose a destination, preview a route, compare ride categories and estimated fares, and request a ride.&lt;/p&gt;
&lt;p&gt;This is a completed prototype, not a live ride service. Nearby vehicles are synthetic, and ride requests use a simulated dispatch flow that assigns a predefined driver after a short delay. The app has no backend, live driver dispatch, student verification, or shared-ride matching.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Custom Flutter vector map with synthetic nearby vehicles and route visualization.&lt;/li&gt;
&lt;li&gt;Destination selection and generated route previews with distance and duration estimates.&lt;/li&gt;
&lt;li&gt;Ride category selection and fare estimates.&lt;/li&gt;
&lt;li&gt;A simulated ride-request and driver-assignment flow.&lt;/li&gt;
&lt;li&gt;A pure Dart H3-style spatial indexing implementation, with an optional map grid visualization.&lt;/li&gt;
&lt;li&gt;Prototype security-status and device-audit UI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The route geometry, vehicle positions, traffic segments, fares, surge values, and driver details are illustrative prototype data. They should not…&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/parth-lightning/HacktoberFest-Week-2" 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 focused on building the ride flow first, so the prototype demonstrates how a student would interact with a ride-sharing application before introducing the complexity of a live backend.&lt;/p&gt;

&lt;p&gt;The app brings together destination selection, route visualization, ride-category comparison, fare estimation, nearby vehicle markers, and ride requests. The spatial indexing layer provides a foundation for organizing geographic data and identifying potential candidates efficiently.&lt;/p&gt;

&lt;p&gt;The next development phase is to replace simulated assignments with a backend that manages students, available rides, routes, departure times, and seat availability. A deterministic matching service could then evaluate location proximity, route overlap, timing compatibility, and available seats.&lt;/p&gt;

&lt;p&gt;Where Does Gemma Fit?&lt;/p&gt;

&lt;p&gt;For example, a student could enter a request in natural language:&lt;/p&gt;

&lt;p&gt;“I need a ride to college around 8:30 AM, and I can take a small detour if it reduces the cost.”&lt;/p&gt;

&lt;p&gt;A Gemma-powered component could interpret this request and convert it into structured preferences, such as the desired departure window and acceptable detour. A separate matching service would then evaluate candidate rides against explicit rules for location, route overlap, timing, and seat availability.&lt;/p&gt;

&lt;p&gt;Gemma could also explain why a ride is compatible with a student's preferences. However, the actual matching and dispatch decisions should remain deterministic, testable, and independent of the language model.&lt;/p&gt;

&lt;p&gt;This separation would make AI useful without giving it unchecked control over ride assignments.&lt;/p&gt;

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

&lt;p&gt;Student ride-sharing involves potentially sensitive information, including travel routes, schedules, and location data. Open-weight models such as Gemma offer an opportunity to explore local inference, where supported, instead of relying entirely on a hosted AI service.&lt;/p&gt;

&lt;p&gt;This could provide greater control over how ride preferences are processed and where that information is sent. However, local inference is a future direction for this project, not a feature of the current prototype.&lt;/p&gt;

&lt;p&gt;A real deployment would also require appropriate consent, location-data minimization, secure storage, student verification, and thorough testing of the matching system. Using an open-weight model alone does not guarantee privacy or security.&lt;/p&gt;

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

&lt;p&gt;My first user being my friends from college who found the idea highly useful and recommended a lot of things in order to make the application helpful for everyone.&lt;/p&gt;

&lt;p&gt;Solo submission by &lt;a class="mentioned-user" href="https://dev.to/parthlightning"&gt;@parthlightning&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>flutter</category>
    </item>
    <item>
      <title>WildPack: A Local-First Trail Guide with Gemma</title>
      <dc:creator>Parth Patil</dc:creator>
      <pubDate>Mon, 12 Oct 2026 04:35:19 +0000</pubDate>
      <link>https://dev.to/parthlightning/wildpack-a-local-first-trail-guide-with-gemma-moa</link>
      <guid>https://dev.to/parthlightning/wildpack-a-local-first-trail-guide-with-gemma-moa</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;WildPack is a local-first trail-guide prototype for hikers and curious naturalists. It brings an imported region pack, trail notes, and pack-grounded questions together in a browser app, with GPX route replay and optional browser geolocation.&lt;/p&gt;

&lt;p&gt;The goal is to make a phone or laptop more useful outdoors—not to keep someone scrolling. The app stores packs and observations in the browser, and the local AI path can answer questions without sending them to a hosted model. The app is still a prototype: its bundled route and nature text are synthetic examples, not verified trail or species information.&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%2Fq4m8knawuao5gn9dsk26.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%2Fq4m8knawuao5gn9dsk26.png" alt=" " width="800" height="421"&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%2Fa8r8kwwban9an2ca0w0q.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%2Fa8r8kwwban9an2ca0w0q.png" alt=" " width="800" height="423"&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%2Fsuk0clm7rsxz3qe9jc4v.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%2Fsuk0clm7rsxz3qe9jc4v.png" alt=" " width="800" height="424"&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%2Ftfx7n9nwjv8wine4epqy.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%2Ftfx7n9nwjv8wine4epqy.png" alt=" " width="800" height="419"&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%2F3msu8zhzgvvlv1vbpcna.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%2F3msu8zhzgvvlv1vbpcna.png" alt=" " width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;WildPack on GitHub.&lt;br&gt;
&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/parth-lightning" rel="noopener noreferrer"&gt;
        parth-lightning
      &lt;/a&gt; / &lt;a href="https://github.com/parth-lightning/Hacktoberfest-Week1-Challenge" rel="noopener noreferrer"&gt;
        Hacktoberfest-Week1-Challenge
      &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;WildPack&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;WildPack is a desktop-first, local-first trail-guide prototype. It stores imported
&lt;code&gt;.wildpack&lt;/code&gt; files and observations in this browser, can replay synthetic GPX
routes, and can use Ollama on the same computer for pack-grounded questions
The bundled demo route and its natural-history text are synthetic: they are not
a real trail, species record, or source of outdoor-safety advice.&lt;/p&gt;
&lt;p&gt;The implementation follows the accompanying
&lt;a href="https://github.com/parth-lightning/Hacktoberfest-Week1-Challenge/./WildPack%20Software%20Requirements%20Specification.md" rel="noopener noreferrer"&gt;Software Requirements Specification&lt;/a&gt;
but not every phase or acceptance criterion is complete. The current status and
limitations are listed in the &lt;a href="https://github.com/parth-lightning/Hacktoberfest-Week1-Challenge/./docs/phase-status.md" rel="noopener noreferrer"&gt;phase-status checklist&lt;/a&gt;.
DigitalOcean is not required for the local prototype.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Run the laptop prototype&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Requirements: Node.js 20.19+ or 22.12+, npm, and (for local model features)
&lt;a href="https://ollama.com/" rel="nofollow noopener noreferrer"&gt;Ollama&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install
ollama pull gemma3:4b
ollama pull embeddinggemma
npm run dev:all&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Open &lt;code&gt;http://localhost:5173&lt;/code&gt;. &lt;code&gt;dev:all&lt;/code&gt; starts Vite on port 5173 and the Express
API on port 3001. The app can load its synthetic demo pack without credentials
Local…&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/parth-lightning/Hacktoberfest-Week1-Challenge" 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;WildPack uses React, TypeScript, and Vite for the frontend, with an Express API for local model calls. Imported packs and observations are stored in browser storage, and a service worker provides an app shell and caches same-origin resources.&lt;/p&gt;

&lt;p&gt;For AI, I used Gemma 3 4B through Ollama for local model features and EmbeddingGemma for embeddings and retrieval. The intent is to keep questions and location data on the user’s machine rather than depend on a hosted inference service.&lt;/p&gt;

&lt;p&gt;I also added an ElevenLabs integration path for narration generation in the pack builder. I didn’t generate or test a voiced pack for this prototype, so narration should be treated as an unverified capability—not as part of the demo.&lt;/p&gt;

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

&lt;p&gt;Open-weight models and local inference let this prototype explore a useful trade-off: AI features can be available without sending a hiker’s question or location to a hosted model provider. They also make it possible to experiment on modest local infrastructure rather than requiring a cloud account.&lt;/p&gt;

&lt;p&gt;That matters for an outdoor guide, where connectivity can be limited and location is sensitive. The current app’s pack storage and GPX replay work locally; offline model inference and real-world field use still need further testing.&lt;/p&gt;

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

&lt;p&gt;Gemma: WildPack uses Gemma 3 4B locally through Ollama for pack-grounded questions, with EmbeddingGemma for retrieval.&lt;/p&gt;

&lt;p&gt;ElevenLabs: The pack builder includes an ElevenLabs narration-generation integration. I did not generate or test narrated audio for this prototype, so please confirm this qualifies for the category before submitting.&lt;/p&gt;

&lt;p&gt;Solo submission by &lt;a class="mentioned-user" href="https://dev.to/parthlightning"&gt;@parthlightning&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Beacon: Turning inspection reports into work orders</title>
      <dc:creator>Parth Patil</dc:creator>
      <pubDate>Mon, 05 Oct 2026 06:33:55 +0000</pubDate>
      <link>https://dev.to/parthlightning/beacon-turning-inspection-reports-into-work-orders-8j1</link>
      <guid>https://dev.to/parthlightning/beacon-turning-inspection-reports-into-work-orders-8j1</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 'Beacon' around a problem a friend of mine who just got placed in machinery plant maintenance could run into: inspection findings arrive in a PDF, but someone still has to turn them into a useful follow-up.&lt;/p&gt;

&lt;p&gt;Beacon can read an inspection report, extract its findings, and use browser control to prepare a work order in a separate maintenance app. It asks the operator before submitting, then checks the saved work order. The maintenance app uses synthetic data and runs locally. It’s a working demo, not software connected to a real plant.&lt;/p&gt;

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

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

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

&lt;p&gt;&lt;a href="https://github.com/parth-lightning/Beacon" rel="noopener noreferrer"&gt;Beacon on Github&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Beacon’s chat app uses Next.js, React, and TypeScript. The agent runs on Eve, with a separate Eve session and workspace for each chat. I use the Vercel AI SDK and its OpenAI and OpenAI-compatible provider packages to connect the agent to models.&lt;/p&gt;

&lt;p&gt;For the open-weight model path, Beacon connects to a self-hosted Qwen 3.8 27B Max endpoint. The model picker also offers hosted models through OpenCode Go. For inspection PDFs, the agent sends the document to a private PaddleOCR-VL service, then uses the extracted findings as evidence when preparing the work order.&lt;/p&gt;

&lt;p&gt;The app and agent runtime can run on a local machine with Bun. To run inference locally too, point QWEN_BASE_URL at a local server that exposes an OpenAI-compatible API and serves the Qwen model. For a fully local document workflow, the OCR service must also run locally, and you should choose the Qwen endpoint rather than a hosted model.&lt;/p&gt;

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

&lt;p&gt;The open-weight model gives me a choice about where inference runs. I can use a hosted model while building, or run Qwen behind an endpoint I control. The OpenAI-compatible interface lets Beacon connect to that endpoint without tying its agent code to one model provider.&lt;/p&gt;

&lt;p&gt;That matters for inspection documents. If the model and OCR services run locally, the report can stay on the operator’s machine. The current setup also supports hosted models, so local processing depends on configuring local endpoints and selecting them.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of GitHub Copilot:&lt;/strong&gt; The most useful thing GitHub Copilot did was help me turn Beacon from an idea into a working end-to-end project. It helped me connect the chat app, Eve agent, model providers, inspection-report parsing, and browser control into one workflow. The part I found most valuable was shaping and testing the handoff from a report’s findings to a work order, with the agent asking for approval before submitting and checking that the order was saved afterward. Copilot sped up the implementation, but I still had to make the product decisions and verify the pieces worked together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solo Submission by &lt;a class="mentioned-user" href="https://dev.to/parthlightning"&gt;@parthlightning&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

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