<?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: Priyanshu Gupta</title>
    <description>The latest articles on DEV Community by Priyanshu Gupta (@priyanshu_gupta_26).</description>
    <link>https://dev.to/priyanshu_gupta_26</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%2F4171875%2F93a384ad-9099-491e-8981-79a2cbdd4190.png</url>
      <title>DEV Community: Priyanshu Gupta</title>
      <link>https://dev.to/priyanshu_gupta_26</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/priyanshu_gupta_26"/>
    <language>en</language>
    <item>
      <title>DawnPatch: Let Your Laptop Reproduce the Bug Before You Touch the Code</title>
      <dc:creator>Priyanshu Gupta</dc:creator>
      <pubDate>Fri, 23 Oct 2026 07:51:05 +0000</pubDate>
      <link>https://dev.to/priyanshu_gupta_26/dawnpatch-let-your-laptop-reproduce-the-bug-before-you-touch-the-code-51hi</link>
      <guid>https://dev.to/priyanshu_gupta_26/dawnpatch-let-your-laptop-reproduce-the-bug-before-you-touch-the-code-51hi</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;The part of fixing a website bug that I keep putting off is getting everything into one place: the reproduction steps, the failing screen, the relevant source, the proposed change, and proof that it helped.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;DawnPatch&lt;/strong&gt;, a local maintainer workbench that turns that process into a reviewable investigation.&lt;/p&gt;

&lt;p&gt;Give it an authorized local repository, an issue, and browser steps with assertions. DawnPatch reproduces the behavior in Chromium, captures evidence, asks a local Gemma model for a small source change, and tests the candidate in a separate source copy. The maintainer gets a report, a diff, and the results of replaying the same checks.&lt;/p&gt;

&lt;p&gt;Its rule is simple: &lt;strong&gt;a proposed repair has to earn its passing result.&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%2F2p8mw881l8vl8sxtp5ye.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%2F2p8mw881l8vl8sxtp5ye.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The desktop workbench: a quiet place to queue investigations and review their evidence.*&lt;/p&gt;

&lt;p&gt;The workbench includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An investigation queue with visible stages and recorded activity.&lt;/li&gt;
&lt;li&gt;Real browser reproduction, screenshots, and downloadable Playwright traces.&lt;/li&gt;
&lt;li&gt;Local Gemma analysis through a typed Mastra workflow.&lt;/li&gt;
&lt;li&gt;Bounded source edits with exact-match validation and rejection of unchanged proposals.&lt;/li&gt;
&lt;li&gt;Separate baseline and candidate workspaces, with build checks and browser replay.&lt;/li&gt;
&lt;li&gt;Evidence comparison, source diffs, reports, and patch exports.&lt;/li&gt;
&lt;li&gt;An explicit developer-correction path when the model needs help.&lt;/li&gt;
&lt;li&gt;Daily schedules, a morning brief, and Temporal workflows with worker-failure recovery.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interface takes inspiration from instrument panels: dark surfaces, fine dividers, readable typography, and status information you can inspect. I wanted the work to be visible while a small local model takes its time.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/6MC6XOIzUgU" rel="noopener noreferrer"&gt;Watch the narrated desktop demonstration — approximately 3 minutes 15 seconds&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DawnPatch runs locally; the video shows the actual website UI rather than a hosted application.&lt;/p&gt;

