<?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: Sneha Choudhary</title>
    <description>The latest articles on DEV Community by Sneha Choudhary (@snehach03).</description>
    <link>https://dev.to/snehach03</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%2F4171884%2Fb5bc5bc7-0c93-43c8-8bf8-a59a01d28e7e.png</url>
      <title>DEV Community: Sneha Choudhary</title>
      <link>https://dev.to/snehach03</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/snehach03"/>
    <language>en</language>
    <item>
      <title>Ghost Shell: The Terminal Ghost That Stops You From Wrecking Your Work</title>
      <dc:creator>Sneha Choudhary</dc:creator>
      <pubDate>Sat, 31 Oct 2026 05:12:25 +0000</pubDate>
      <link>https://dev.to/snehach03/ghost-shell-the-terminal-ghost-that-stops-you-from-wrecking-your-work-jjh</link>
      <guid>https://dev.to/snehach03/ghost-shell-the-terminal-ghost-that-stops-you-from-wrecking-your-work-jjh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Ghost Shell is a ghost that lives inside your terminal.&lt;/p&gt;

&lt;p&gt;Every student remembers the first time a command failed and the error looked like a foreign language. Worse, beginners paste commands from the internet without understanding them, and one wrong &lt;code&gt;rm -rf&lt;/code&gt; or &lt;code&gt;git reset --hard&lt;/code&gt; can wipe out a whole project.&lt;/p&gt;