&lt;p&gt;For the demonstration, I used my &lt;a href="https://github.com/priy-anshugupta/sketchwild" rel="noopener noreferrer"&gt;SketchWild repository&lt;/a&gt; as the target. In an isolated test checkout, I deliberately reversed its mission-duration comparison. Selecting “Up to 5 minutes” then returned six missions instead of the expected one. This was a controlled regression for evaluating DawnPatch, not a newly discovered upstream bug.&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%2Fndf28r6zrxuakw923xei.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%2Fndf28r6zrxuakw923xei.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Before: the five-minute filter incorrectly includes longer missions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;DawnPatch reproduced that failure. Gemma 3:4b did not produce a successful repair in the recorded investigation, so I supplied the exact correction through the developer-correction form. DawnPatch labels that origin explicitly, builds a separate candidate, and independently replays the browser steps.&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%2Fg8gf40btpyao0zne2j6x.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%2Fg8gf40btpyao0zne2j6x.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;After the developer-assisted correction: only the expected five-minute mission remains.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The complete replay checks more than that first screen: twenty minutes must show all six missions, and the courtyard filter must still show four. All eight recorded steps passed for the corrected candidate.&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%2Fkya1nd1uz5up8js6uc3g.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%2Fkya1nd1uz5up8js6uc3g.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Verification covers the failing baseline, an isolated build, and replay against the candidate.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I also tested the healthy upstream revision. It passed the checks and finished without a patch. A passing website should not get a speculative “repair.”&lt;/p&gt;

&lt;p&gt;Long inference waits and recording setup are cut from the video. The narration preserves the outcome: &lt;strong&gt;this is a developer-assisted repair with automated verification, not a successful autonomous Gemma repair.&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Repository: &lt;a href="https://github.com/priy-anshugupta/DawnPatch" rel="noopener noreferrer"&gt;priy-anshugupta/DawnPatch&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository includes the application, setup instructions, automated checks, test evidence, and demo documentation. DawnPatch is MIT-licensed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/priy-anshugupta/DawnPatch/blob/main/docs/SKETCHWILD_TEST_REPORT.md" rel="noopener noreferrer"&gt;Detailed SketchWild test report&lt;/a&gt; · &lt;a href="https://github.com/priy-anshugupta/DawnPatch/blob/main/docs/demo/VIDEO_NOTES.md" rel="noopener noreferrer"&gt;Demo notes&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The frontend uses &lt;strong&gt;React, TypeScript, and Vite&lt;/strong&gt;. A local &lt;strong&gt;Express&lt;/strong&gt; API coordinates investigations, while &lt;strong&gt;SQLite&lt;/strong&gt; stores runs, ordered events, schedules, and checkpoints.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ollama runs the open-weight Gemma 3:4b model locally.&lt;/strong&gt; A Mastra workflow gathers a bounded selection of relevant source and asks for structured analysis and exact edits. The model's output is treated as a proposal that still needs validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Playwright and Chromium provide the behavioral evidence.&lt;/strong&gt; Baseline and candidate use the same reproduction steps and assertions. For the SketchWild repository test, Docker builds and serves an isolated candidate; the original target repository is left unchanged.&lt;/p&gt;

&lt;p&gt;The workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Prepare an isolated source copy.&lt;/li&gt;
&lt;li&gt;Reproduce a failing behavioral assertion and save its evidence.&lt;/li&gt;
&lt;li&gt;Gather relevant source and request a bounded model proposal.&lt;/li&gt;
&lt;li&gt;Validate exact edits and build the candidate.&lt;/li&gt;
&lt;li&gt;Replay the same browser checks.&lt;/li&gt;
&lt;li&gt;Present the evidence and diff for human review.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;&lt;em&gt;The reviewed change restores the maximum-duration comparison; its developer-assisted origin remains visible.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;One useful failure happened before the final recording: a model proposal used equality instead of a maximum-duration comparison. It satisfied the five-minute case but failed the twenty-minute check. DawnPatch kept the failed result instead of calling it verified. That test made the extra assertion worth having.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Temporal powers the durable workflow backend.&lt;/strong&gt; I tested worker-failure recovery by terminating and restarting a worker during an investigation. The same investigation completed with its captured baseline preserved. The &lt;a href="https://github.com/priy-anshugupta/DawnPatch/blob/main/docs/evidence/temporal-recovery.json" rel="noopener noreferrer"&gt;recovery evidence&lt;/a&gt; records the run and stage events. This test used a known fixture repair; the SketchWild video uses the local SQLite queue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SerpApi&lt;/strong&gt; provides optional documentation discovery. Search results are labeled as discovery snippets, and search was disabled for the recorded SketchWild investigation. &lt;strong&gt;GitHub Actions&lt;/strong&gt; automates repository verification with a &lt;a href="https://github.com/priy-anshugupta/DawnPatch/actions/runs/39769781939" rel="noopener noreferrer"&gt;public successful workflow run&lt;/a&gt;. &lt;strong&gt;ElevenLabs&lt;/strong&gt; generated the demo narration; it is a production tool for the video, not a dependency of the repair pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sentry&lt;/strong&gt; instrumentation covers investigation stages, model spans, and errors with redaction of sensitive data. I also installed and configured &lt;strong&gt;Entire&lt;/strong&gt; for Codex development-session capture. The current submission does not include a verified shareable Entire recording or a Sentry dashboard trace, so these setup details are not presented as completed prize-category evidence.&lt;/p&gt;

&lt;p&gt;For the latest local build, &lt;strong&gt;11 core/transport tests and 7 browser tests passed&lt;/strong&gt;, alongside TypeScript checking and the production build. Those checks cover edit validation, cancellation, correction provenance, replay, connection recovery, and desktop review flows. They do not establish that the model can autonomously fix arbitrary bugs.&lt;/p&gt;

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

&lt;p&gt;Running Gemma locally lets me experiment with the agent while keeping model inference on my own machine. I can change the context budget, inspect the structured output, adjust the prompts, and choose a different installed model without rebuilding the browser-verification pipeline around a particular hosted provider.&lt;/p&gt;

&lt;p&gt;That flexibility mattered during this build. A small model on a laptop was slow and sometimes wrong. Being able to inspect its proposals helped me improve filename grounding, reject no-change edits, and preserve a useful human-correction path.&lt;/p&gt;

&lt;p&gt;Ollama, Mastra, Playwright, and Temporal also make the workflow inspectable. Contributors can examine how a source file was selected, why an edit was rejected, and which browser assertion failed.&lt;/p&gt;

&lt;p&gt;A closed API could power a similar tool. The benefit here is control over the inference runtime and the workflow around it. Optional search, telemetry, GitHub publication, and narration services still need network access; local inference does not make every integration offline.&lt;/p&gt;

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

&lt;p&gt;I used DawnPatch this week to run the controlled SketchWild regression through reproduction, correction, and verification.&lt;/p&gt;

&lt;p&gt;The payoff is fewer repeated steps: the browser records the failing behavior, the candidate gets its own build, the same assertions run again, and the report keeps the diff beside the evidence. I can spend my attention reviewing the result instead of assembling that evidence by hand.&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%2Fyacc4zbn04hrxwjcw025.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%2Fyacc4zbn04hrxwjcw025.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The handoff: observed behavior, repair provenance, verification, and the next review action.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I have not measured a reliable time-saving percentage yet. The demonstrated benefit is repeatable evidence collection and a clearer review handoff, even when the model needs help.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitoring and Debugging with Sentry
&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%2F7bsp7uakg359megfht9g.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%2F7bsp7uakg359megfht9g.png" alt=" " width="800" height="379"&gt;&lt;/a&gt;&lt;br&gt;
Prize Categories&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — local Gemma 3:4b analysis and bounded patch proposals through Ollama.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Mastra&lt;/strong&gt; — typed context-gathering and model-analysis workflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Temporal&lt;/strong&gt; — durable investigation workflows with tested worker-failure recovery and preservation of the captured baseline. &lt;a href="https://github.com/priy-anshugupta/DawnPatch/blob/main/docs/evidence/temporal-recovery.json" rel="noopener noreferrer"&gt;Recovery evidence&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of SerpApi&lt;/strong&gt; — opt-in live documentation discovery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of GitHub Copilot&lt;/strong&gt; — GitHub Actions automation for repository verification. &lt;a href="https://github.com/priy-anshugupta/DawnPatch/actions/runs/39769781939" rel="noopener noreferrer"&gt;Successful workflow run&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of ElevenLabs&lt;/strong&gt; — generated English narration for the demonstration video.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Entire&lt;/strong&gt; — Entire CLI installed and configured for Codex development-session capture and checkpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Sentry Agent Tracing&lt;/strong&gt; — DawnPatch includes instrumentation for investigation stages and model calls, error capture, and sensitive-value redaction. The screenshots show received testing errors and the &lt;code&gt;dawnpatch.check&lt;/code&gt; connection trace. Model-call traces and token metrics are not yet verified in the dashboard.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>SketchWild: Draw Outside,Look Closer</title>
      <dc:creator>Priyanshu Gupta</dc:creator>
      <pubDate>Sat, 10 Oct 2026 05:39:23 +0000</pubDate>
      <link>https://dev.to/priyanshu_gupta_26/sketchwild-draw-outsidelook-closer-21k1</link>
      <guid>https://dev.to/priyanshu_gupta_26/sketchwild-draw-outsidelook-closer-21k1</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;SketchWild is an outdoor sketching companion that helps you slow down, draw on paper, and notice more of the world around you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sometimes, “go outside” is too vague. You reach a park or garden, but still don’t know what to do. SketchWild gives you a small, concrete exercise: study a leaf’s edge, follow the overlap of flower petals, or sketch the empty spaces between tree branches.&lt;/p&gt;