&lt;p&gt;So I gave my terminal a ghost:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;When a command fails&lt;/strong&gt;, a spooky sound plays. Each mistake has its own sound: a creaky door for "command not found", rattling chains for "permission denied", a wail for a syntax error, footsteps for a missing file. The ghost then says a short spooky line and, under it, gives the real fix in plain words.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When a command is dangerous&lt;/strong&gt;, the ghost stops it before it runs, explains what you would lose, and asks you to type &lt;code&gt;yes&lt;/code&gt; to continue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When you fix your mistake&lt;/strong&gt;, a soft chime plays.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;👻 &lt;em&gt;The terminal graveyard echoes in silence... &lt;code&gt;pythno&lt;/code&gt; has no soul in this realm.&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Fix:&lt;/strong&gt; Check for typos in &lt;code&gt;pythno&lt;/code&gt; or install it via your package manager.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My take on the theme is a haunted machine that haunts you for your own good. The spooky layer is the fun part, but it never hides the answer, so a beginner learns something from every mistake.&lt;/p&gt;

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

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/qWgNCR5an3Q" width="710" height="399"&gt;
  &lt;/iframe&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/snehach03" rel="noopener noreferrer"&gt;
        snehach03
      &lt;/a&gt; / &lt;a href="https://github.com/snehach03/ghost_terminal" rel="noopener noreferrer"&gt;
        ghost_terminal
      &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;👻 Ghost Shell&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;::: {align="center"}&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;       .-.
      (o o) boo!
      | O \
       \   \
        `~~~'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A haunted terminal assistant for students.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/07cf9c916a5166d9ad1ef6b6b2aae9a7031f6ffeb12bea9961b86eb117e34bf4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f707974686f6e2d332e382b2d707572706c652e737667"&gt;&lt;img src="https://camo.githubusercontent.com/07cf9c916a5166d9ad1ef6b6b2aae9a7031f6ffeb12bea9961b86eb117e34bf4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f707974686f6e2d332e382b2d707572706c652e737667" alt="Python"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667"&gt;&lt;img src="https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667" alt="License"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/a1ba4d0a956974cd9913c45c3253a5a183ccda2d544e901009278147e56f0a30/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507269766163792d4c6f63616c2d737563636573732e737667"&gt;&lt;img src="https://camo.githubusercontent.com/a1ba4d0a956974cd9913c45c3253a5a183ccda2d544e901009278147e56f0a30/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507269766163792d4c6f63616c2d737563636573732e737667" alt="Privacy"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0ab565a9c949394e21d3a46c9d56ce1094d55c3c4f5d38758e9b35e7de8c71ab/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f417564696f2d50726f6365647572616c25323050434d2532305741562d6f72616e67652e737667"&gt;&lt;img src="https://camo.githubusercontent.com/0ab565a9c949394e21d3a46c9d56ce1094d55c3c4f5d38758e9b35e7de8c71ab/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f417564696f2d50726f6365647572616c25323050434d2532305741562d6f72616e67652e737667" alt="Audio"&gt;&lt;/a&gt;
:::&lt;/p&gt;
&lt;p&gt;Ghost Shell is a lightweight terminal guardian designed to help students
learn the command line without fear. It watches commands, explains
common errors in plain English with a little spooky atmosphere, plays
procedural sound effects, and checks potentially destructive commands
against deterministic safety rules.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🛑 &lt;strong&gt;Dangerous-command checks:&lt;/strong&gt; identifies configured destructive
command patterns and explains the potential impact before execution.&lt;/li&gt;
&lt;li&gt;🔊 &lt;strong&gt;Procedural sound effects:&lt;/strong&gt; generates audio cues for errors,
alerts, and successful fixes.&lt;/li&gt;
&lt;li&gt;👻 &lt;strong&gt;Error explanations:&lt;/strong&gt; combines spooky lore with a clearly
labelled, actionable &lt;code&gt;Fix:&lt;/code&gt; instruction.&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Rule-first responses:&lt;/strong&gt; common errors can be handled by
built-in templates without calling an AI model.&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Local-first design:&lt;/strong&gt; everyday rule-based features work
locally. An optional local model can be used as a fallback for
unusual errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Feature behaviour depends on the…&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/snehach03/ghost_terminal" 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;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shell hooks&lt;/strong&gt; for PowerShell, bash and zsh catch each command and its exit code, and check commands against the danger rules before they run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rules come first.&lt;/strong&gt; Common errors (command not found, permission denied, file not found, syntax error) are explained instantly by built-in templates, so most mistakes never need an AI model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dangerous-command detection is rule-based on purpose.&lt;/strong&gt; A pattern list covers &lt;code&gt;rm -rf&lt;/code&gt;, &lt;code&gt;git reset --hard&lt;/code&gt;, &lt;code&gt;git clean -fd&lt;/code&gt;, &lt;code&gt;git push --force&lt;/code&gt;, &lt;code&gt;chmod -R 777&lt;/code&gt;, &lt;code&gt;dd&lt;/code&gt;, &lt;code&gt;mkfs&lt;/code&gt;, &lt;code&gt;DROP DATABASE&lt;/code&gt; and fork bombs. I did not let a model decide what is dangerous, because a small model can misjudge risk and a pattern list cannot. A human always confirms before anything risky runs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A small open-weight model handles the unusual cases.&lt;/strong&gt; For long stack traces and unfamiliar tools, Ghost Shell asks &lt;strong&gt;Qwen2.5-0.5B-Instruct&lt;/strong&gt; (a ~400 MB quantized GGUF file), served locally by &lt;strong&gt;llama.cpp's &lt;code&gt;llama-server&lt;/code&gt;&lt;/strong&gt;. The Python client calls it over localhost using only the standard library. If the server isn't running, the rule-based features keep working.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sounds are generated with Python's built-in &lt;code&gt;wave&lt;/code&gt; and &lt;code&gt;math&lt;/code&gt; modules&lt;/strong&gt;, so there are no licensing problems and no audio libraries. Users can swap in their own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explanations are cached&lt;/strong&gt;, so a repeated error is instant.&lt;/li&gt;
&lt;li&gt;I used Google AI Studio as my coding assistant to build the project from a detailed spec I wrote, then tested it myself.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I first considered Ollama, but it was too heavy for my laptop. Moving to llama.cpp with a tiny model, and letting rules do the routine work, made the tool lighter and faster, and I think it is a better design.&lt;/p&gt;

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

&lt;p&gt;Whatever a student types into a terminal can include file names, project names, and sometimes passwords or tokens by mistake. I didn't want any of that sent to a server.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It works offline.&lt;/strong&gt; The ghost still haunts you with the Wi-Fi off, which suits a hostel or lab with bad internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nothing you type leaves your machine.&lt;/strong&gt; The model server runs on localhost, which wouldn't be true if explanations came from a closed API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It costs nothing to run.&lt;/strong&gt; No account, no API key, no per-request bill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The model is swappable.&lt;/strong&gt; Drop another GGUF model in the &lt;code&gt;models/&lt;/code&gt; folder and change one line in &lt;code&gt;config.json&lt;/code&gt;, so the project isn't locked to a service that might change its pricing or disappear.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It runs on a plain laptop.&lt;/strong&gt; A 0.5B model needs no GPU, so an ordinary student machine can use it.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Tomorrow's Tray</title>
      <dc:creator>Sneha Choudhary</dc:creator>
      <pubDate>Sat, 24 Oct 2026 05:59:11 +0000</pubDate>
      <link>https://dev.to/snehach03/tomorrows-tray-101d</link>
      <guid>https://dev.to/snehach03/tomorrows-tray-101d</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;Every night, a baker closes the shop and guesses: how many croissants tomorrow?&lt;/p&gt;

&lt;p&gt;Guess too low and the 11am customers find an empty tray. Guess too high and&lt;br&gt;
the leftovers go in the bin. Most small bakeries do this from gut feeling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tomorrow's Tray&lt;/strong&gt; takes the sales export from your till (a plain CSV) and&lt;br&gt;
produces tomorrow's prep list: how many of each item to bake, with a range&lt;br&gt;
instead of a single number, plus a one-line reason for each. The baker can&lt;br&gt;
override any number. The tool suggests, the baker decides.&lt;/p&gt;

&lt;p&gt;The part I care most about: &lt;strong&gt;a till counts sales, not demand.&lt;/strong&gt; If the&lt;br&gt;
croissants sold out at 10:40, the data says "36 sold", but real demand was&lt;br&gt;
higher. Forecasting from that number quietly teaches your model to&lt;br&gt;
under-bake. Tomorrow’s Tray treats sold-out days as censored observations: it estimates the demand that was missed as a range, using a Tobit-style conditional expectation blended with a diurnal arrival-curve correction, and never reports it below what actually sold.&lt;/p&gt;

&lt;p&gt;The lazy part: the baker stops doing the nightly guessing and mental maths.&lt;/p&gt;

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

&lt;p&gt;Live app: &lt;a href="https://week-3-1-6qet.onrender.com/" rel="noopener noreferrer"&gt;https://week-3-1-6qet.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first load can take 30-60 seconds because the free instance wakes up from sleep.&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%2F7gwlwvsqyy4whte35ict.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%2F7gwlwvsqyy4whte35ict.png" alt=" " width="800" height="565"&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%2Fko0wthc9xelk0sbvqd16.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%2Fko0wthc9xelk0sbvqd16.png" alt=" " width="800" height="509"&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%2Fia57zcyr84xt7odxxx2t.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%2Fia57zcyr84xt7odxxx2t.png" alt=" " width="800" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/snehach03/week_3" rel="noopener noreferrer"&gt;https://github.com/snehach03/week_3&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I built Tomorrow's Tray with Google's Antigravity as my coding agent. My brief&lt;br&gt;
had one priority: &lt;em&gt;a smaller, scientifically honest working product is better&lt;br&gt;
than an elaborate mockup.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; React, TypeScript, Vite, Tailwind and Recharts on the front end;&lt;br&gt;
Python, FastAPI, pandas and SQLAlchemy with SQLite on the back end. State is&lt;br&gt;
stored in SQLite, not in the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Censored demand (the core idea).&lt;/strong&gt; Dividing sales by the fraction of the&lt;br&gt;
day that has passed fails, because bakery traffic is front-loaded: most&lt;br&gt;
customers come in the morning. Instead, the correction module blends two&lt;br&gt;
estimates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a Tobit-style conditional expectation: given that comparable uncensored
days look roughly normal, it estimates what demand was, knowing it was at
least what sold;&lt;/li&gt;
&lt;li&gt;a diurnal correction that uses an &lt;strong&gt;assumed&lt;/strong&gt; Beta-shaped customer-arrival
curve between 07:00 and 17:00.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is never lower than what actually sold, is reported as a range, and&lt;br&gt;
is labelled "limited data" when there are fewer than two comparable&lt;br&gt;
uncensored days.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Forecasting.&lt;/strong&gt; For each item the app forecasts tomorrow's demand with a&lt;br&gt;
P10-P90 range, using empirical quantile intervals. It supports a&lt;br&gt;
same-weekday-last-week baseline, a four-week same-weekday average, and a&lt;br&gt;
Random Forest with lag and momentum features. A service-level setting (70, 85&lt;br&gt;
or 95%) controls how much buffer goes into the suggested quantity.&lt;br&gt;
TabPFN is included as an optional adapter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Explanations.&lt;/strong&gt; The backend computes the evidence and can pass it to a&lt;br&gt;
local Gemma model through Ollama to turn it into one sentence. If Ollama is&lt;br&gt;
not running, a deterministic template writes the explanation instead, so&lt;br&gt;
nothing depends on a model being available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The baker decides.&lt;/strong&gt; Every suggested quantity can be overridden with a&lt;br&gt;
note. The AI suggestion is stored next to the baker's final number and never&lt;br&gt;
overwritten. The prep list exports to CSV for the kitchen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Evaluation.&lt;/strong&gt; The app has a Model Performance page with an&lt;br&gt;
expanding-window backtest (the model never sees future data). It compares the&lt;br&gt;
models on MAE, WAPE and RMSE, reports interval coverage, and evaluates&lt;br&gt;
uncensored days separately, because sales on a sold-out day are not complete&lt;br&gt;
ground truth. The repo includes 22 unit and integration tests covering CSV&lt;br&gt;
validation, censored demand, forecasting, backtesting and the API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this does not claim:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is a forecast, not a guarantee. The baker's judgement stays final.&lt;/li&gt;
&lt;li&gt;The demo data is simulated, not from a real shop. For that reason I am not
quoting headline accuracy numbers in this post: on simulated data they
would say more about my simulator than about real bakeries.&lt;/li&gt;
&lt;li&gt;The arrival curve in the correction is an assumption, not something learned
from a real bakery's till.&lt;/li&gt;
&lt;li&gt;I have not tested it with a real bakery yet.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;A bakery's sales history is private business data. Tomorrow's Tray is designed&lt;br&gt;
to run entirely on the baker's own machine: the forecasting models are open&lt;br&gt;
source (scikit-learn, with TabPFN as an optional open-weight adapter), the&lt;br&gt;
optional explanation model is local Gemma through Ollama, and no API key or&lt;br&gt;
subscription is required.&lt;/p&gt;

&lt;p&gt;The code is MIT-licensed, so a bakery, or a developer helping one, can read&lt;br&gt;
how the forecast is built, change the models, or fix the assumptions.&lt;/p&gt;

&lt;p&gt;One honest caveat: the live demo is hosted on Render. The "your data stays&lt;br&gt;
with you" benefit applies when you run the project locally from the repo.&lt;/p&gt;

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

&lt;p&gt;I used two prompts with Antigravity. The first was a build brief: the product,&lt;br&gt;
the censored-demand module, chronological backtesting, tests, and an explicit&lt;br&gt;
rule not to claim any test passed unless it was actually run, and not to&lt;br&gt;
claim the model beats a baseline unless the backtest shows it.&lt;/p&gt;

&lt;p&gt;The second set the agent's permissions. It had full autonomy inside the&lt;br&gt;
project folder to install dependencies, write code, run tests and debug&lt;br&gt;
without asking me each time. It was not allowed to touch anything outside the&lt;br&gt;
folder (system settings, global installs, other projects), use admin rights,&lt;br&gt;
or upload my files or data to external services. Deleting important data,&lt;br&gt;
publishing or deploying, paid services, and sending private data to&lt;br&gt;
third-party APIs still needed my approval.&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;/strong&gt; the app is deployed on Render at
&lt;a href="https://week-3-1-6qet.onrender.com/" rel="noopener noreferrer"&gt;https://week-3-1-6qet.onrender.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>github</category>
      <category>python</category>
    </item>
    <item>
      <title>MomentSort — AI-Powered Wedding Photo Organizer</title>
      <dc:creator>Sneha Choudhary</dc:creator>
      <pubDate>Fri, 16 Oct 2026 20:43:18 +0000</pubDate>
      <link>https://dev.to/snehach03/momentsort-ai-powered-wedding-photo-organizer-4b01</link>
      <guid>https://dev.to/snehach03/momentsort-ai-powered-wedding-photo-organizer-4b01</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/p&gt;

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

&lt;p&gt;MomentSort  AI-Powered Wedding Photo Organizer&lt;/p&gt;

&lt;p&gt;Wedding photographers often return from an event with thousands of photos. Finding a specific moment—like a bride's portrait, a groom's candid shot, or wedding decor can be time-consuming when everything is scattered across folders.&lt;/p&gt;

&lt;p&gt;MomentSort is an AI-powered photo organization project designed to make searching and organizing wedding memories easier. It combines image embeddings, similarity-based search, blur detection, and photo grouping to help photographers find relevant images and organize event moments.&lt;/p&gt;

&lt;p&gt;The goal is simple: spend less time manually browsing photos and more time delivering beautiful memories to clients.&lt;/p&gt;

&lt;p&gt;Potential users include wedding photographers, photography studios, event photographers, and anyone managing large collections of event photos.&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://week2-project-1.onrender.com" rel="noopener noreferrer"&gt;https://week2-project-1.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explore the API documentation and try the available demo search functionality.&lt;/p&gt;

&lt;p&gt;The hosted version currently runs in demo mode. Full folder-based analysis is intended to run locally because it requires access to the user's photo folders and a heavier AI model.&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/snehach03/week2_project" rel="noopener noreferrer"&gt;https://github.com/snehach03/week2_project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the backend, API endpoints, search functionality, and the photo-analysis pipeline.&lt;/p&gt;

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

&lt;p&gt;I built MomentSort using Python and FastAPI, with a focus on making AI-powered photo organization practical.&lt;/p&gt;

&lt;p&gt;The project brings together:&lt;/p&gt;

&lt;p&gt;FastAPI for the backend and API endpoints.&lt;/p&gt;

&lt;p&gt;SigLIP image embeddings for representing images as vectors and enabling similarity-based search.&lt;/p&gt;

&lt;p&gt;NumPy for vector operations and similarity calculations.&lt;/p&gt;

&lt;p&gt;OpenCV for blur detection and image-quality checks.&lt;/p&gt;

&lt;p&gt;Photo grouping and duplicate detection to help organize related images and identify similar shots.&lt;/p&gt;

&lt;p&gt;Render for hosting a lightweight demo of the application.&lt;/p&gt;

&lt;p&gt;The project separates the lightweight hosted demo from the heavier local analysis pipeline. This allows users to explore the available search functionality online without requiring the full AI model to run on a memory-constrained hosting service.&lt;/p&gt;

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

&lt;p&gt;Open innovation made it possible to experiment with AI-powered image understanding without building an entire computer vision stack from scratch.&lt;/p&gt;

&lt;p&gt;Open-source tools and model ecosystems gave me access to image embeddings, vector operations, image-processing libraries, and backend frameworks that I could combine into a practical application.&lt;/p&gt;

&lt;p&gt;It also helped me understand the real-world engineering trade-offs behind AI products: model size, memory constraints, deployment environments, and the difference between a local workflow and a hosted service.&lt;/p&gt;

&lt;p&gt;For me, the biggest lesson is that building with AI is not just about choosing a model. It is about making the complete system useful, accessible, and reliable.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Outside.exe - The Real World Is the Game Map 🌿🎮</title>
      <dc:creator>Sneha Choudhary</dc:creator>
      <pubDate>Fri, 09 Oct 2026 17:06:44 +0000</pubDate>
      <link>https://dev.to/snehach03/outsideexe-the-real-world-is-the-game-map-pp5</link>
      <guid>https://dev.to/snehach03/outsideexe-the-real-world-is-the-game-map-pp5</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;Outside.exe — The Real World Is the Game Map 🌿🎮&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What if going outside felt like playing a game?&lt;/p&gt;

&lt;p&gt;That question inspired me to build Outside.exe, an AI-powered real-world adventure game that turns ordinary surroundings into opportunities for exploration.&lt;/p&gt;

&lt;p&gt;Instead of giving people another reason to stay on their phones, Outside.exe encourages them to step away from their screens and complete physical-world quests.&lt;/p&gt;

&lt;p&gt;Users choose their available time, energy level, mood, and environment. Based on this context, the application generates personalized adventure missions.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Mission 1:&lt;/strong&gt; Walk for five minutes without headphones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mission 2:&lt;/strong&gt; Find something you've walked past many times but never actually noticed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mission 3:&lt;/strong&gt; Find something that is moving, something making a sound, and something that looks out of place.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once an adventure starts, users are encouraged to put their phones away and explore the real world.&lt;/p&gt;

&lt;p&gt;When they return, they can describe what they encountered. These observations can then inform the next mission, turning the adventure into an evolving experience rather than a fixed checklist.&lt;/p&gt;

&lt;p&gt;The core idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Use AI to make the real world more interesting, not the screen more addictive.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Outside.exe is designed for people who want to break their routines, explore their surroundings, spend less time on their phones, and rediscover the little things they usually overlook.&lt;/p&gt;

&lt;p&gt;The goal isn't to maximize screen time. It's to make the screen the shortest part of the experience.&lt;/p&gt;

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

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://outside-exe-4.onrender.com/" rel="noopener noreferrer"&gt;https://outside-exe-4.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try the application and start your own real-world adventure.&lt;/p&gt;

&lt;p&gt;The project is designed around a simple loop:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Configure → Explore → Observe → Reflect → Explore Again&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/snehach03/outside.exe" rel="noopener noreferrer"&gt;https://github.com/snehach03/outside.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The source code for Outside.exe is available in the repository.&lt;/p&gt;

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

&lt;p&gt;I built Outside.exe as a web application using &lt;strong&gt;Next.js, React, TypeScript, and Node.js&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The application follows an adventure flow that connects user preferences with real-world missions and subsequent check-ins.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Adventure Loop
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Adventure Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Users provide information such as their available time, energy level, mood, and environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Mission Generation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The AI uses the available context to create an adventure with physical-world challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Real-World Exploration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Users put their phones away and complete their missions in the world around them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Check-in and Adaptation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After returning, users describe what they experienced. Their observations can inform the next mission, making the experience more personal and dynamic.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Integration
&lt;/h3&gt;

&lt;p&gt;I used &lt;strong&gt;Ollama&lt;/strong&gt; as the local runtime for an open-weight AI model.&lt;/p&gt;

&lt;p&gt;The goal of this integration is to use an open-weight model to generate adventure missions and adapt challenges to the user's context and observations, rather than making a closed cloud API the only possible foundation.&lt;/p&gt;

&lt;p&gt;Ollama provides a way to run models locally, giving developers greater control over the inference environment and the freedom to experiment with different supported models.&lt;/p&gt;

&lt;p&gt;I used &lt;strong&gt;Claude Code&lt;/strong&gt; as my AI coding agent during development. It helped me implement features, debug Next.js and TypeScript build errors, and prepare the application for deployment.&lt;/p&gt;

&lt;p&gt;The web application is deployed on &lt;strong&gt;Render&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;AI doesn't always have to keep people staring at screens.&lt;/p&gt;

&lt;p&gt;For Outside.exe, I wanted to explore the opposite: using AI to encourage curiosity, movement, and interaction with the physical world.&lt;/p&gt;

&lt;p&gt;Open-weight models and tools such as Ollama make it possible to experiment with local inference, explore different models, and have more control over how an AI-powered application behaves.&lt;/p&gt;

&lt;p&gt;This matters because developers should have the freedom to understand, adapt, and experiment with the technology behind their applications.&lt;/p&gt;

&lt;p&gt;For a project like Outside.exe, local inference also offers the possibility of keeping user interactions within a locally controlled environment when the application is configured to run that way.&lt;/p&gt;

&lt;p&gt;The larger idea behind the project is to change how we think about AI-powered experiences.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI → More Screen Time&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Outside.exe explores:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI → Physical Challenge → Exploration → Observation → New Challenge&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I want AI to become a bridge between the digital and physical worlds, helping people notice more, explore more, and spend less time passively consuming content.&lt;/p&gt;

&lt;p&gt;The best outcome is not a user spending hours inside Outside.exe.&lt;/p&gt;

&lt;p&gt;It's a user closing the app, stepping outside, and discovering something new.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tags
&lt;/h2&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge
&lt;/h1&gt;

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