&lt;p&gt;You don’t need to be an artist. A nearby flower, a balcony plant, or a rock beside a path is enough. The aim is to pay attention, rather than produce a perfect picture.&lt;/p&gt;

&lt;p&gt;After drawing, upload a photograph of your subject alongside a photograph of your paper sketch. &lt;strong&gt;Gemma 3, running locally through Ollama, compares the pictures and offers one detail to explore.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can then return to the real subject, add a small drawing or annotation, and record what you noticed in your journal. The model supports the observation; your pencil and the real world remain at the centre of the experience.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Choose a mission. Draw outside. Look again. Keep your discovery.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;SketchWild is for beginners who need a starting point, nature journalers who enjoy recording details, and people looking for a short outdoor break.&lt;/p&gt;

&lt;h3&gt;
  
  
  What you can do
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Choose a subject:&lt;/strong&gt; Leaves, flowers, trees, bark, rocks, or outdoor scenes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Take an outdoor mission:&lt;/strong&gt; Six exercises exploring shapes, overlap, texture, light, negative space, and depth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make it fit your day:&lt;/strong&gt; Filter missions by place and available time, or print the instructions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get a second-look invitation:&lt;/strong&gt; Compare your subject and sketch using local Gemma.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep a field journal:&lt;/strong&gt; Save reflections and follow-up drawings, revisit studies, and export a ZIP backup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collect Field Passport stamps:&lt;/strong&gt; Record self-reported outdoor participation without grading your art.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The screen provides a starting point and a moment of reflection. The drawing happens on paper, outside.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  🌐 Public Website
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://sketchwild.onrender.com/" rel="noopener noreferrer"&gt;Open SketchWild →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Explore outdoor missions, upload pictures, save reflections, and try the journal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live model inference is disabled in the public preview.&lt;/strong&gt; The site clearly links to local setup instructions, the video walkthrough, and a labelled feedback example.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/K3OrR_PUB0c" rel="noopener noreferrer"&gt;Watch SketchWild on YouTube →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The walkthrough shows the sketching flow and a &lt;strong&gt;live Gemma comparison running locally through Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The uploaded pictures are generated samples used to demonstrate the workflow. The processing wait is shortened in the edit; this is not an outdoor participant trial.&lt;/p&gt;

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

&lt;p&gt;The complete application and local setup instructions are available on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/priy-anshugupta/sketchwild" rel="noopener noreferrer"&gt;View the SketchWild repository →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Application code is MIT licensed. Model weights and dependencies retain their own terms.&lt;/p&gt;

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

&lt;p&gt;I built SketchWild around two connected experiences: a guided outdoor sketching workflow and a local vision-model comparison.&lt;/p&gt;

&lt;p&gt;The interface uses &lt;strong&gt;React and TypeScript&lt;/strong&gt;. An &lt;strong&gt;Express backend&lt;/strong&gt; prepares the uploaded pictures, calls &lt;strong&gt;Gemma 3 through Ollama&lt;/strong&gt;, and checks the response before displaying it.&lt;/p&gt;

&lt;p&gt;Missions, journal storage, and passport progress use ordinary application logic. The model compares the two pictures and suggests an observation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React 19, TypeScript, Vite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Styling&lt;/td&gt;
&lt;td&gt;Custom responsive CSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Icons&lt;/td&gt;
&lt;td&gt;Lucide&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Node.js, Express&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local vision model&lt;/td&gt;
&lt;td&gt;Gemma 3 4B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model runtime&lt;/td&gt;
&lt;td&gt;Ollama&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image processing&lt;/td&gt;
&lt;td&gt;Browser normalization, Sharp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Response validation&lt;/td&gt;
&lt;td&gt;Zod&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Journal storage&lt;/td&gt;
&lt;td&gt;IndexedDB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ZIP export&lt;/td&gt;
&lt;td&gt;fflate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Public hosting&lt;/td&gt;
&lt;td&gt;Render&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Demo narration&lt;/td&gt;
&lt;td&gt;ElevenLabs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  System Architecture
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Local version — live Gemma feedback&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser: React interface
Missions · uploads · reflections
            │
            ├── IndexedDB
            │   Drafts · pictures · journal
            │
            ▼
Local Express API
Validate and prepare both pictures
            │
            ▼
Ollama → Gemma 3 4B
Compare subject and paper sketch
            │
            ▼
Express validates the response
            │
            ▼
Browser displays the coaching card
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Public preview — hosted on Render&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Visitor's browser
            │
            ▼
Render: Express serves the React app
            │
            ▼
Missions · uploads · reflections
            │
            ▼
Journal saved in the visitor's IndexedDB

Live inference: disabled
Links: local setup · walkthrough · example
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The public website does not automatically connect to a visitor’s Ollama installation. Live coaching requires running the application and model locally.&lt;/p&gt;

&lt;h3&gt;
  
  
  How the comparison works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The user uploads the subject photograph and paper sketch.&lt;/li&gt;
&lt;li&gt;The backend validates and prepares both images.&lt;/li&gt;
&lt;li&gt;Ollama passes the pair to Gemma with explicit subject/drawing labels.&lt;/li&gt;
&lt;li&gt;The prompt asks for visible evidence from both pictures and one respectful observation.&lt;/li&gt;
&lt;li&gt;The backend validates the response before showing the coaching card.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Unclear pictures can produce uncertainty or a retake request. Failed requests show an error rather than silently substituting example feedback.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I learned
&lt;/h3&gt;

&lt;p&gt;Local CPU inference takes patience. One recorded sample comparison took approximately &lt;strong&gt;146 seconds&lt;/strong&gt; on my laptop.&lt;/p&gt;

&lt;p&gt;I added elapsed-time feedback, cancellation, draft persistence, and an option to save without model feedback.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;GitHub Copilot review&lt;/strong&gt; identified confusing preview wording and missing accessible dialog title associations. Both findings were checked and corrected.&lt;/p&gt;

&lt;p&gt;The current build passes &lt;strong&gt;17 automated tests&lt;/strong&gt;, TypeScript checking, and the production build. These checks verify application behavior, not visual accuracy.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Pictures can stay on your computer
&lt;/h3&gt;

&lt;p&gt;In local mode, the selected pictures are processed by Ollama on the computer running SketchWild. A cloud model service is not required.&lt;/p&gt;

&lt;p&gt;Journal entries stay in the current browser. There is no account synchronization, so ZIP export provides a way to keep a backup.&lt;/p&gt;

&lt;h3&gt;
  
  
  No model API key is needed locally
&lt;/h3&gt;

&lt;p&gt;After downloading the dependencies and model, local comparison can run without a cloud inference connection.&lt;/p&gt;

&lt;p&gt;There is no per-request cloud inference fee, although the laptop supplies the memory, processing time, and electricity.&lt;/p&gt;

&lt;h3&gt;
  
  
  The coaching can be changed
&lt;/h3&gt;

&lt;p&gt;Open weights and application source let me edit the observation prompt, adjust image preparation, and swap compatible vision models.&lt;/p&gt;

&lt;p&gt;This gives me a practical way to experiment with the coaching instead of depending on one closed service.&lt;/p&gt;

&lt;h3&gt;
  
  
  The tradeoffs are visible
&lt;/h3&gt;

&lt;p&gt;CPU responses can be slow, and a model can misinterpret a drawing. A structurally valid answer is not necessarily an accurate observation.&lt;/p&gt;

&lt;p&gt;My next priorities are evaluation with real subject photographs and paper sketches across all six categories, followed by an outdoor user trial.&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; Local subject-and-sketch observations using Gemma 3 4B through Ollama.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render:&lt;/strong&gt; Hosting the public frontend and backend preview.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of ElevenLabs:&lt;/strong&gt; Generating narration for the project walkthrough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of GitHub Copilot:&lt;/strong&gt; Reviewing preview behavior and accessibility, with two findings checked and corrected.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;The observation-first approach was informed by &lt;a href="https://chaozhang.design/assets/biosketchbook_idc21.4a27be43.pdf" rel="noopener noreferrer"&gt;Bio Sketchbook&lt;/a&gt; and &lt;a href="https://johnmuirlaws.com/in-discussion-anna-mason-and-john-muir-laws/" rel="noopener noreferrer"&gt;John Muir Laws’ nature journaling practices&lt;/a&gt;. SketchWild’s implementation, interface, and exercise prompts are original.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Hacktoberfest 2026: Building with Open-Source AI</title>
      <dc:creator>Priyanshu Gupta</dc:creator>
      <pubDate>Thu, 08 Oct 2026 17:56:54 +0000</pubDate>
      <link>https://dev.to/priyanshu_gupta_26/hacktoberfest-2026-building-with-open-source-ai-5dp8</link>
      <guid>https://dev.to/priyanshu_gupta_26/hacktoberfest-2026-building-with-open-source-ai-5dp8</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;I’m Priyanshu, a third-year IT student and AI/ML enthusiast.&lt;/p&gt;

&lt;p&gt;Hacktoberfest 2026 is taking a different direction this year — and I’m genuinely excited about it.&lt;/p&gt;

&lt;p&gt;This time, I’m not here to chase PR counts. I want to spend October &lt;strong&gt;building, experimenting, and learning with open-source AI and open-weight models.&lt;/strong&gt; 🤖&lt;/p&gt;

&lt;p&gt;I’ve mostly worked with GenAI applications, RAG pipelines, AI agents, and frameworks like LangChain, LangGraph and FastAPI.&lt;/p&gt;

&lt;p&gt;For Hacktoberfest, I want to take that a step further:&lt;/p&gt;

&lt;p&gt;→ Experiment with open-weight models and local inference&lt;br&gt;&lt;br&gt;
→ Build an AI project around an actual problem&lt;br&gt;&lt;br&gt;
→ Explore open-source agent frameworks&lt;br&gt;&lt;br&gt;
→ Learn how open AI systems compare with proprietary APIs&lt;br&gt;&lt;br&gt;
→ Document what I learn and share the journey here&lt;/p&gt;

&lt;p&gt;I’m especially interested in seeing what other developers are building and experimenting with this month.&lt;/p&gt;

&lt;p&gt;No PR counter. No contribution farming.&lt;/p&gt;

&lt;p&gt;Just &lt;strong&gt;build → experiment → learn → share.&lt;/strong&gt; 🚀&lt;/p&gt;

&lt;p&gt;Let’s see what we can create with open-source AI.&lt;/p&gt;

&lt;h1&gt;
  
  
  hacktoberfest #opensource #ai #machinelearning
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>hacktoberfest</category>
      <category>machinelearning</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
