<?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: Musaddiq Ahmed Khan</title>
    <description>The latest articles on DEV Community by Musaddiq Ahmed Khan (@musaddiq625).</description>
    <link>https://dev.to/musaddiq625</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%2F3550675%2F1332e641-27d9-402f-98eb-b8d813d0a2f9.jpg</url>
      <title>DEV Community: Musaddiq Ahmed Khan</title>
      <link>https://dev.to/musaddiq625</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/musaddiq625"/>
    <language>en</language>
    <item>
      <title>El Pueblo de los Muertos — a village where nine AI spirits solve the case themselves</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Mon, 02 Nov 2026 00:38:47 +0000</pubDate>
      <link>https://dev.to/musaddiq625/el-pueblo-de-los-muertos-a-village-where-nine-ai-spirits-solve-the-case-themselves-5hii</link>
      <guid>https://dev.to/musaddiq625/el-pueblo-de-los-muertos-a-village-where-nine-ai-spirits-solve-the-case-themselves-5hii</guid>
      <description>&lt;p&gt;Someone stole a dead man's portrait — and in a village where being remembered is what keeps you real, he's starting to disappear.&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%2Fanwbnlf00r0c7kclwomx.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%2Fanwbnlf00r0c7kclwomx.png" alt="Poster: El Pueblo de los Muertos" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El Pueblo de los Muertos&lt;/strong&gt; is a top-down, Game Boy-style village of the dead built for Día de los Muertos — and every spirit in it is a live AI agent running on an open-weight model, entirely on-device. They gossip, they lie, they trade evidence mouth-to-mouth, and — with no scripts and no player — they solve the case themselves.&lt;/p&gt;

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

&lt;p&gt;Nine spirits wander a pixel-art pueblo: they visit shops, gather by the fountain, inspect the great ofrenda, and slowly piece together who stole &lt;strong&gt;Solorio's portrait&lt;/strong&gt; — the last object anchoring him to memory.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Every spirit runs on a small open-weight LLM&lt;/strong&gt; (gemma3 via Ollama on desktop, on-device Gemma on Android). Each one decides where to walk, who to talk to, what to say, and which secrets to share.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The proofs are scattered&lt;/strong&gt; — a dropped guitar pick, wax on a sleeve, humming heard at dusk. Nobody holds all of them, so the agents have to &lt;em&gt;gossip the case closed&lt;/em&gt;: trading secrets, overhearing private mutters, repeating lies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;At three proofs the village acts&lt;/strong&gt; — an accuser marches on the culprit, and the accusation, confession, motive and the town's reaction all play out as a live scene in the world.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meanwhile the victim is fading.&lt;/strong&gt; Spirits whose remembrance battery dies dim into translucent skeletons until someone speaks their name. Solorio is the victim &lt;em&gt;and&lt;/em&gt; a witness — his testimony fades with him.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The player is an unseen living presence. You can simply watch — the spirits genuinely solve it alone — or tap any spirit and interrogate it: they answer from the secrets they &lt;em&gt;actually&lt;/em&gt; hold, in their own persona voice. You can carry whispers between them, send one off to question another on your behalf, or speak a fading name to bring a ghost back.&lt;/p&gt;

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

&lt;p&gt;📹 &lt;strong&gt;&lt;a href="https://github.com/Musaddiq625/pueblo/blob/main/screenshots/el-pueblo-trailer-v7.mp4" rel="noopener noreferrer"&gt;Watch the trailer&lt;/a&gt;&lt;/strong&gt; — 56 seconds, plays inline on GitHub.&lt;/p&gt;

&lt;p&gt;Story screenshots and alternate cuts live in &lt;a href="https://github.com/Musaddiq625/pueblo/tree/main/screenshots" rel="noopener noreferrer"&gt;&lt;code&gt;screenshots/&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works — the model proposes, the engine disposes
&lt;/h2&gt;

&lt;p&gt;The interesting engineering problem: LLMs are brilliant at sounding alive and terrible at being trustworthy. So the game is split in two.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The open-weight model writes the voices.&lt;/strong&gt; Every mutter, reply, lie and confession comes from the model, shaped by a persona card (vocation, traits, grudges) and the secrets that spirit genuinely holds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A deterministic Dart engine owns the truth.&lt;/strong&gt; The knowledge graph — who knows which secret and how they learned it — plus the secret ledger, the three-proof verdict threshold, walk schedules, memory batteries and fades are all plain, testable Dart. The model can propose anything; it cannot mint truth.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That split is what makes "no scripts" honest: the deduction is emergent, but the case can't be hallucinated. A whisper only counts toward the verdict if it was actually carried — by a spirit, or by you.&lt;/p&gt;

&lt;p&gt;It also makes the game testable. A &lt;code&gt;ext.pueblo.cmd&lt;/code&gt; driver socket exposes &lt;code&gt;state&lt;/code&gt;, &lt;code&gt;shot&lt;/code&gt;, &lt;code&gt;speed&lt;/code&gt;, &lt;code&gt;chat&lt;/code&gt;, &lt;code&gt;look&lt;/code&gt; and &lt;code&gt;solve&lt;/code&gt; — the last a "director's cut" that seeds the ledger so the confession scene can be filmed on demand. 92 tests cover the sim engine, the sprite contract and the mystery logic, and &lt;code&gt;--dart-define=LLM=mock&lt;/code&gt; runs the entire village with canned lines on machines with no GPU.&lt;/p&gt;

&lt;p&gt;Stack: Flutter · Flame · Dart · SQLite · Ollama + gemma3 (open weights) · flutter_gemma. MIT licensed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open innovation matters here
&lt;/h2&gt;

&lt;p&gt;This game &lt;em&gt;is&lt;/em&gt; the theme. The ghosts are literally in the machine — and the machine is yours.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No API keys, no cloud, no internet.&lt;/strong&gt; Every spirit thinks on the player's own hardware. The village keeps gossiping with the Wi-Fi off — on a plane, in a basement, forever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The minds are inspectable and swappable.&lt;/strong&gt; Because the model is an open weight served over a standard local API, you can pull any Ollama chat model and watch the same village develop different personalities — swap &lt;code&gt;LLM=&lt;/code&gt; and the whole pueblo changes character.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nothing private leaves the device.&lt;/strong&gt; Every whisper, secret and confession stays on disk. For a game about memory — about what we choose to remember of the dead — shipping the villagers' souls to a data centre felt wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It can't be sunset.&lt;/strong&gt; The spirits don't live on someone's endpoint. As long as one person has a copy, the village keeps its dead.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Interpreting "Ghost in the Machine"
&lt;/h2&gt;

&lt;p&gt;I took the theme literally, twice over. First: literal ghosts — spirits of the dead — running inside a literal machine, via local inference on commodity hardware. Second: the theme's deeper echo — a village that &lt;em&gt;honours the past&lt;/em&gt;. The core mechanic is remembrance: spirits stay real while someone remembers their name, and the climax is a town carrying a dead man's story until it can be proven true. It's Día de los Muertos as a game system.&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; — the villagers' minds are &lt;code&gt;gemma3&lt;/code&gt; served by Ollama on desktop, with an on-device Gemma path (&lt;code&gt;flutter_gemma&lt;/code&gt;) for Android. Every line they speak is open weights, running locally.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;(Overall prize — automatic entry.)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Running it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Musaddiq625/pueblo
&lt;span class="nb"&gt;cd &lt;/span&gt;pueblo
ollama pull gemma3:4b &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ollama serve
./run_macos.sh         &lt;span class="c"&gt;# macOS, real model&lt;/span&gt;
&lt;span class="c"&gt;# or no model at all:&lt;/span&gt;
./run_macos.sh &lt;span class="nt"&gt;--mock&lt;/span&gt;  &lt;span class="c"&gt;# canned lines, still plays the full case&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For judges without a Mac or GPU: the &lt;code&gt;mock&lt;/code&gt; path plays the whole mystery end-to-end, and the driver socket can fast-forward (&lt;code&gt;speed&lt;/code&gt;) or jump straight to the confession (&lt;code&gt;solve&lt;/code&gt;). Repo: &lt;a href="https://github.com/Musaddiq625/pueblo" rel="noopener noreferrer"&gt;https://github.com/Musaddiq625/pueblo&lt;/a&gt; · MIT.&lt;/p&gt;

&lt;p&gt;Built with ❤️ by Musaddiq625&lt;/p&gt;

</description>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>gamedev</category>
      <category>gemma</category>
    </item>
    <item>
      <title>MVP — Minimum Viable Person: a survival tracker that knows how long you'll survive</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Sun, 25 Oct 2026 22:42:12 +0000</pubDate>
      <link>https://dev.to/musaddiq625/mvp-minimum-viable-person-a-survival-tracker-that-knows-how-long-youll-survive-k5h</link>
      <guid>https://dev.to/musaddiq625/mvp-minimum-viable-person-a-survival-tracker-that-knows-how-long-youll-survive-k5h</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;p&gt;Two buttons. That's the whole app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MVP — Minimum Viable Person&lt;/strong&gt; is a survival tracker that knows how long you'll survive.&lt;br&gt;
Tap &lt;strong&gt;ATE&lt;/strong&gt; when you eat, tap &lt;strong&gt;DRANK&lt;/strong&gt; when you drink.&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%2Fi7tcm9s11918zmi0p3mv.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%2Fi7tcm9s11918zmi0p3mv.png" alt="MVP — minimum viable person" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app converts each into survival hours using the pop-science "rule of threes" (~3 days without water, ~3 weeks without food). Two tanks — &lt;code&gt;food&lt;/code&gt; and &lt;code&gt;water&lt;/code&gt; — drain in real time, counting down every second. When they run low, a notification nags you, the buttons pulse, and a lazy AI roommate comments on your continued existence.&lt;/p&gt;

&lt;p&gt;It rewards laziness twice over: the tracking costs one tap, and everything the AI writes assumes you won't try.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;▶ Video demo (full walkthrough, airplane mode on):&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1q6PtO1c3dP3ZCMznCAiQaDVae_gvM1ou/view?usp=drivesdk" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1q6PtO1c3dP3ZCMznCAiQaDVae_gvM1ou/view?usp=drivesdk&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/Musaddiq625" rel="noopener noreferrer"&gt;
        Musaddiq625
      &lt;/a&gt; / &lt;a href="https://github.com/Musaddiq625/mvp_minimum_viable_person" rel="noopener noreferrer"&gt;
        mvp_minimum_viable_person
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      a survival tracker for people who cannot be bothered — offline-first Flutter app powered by on-device Gemma 3n
    &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;MVP — Minimum Viable Person&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;knows how long you'll survive.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Built for &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19" rel="nofollow"&gt;Hacktoberfest 2026 — Week 3: Slow and Steady&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Musaddiq625/mvp_minimum_viable_person/assets/brand/hero.png?v=2"&gt;&lt;img alt="mvp — minimum viable person" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMusaddiq625%2Fmvp_minimum_viable_person%2FHEAD%2Fassets%2Fbrand%2Fhero.png%3Fv%3D2"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Two buttons. That's the whole app.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tap &lt;strong&gt;ATE&lt;/strong&gt; when you eat, tap &lt;strong&gt;DRANK&lt;/strong&gt; when you drink&lt;/li&gt;
&lt;li&gt;The app tells you how long you'd survive if you stopped caring entirely&lt;/li&gt;
&lt;li&gt;Powered by the pop-science "rule of threes" (≈3 days without water
≈3 weeks without food)&lt;/li&gt;
&lt;li&gt;Backed by a &lt;strong&gt;local, on-device, open-weights AI model&lt;/strong&gt; — no cloud
no account, no effort&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Built for &lt;strong&gt;Hacktoberfest — DEV Open-Source AI Challenge, Week 3:
"slow and steady."&lt;/strong&gt; Nothing is slower or steadier than a person who
barely moves.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The joke, taken seriously&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Every health app assumes you want to try. This one assumes you don't —
and that's the whole product.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Two tanks: &lt;code&gt;food&lt;/code&gt; and &lt;code&gt;water&lt;/code&gt;, measured in &lt;strong&gt;survival hours&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Tanks decay in real time — watch the countdown tick every second&lt;/li&gt;
&lt;li&gt;A…&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/Musaddiq625/mvp_minimum_viable_person" 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;Flutter Android app, offline-first. The AI is &lt;strong&gt;Gemma 3n E2B-it LiteRT Preview&lt;/strong&gt; (~3 GB int4) running on-device via &lt;code&gt;flutter_gemma&lt;/code&gt; → MediaPipe LLM Inference / LiteRT with a GPU delegate. After the one-time download it's 100% offline — airplane mode, everything works.&lt;/p&gt;

&lt;p&gt;What the model actually does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Writes every persona line&lt;/strong&gt;, streamed token-by-token — you watch it type, signed &lt;code&gt;— gemma, on-device&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Writes the weekly report&lt;/strong&gt; — a shareable card generated live&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gates the entire app&lt;/strong&gt; — verified by real inference, not a file-existence check&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What it deliberately doesn't do: survival math. That's pure Dart — deterministic, test-covered, clamped. The model's output is parsed and validated before it can touch state, because a creative model should write jokes, not arithmetic.&lt;/p&gt;

&lt;p&gt;Lazy-engineering details worth mentioning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Serialized inference&lt;/strong&gt; — MediaPipe can't run concurrent sessions, so every generation takes a mutex; cancelled streams drain to completion before the session closes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5s debounce&lt;/strong&gt; — spam-tapping gets a canned clapback instantly, no inference wasted&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chunky 3D buttons&lt;/strong&gt; that press like an arcade machine — haptics postponed, in the spirit of the app&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resumable model download&lt;/strong&gt; — a 3 GB file survives crashes; the download→install handoff was the single highest-pressure moment in the app (ask me about the WorkManager foreground-service crash)&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;This app could not exist the same way on a closed API:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It actually works offline.&lt;/strong&gt; Airplane mode is a feature, not an edge case — an open-weight model makes "nothing leaves the phone" a fact instead of a privacy policy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What you eat is nobody's business.&lt;/strong&gt; A tracker logging your meals has no business shipping that to someone's server. On-device inference means there is no server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero marginal cost.&lt;/strong&gt; The laziest possible economics: no API key, no billing alert, no rate limit. Download once, run forever, free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The model is swappable.&lt;/strong&gt; The persona is a prompt, not a product — drop in a different open-weight model and the app gets a new personality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open innovation isn't a garnish here — the open model is load-bearing infrastructure that happens to write dry one-liners.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interaction cost: ~1 second.&lt;/strong&gt; One tap, three times a day, versus any food journal that wants you to weigh your lunch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forgives skipping.&lt;/strong&gt; Miss a whole day and gap-fill assumes you self-maintained — the only health app that rewards not logging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Doesn't even require opening it.&lt;/strong&gt; Notification quick actions log the meal from the shade.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The AI does the writing so you can do the lying around.&lt;/strong&gt; Every acknowledgement, report, and sarcastic worry is generated, not templated.&lt;/li&gt;
&lt;/ul&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; — Gemma 3n E2B-it LiteRT Preview runs locally on-device and gates the entire app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built with ❤️ by Musaddiq625&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
      <category>flutter</category>
    </item>
    <item>
      <title>Reclaim: a private, on-device AI screen-time coach for Android</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Sun, 18 Oct 2026 21:55:58 +0000</pubDate>
      <link>https://dev.to/musaddiq625/reclaim-a-private-on-device-ai-screen-time-coach-for-android-4027</link>
      <guid>https://dev.to/musaddiq625/reclaim-a-private-on-device-ai-screen-time-coach-for-android-4027</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge: Week 2 — Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Reclaim is a private AI screen-time coach for Android — on-device Gemma 3, zero servers, and an app freezer that actually holds the line.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It reads the usage history Android already keeps and turns it into a blunt, kind coaching digest — plus enforceable app-freeze windows — entirely on-device.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A weekly digest: total time, pickups, late-night minutes, 20m+ "doom-scroll" sessions, and your top time-sink app&lt;/li&gt;
&lt;li&gt;A locally-running &lt;strong&gt;Gemma 3 1B&lt;/strong&gt; model writes the coaching plan — verdict, daily goal, and 2–3 concrete cap/protect/replace actions&lt;/li&gt;
&lt;li&gt;Scheduled app freezes that show a full-screen blocker, with a logged 5-minute emergency unlock&lt;/li&gt;
&lt;li&gt;Streaks, milestones, and "you vs the world" benchmarks — all computed locally&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Who Would Pay For It
&lt;/h2&gt;

&lt;p&gt;Screen-time apps are crowded, but the "AI coach" ones all route your most personal behavioral data through a server and charge a subscription for it. Reclaim is for privacy-conscious users and digital-detox communities who want the coaching without the data pipeline. The open-weight model is what makes it viable as a paid app: no inference bill, no server costs, zero marginal cost per user.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;▶ Video demo:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1jqn60eJyvs85t-nSLA2sVdmahB2OZ1b2/view" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1jqn60eJyvs85t-nSLA2sVdmahB2OZ1b2/view&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub repo:&lt;/strong&gt; &lt;a href="https://github.com/Musaddiq625/reclaim" rel="noopener noreferrer"&gt;https://github.com/Musaddiq625/reclaim&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MIT licensed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It reads the log your phone already keeps.&lt;/strong&gt; Android tracks which apps you open and for how long. Reclaim turns that raw log into a clear weekly picture — no tracking added, nothing extra collected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An AI model on your phone writes the advice.&lt;/strong&gt; A small open model (Gemma 3, ~0.6 GB, downloaded once) reads your week and writes a coaching plan. The app does all the math itself — the model just puts it into words, so it can never invent numbers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freezing actually freezes.&lt;/strong&gt; Using Android's accessibility feature, Reclaim can detect when a frozen app opens and covers it with a full-screen block during your scheduled windows — even if the app itself is closed. A 5-minute emergency unlock exists, but it's logged, so "just this once" shows up in your history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It remembers longer than Android does.&lt;/strong&gt; Android forgets usage data after about a week, so Reclaim keeps its own private archive for streaks and progress over time.&lt;/li&gt;
&lt;/ul&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;Tech&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;App&lt;/td&gt;
&lt;td&gt;Flutter / Dart, Android&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;On-device AI&lt;/td&gt;
&lt;td&gt;Gemma 3 1B IT via flutter_edge_ai + MediaPipe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Usage data&lt;/td&gt;
&lt;td&gt;usage_stats, installed_apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App blocking&lt;/td&gt;
&lt;td&gt;Kotlin AccessibilityService + native blocker activity&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy is the product&lt;/strong&gt; — "usage history never leaves the phone" is only true because there's no server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero marginal cost&lt;/strong&gt; — a paid app with no API bill, ever&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspectable and swappable&lt;/strong&gt; — the model file can be audited, replaced, or sideloaded by the user&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No lock-in&lt;/strong&gt; — no pricing changes, rate limits, or deprecation emails&lt;/li&gt;
&lt;/ul&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; — Gemma 3 1B IT is the coach's entire voice, running fully on-device via LiteRT/MediaPipe; no API key, no network call, every line of the digest generated locally.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built with ❤️ by Musaddiq625&lt;/p&gt;

</description>
      <category>hf26challenge</category>
      <category>devchallenge</category>
      <category>flutter</category>
      <category>gemma</category>
    </item>
    <item>
      <title>DEV SUPPORTS - BeAware of this SCAM ACCOUNT</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Mon, 12 Oct 2026 06:51:57 +0000</pubDate>
      <link>https://dev.to/musaddiq625/dev-supports-beaware-of-this-scam-account-1b4c</link>
      <guid>https://dev.to/musaddiq625/dev-supports-beaware-of-this-scam-account-1b4c</guid>
      <description>&lt;p&gt;&lt;strong&gt;DO NOT OPEN THE LINK!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It will ask you for account details and even current balance.&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%2Fplhxtmaen14a9xc5eqn2.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%2Fplhxtmaen14a9xc5eqn2.png" alt=" " width="799" height="199"&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%2F0o9i8rvylzr1g395q0uw.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%2F0o9i8rvylzr1g395q0uw.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THIS LOOKS LEGIT, BUT IT IS NOT&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%2Fx0hrhuo9qdsg0sfo35ct.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%2Fx0hrhuo9qdsg0sfo35ct.png" alt=" " width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is posting on these hashtags:&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge
&lt;/h1&gt;

&lt;h1&gt;
  
  
  hf26challenge
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>scam</category>
      <category>ai</category>
    </item>
    <item>
      <title>Sprout: a creature that starves indoors</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Mon, 12 Oct 2026 06:11:30 +0000</pubDate>
      <link>https://dev.to/musaddiq625/sprout-a-creature-that-starves-indoors-i7f</link>
      <guid>https://dev.to/musaddiq625/sprout-a-creature-that-starves-indoors-i7f</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;Sprout is a creature that lives on your phone and starves indoors.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's a Tamagotchi with one rule: it only eats things that exist outside. Hold your phone up to real sunlight and it drinks. Point the camera at actual grass and it eats. Carry it on a walk and it perks up. Shake it awake and it tells you — groggily — about the dream it just lost. Every word it speaks is generated on-device by Gemma 4, an open-weight model running inside the app. There is no server. In a forest with zero bars of signal, the creature still talks back.&lt;/p&gt;

&lt;p&gt;It also refuses to let you cheat the theme:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Indoor lamps and bright windowsills don't count as sun — the ambient light sensor only banks "drinks" above outdoor-class lux.&lt;/li&gt;
&lt;li&gt;A photo of a green wall gets rejected by a pixel classifier before the AI ever sees it.&lt;/li&gt;
&lt;li&gt;Leave the phone in a sunny window and walk away? Nothing happens. Sunlight only counts toward growth while you're actually engaged with the creature — it can't evolve alone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Who is it for? Anyone whose screen time is beating their outside time. The shortest path to keeping Sprout alive is to put on shoes.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;▶ Video demo:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1c7aG0o_WBRdop3rcMKDgyWcqQPEbmjhC" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1c7aG0o_WBRdop3rcMKDgyWcqQPEbmjhC&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub repo:&lt;/strong&gt; &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/Musaddiq625" rel="noopener noreferrer"&gt;
        Musaddiq625
      &lt;/a&gt; / &lt;a href="https://github.com/Musaddiq625/sprout" rel="noopener noreferrer"&gt;
        sprout
      &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;Sprout&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A creature that needs you to go outside. On-device AI, sunlight detection, grass verification.&lt;/p&gt;
&lt;p&gt;Built for &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05" rel="nofollow"&gt;Hacktoberfest 2026 — Week 1: Touch Grass&lt;/a&gt;.&lt;/p&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/37911054/680842995-efce12a1-a55f-4f51-9cbd-4c7b1607bd8a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTQyMTc3MjksIm5iZiI6MTc5NDIxNzQyOSwicGF0aCI6Ii8zNzkxMTA1NC82ODA4NDI5OTUtZWZjZTEyYTEtYTU1Zi00ZjUxLTljYmQtNGM3YjE2MDdiZDhhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjExMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYxMTA5VDA5NDM0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI4MjBiYTk2Y2U1M2E3ODk5Y2M0ZmYzMGE0NzYxNjU1YTk2M2YzY2FiYzQyNTA4MmI1MmI4MTc5NGQ3YzcyZWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.A8LU9QW_kSIocD9AC5z15sfPGQHztDqwnqmhpz7YPsc"&gt;&lt;img width="2000" height="847" alt="sprout mockup" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F37911054%2F680842995-efce12a1-a55f-4f51-9cbd-4c7b1607bd8a.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTQyMTc3MjksIm5iZiI6MTc5NDIxNzQyOSwicGF0aCI6Ii8zNzkxMTA1NC82ODA4NDI5OTUtZWZjZTEyYTEtYTU1Zi00ZjUxLTljYmQtNGM3YjE2MDdiZDhhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjExMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYxMTA5VDA5NDM0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI4MjBiYTk2Y2U1M2E3ODk5Y2M0ZmYzMGE0NzYxNjU1YTk2M2YzY2FiYzQyNTA4MmI1MmI4MTc5NGQ3YzcyZWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.A8LU9QW_kSIocD9AC5z15sfPGQHztDqwnqmhpz7YPsc" class="js-gh-image-fallback"&gt;&lt;/a&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it is&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Sprout is a small creature that lives on your phone. It hatches from an egg, then survives on two things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sunlight&lt;/strong&gt; — detected by the Android ambient light sensor (&lt;code&gt;TYPE_LIGHT&lt;/code&gt;), no camera needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grass&lt;/strong&gt; — confirmed by a green-pixel HSV classifier, with Gemma vision as a borderline arbiter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every line the creature speaks — its greeting, its gratitude, its confusion when you show it something that isn't grass — is generated on-device by Gemma 4 E2B running locally through LiteRT-LM. No network call, no API key, no data leaves the device.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why open-source AI&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Private by design&lt;/strong&gt;: photos of your environment, your outdoor habits, your streak — nothing leaves the device&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline&lt;/strong&gt;: the creature works in a forest…&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/Musaddiq625/sprout" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;MIT licensed. Requires Android API 30+ (arm64).&lt;/p&gt;

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

&lt;p&gt;Sprout is a Flutter app, but the interesting parts are three systems that never touch the network.&lt;/p&gt;

&lt;h3&gt;
  
  
  The body: physical detection
&lt;/h3&gt;

&lt;p&gt;Everything the creature senses comes straight from the phone's hardware — I wrote my own Kotlin &lt;code&gt;EventChannel&lt;/code&gt;s instead of pulling sensor plugins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sunlight&lt;/strong&gt; — Android &lt;code&gt;TYPE_LIGHT&lt;/code&gt; ambient sensor. The feed threshold is 5,000 lux, deliberately above indoor bulbs (~200–800) and bright windows (~1–3k); only genuinely outdoor light counts. Charge builds in 3-second "drinks" at a 10 Hz tick, and a passing shadow drains the bar at 40% speed instead of wiping it — sustained darkness still does.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shake&lt;/strong&gt; — accelerometer magnitude over 2.5 g, with a 900 ms cooldown so one physical shake doesn't fire fifty events. A rough wake: the creature stirs, but the dream it was having is gone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tilt&lt;/strong&gt; — a low-pass filter over the same accelerometer broadcast pulls gravity out of the noise and emits lateral lean (-1..1). Tilt it sideways and the creature complains.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Walking&lt;/strong&gt; — &lt;code&gt;TYPE_STEP_DETECTOR&lt;/code&gt; emits one event per step; carrying it outside counts as care.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grass&lt;/strong&gt; — camera photos are downscaled to 64×64 and scored by a pure-statistics HSV classifier: hue 60–160°, saturation &amp;gt; 0.25, value &amp;gt; 0.20. ≥40% green pixels passes, &amp;lt;20% fails, and the grey zone in between goes to the model. An md5 of the photo blocks re-feeding the same patch twice.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The mind: a local, open-weight model
&lt;/h3&gt;

&lt;p&gt;Every line of dialogue — the hatch moment, the morning greeting keyed to its energy/hunger/stage/streak/mood, gratitude after a drink of sun, confusion at a rejected photo, dreams, dizziness, songs — comes from &lt;strong&gt;Gemma 4 E2B running locally through LiteRT-LM&lt;/strong&gt; (&lt;code&gt;flutter_edge_ai&lt;/code&gt;). No API key, no network call, ~40–80 tokens per line under a character system prompt, a fresh session per call so prompts never accumulate.&lt;/p&gt;

&lt;p&gt;Two places go beyond text:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Function calling.&lt;/strong&gt; Periodically the creature is &lt;em&gt;asked what it wants&lt;/em&gt; — Gemma picks a native tool call: &lt;code&gt;demand_sunlight&lt;/code&gt;, &lt;code&gt;request_grass&lt;/code&gt;, &lt;code&gt;request_walk&lt;/code&gt;, &lt;code&gt;sing&lt;/code&gt;, &lt;code&gt;nap&lt;/code&gt;, &lt;code&gt;ask&lt;/code&gt;, or &lt;code&gt;invent_quest&lt;/code&gt;, which lets it author a small real-world quest ("find something round and alive") that it later verifies itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vision.&lt;/strong&gt; The borderline grass verdict and &lt;code&gt;judgePhoto&lt;/code&gt; — a yes/no check of a photo against a verification prompt the creature invented — run the model's vision modality with an 8-token cap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The model is downloadable, not hardcoded
&lt;/h3&gt;

&lt;p&gt;A first-run Model Manager screen pulls the ~2.4 GB &lt;code&gt;gemma-4-E2B-it.litertlm&lt;/code&gt; from the ungated Hugging Face &lt;code&gt;litert-community&lt;/code&gt; mirror — resumable progress, cancel, and a foreground service so Android's background limit can't kill the download. You can also &lt;strong&gt;sideload any &lt;code&gt;.litertlm&lt;/code&gt; file&lt;/strong&gt; through a file picker, which means a fine-tuned creature personality is a file swap away. Until the model lands, a deterministic &lt;code&gt;FakeGemmaClient&lt;/code&gt; keeps the whole game playable — and keeps the test suite model-free.&lt;/p&gt;

&lt;p&gt;State, care logs, quest progress, and stage history persist in &lt;code&gt;sqflite&lt;/code&gt;. Evolution runs on trials: a couple of feeds plus a completed real-world quest, or roughly nine seconds of honest sunlight.&lt;/p&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;Tech&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;App&lt;/td&gt;
&lt;td&gt;Flutter 3.44.5 / Dart 3.12.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;Gemma 4 E2B &lt;code&gt;.litertlm&lt;/code&gt; via &lt;code&gt;flutter_edge_ai&lt;/code&gt; (LiteRT-LM)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lux sensor&lt;/td&gt;
&lt;td&gt;Custom Kotlin &lt;code&gt;EventChannel&lt;/code&gt; → &lt;code&gt;TYPE_LIGHT&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grass gate&lt;/td&gt;
&lt;td&gt;Custom HSV classifier, ~0 ms, no ML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sqflite&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Camera&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;camera&lt;/code&gt; + &lt;code&gt;image_picker&lt;/code&gt; + &lt;code&gt;image&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;A creature whose whole job is sending you outside cannot depend on a network — that's the premise. Open weights make the premise real:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Offline where it matters.&lt;/strong&gt; The app works in a forest, on a mountain, in a dead zone — exactly the places it sends you. A closed API would brick its voice the moment you left coverage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private by design.&lt;/strong&gt; Photos of your yard, your walking habits, your streak — none of it leaves the device, because there is nowhere to send it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspectable and swappable.&lt;/strong&gt; The brain is a &lt;code&gt;.litertlm&lt;/code&gt; file you can audit, swap, or fine-tune into a different personality — the file-picker import exists precisely so someone can ship their own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero marginal cost.&lt;/strong&gt; It can nag you to go outside forever, for free. No API bill scaling with how needy the creature gets.&lt;/li&gt;
&lt;/ul&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; — Gemma 4 E2B is the creature's entire voice, decision-maker, and vision arbiter, running fully on-device via LiteRT-LM.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built with ❤️ by Musaddiq625&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>flutter</category>
      <category>ai</category>
    </item>
    <item>
      <title>I told an AI "put me in the rain with a bee circling my head" — and heard it orbit my ears</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Mon, 05 Oct 2026 06:20:13 +0000</pubDate>
      <link>https://dev.to/musaddiq625/i-told-an-ai-put-me-in-the-rain-with-a-bee-circling-my-head-and-heard-it-orbit-my-ears-10e9</link>
      <guid>https://dev.to/musaddiq625/i-told-an-ai-put-me-in-the-rain-with-a-bee-circling-my-head-and-heard-it-orbit-my-ears-10e9</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;p&gt;&lt;em&gt;Spatial Audio Sandbox — describe a scene, hear it in 3D&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Flutter + Rust HRTF engine · Gemma-3-1B on Render · ElevenLabs · head-tracked on Android + macOS&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Spatial (3D) Audio Sandbox&lt;/strong&gt; — describe a place in plain words and the app builds it&lt;br&gt;
as a live binaural 3D scene on your headphones. "I'm in the rain and a bee is&lt;br&gt;
circling my head" becomes rain around you, a bee orbiting your head, and thunder&lt;br&gt;
arriving behind you on cue — rendered in real time through a Rust HRTF mixer&lt;br&gt;
with head tracking, so the world stays anchored when you turn.&lt;/p&gt;

&lt;p&gt;I built it for a friend — and for anyone who can describe a place. Whatever&lt;br&gt;
scene he imagines is the scene he gets: rain to sleep to, a forest to focus&lt;br&gt;
in, a city he misses. He writes it; it plays around him.&lt;/p&gt;

&lt;p&gt;The whole pipeline is visible while you listen: a radar shows every source&lt;br&gt;
moving in 3D, stereo meters show which ear is receiving energy, and a&lt;br&gt;
scene-score timeline lays out when each sound cues and ends — you can &lt;em&gt;see&lt;/em&gt;&lt;br&gt;
the spatial audio in a screen recording.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;▶ Watch the demo video (Google Drive)&lt;br&gt;
&lt;/p&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"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://drive.google.com/file/d/1dOTja8ntQY8rZTfu22VS-nfiofh3jHgH/view" rel="noopener noreferrer" class="c-link"&gt;
            Hacktoberfest26-week0_20261005.mp4 - Google Drive
          &lt;/a&gt;
        &lt;/h2&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fssl.gstatic.com%2Fdocs%2Fdoclist%2Fimages%2Fdrive_favicon_2026_32dp.png" width="32" height="32"&gt;
          drive.google.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Headphones recommended — the video captures the binaural mix, so the bee&lt;br&gt;
actually circles your ears if you're wearing earbuds.&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/Musaddiq625" rel="noopener noreferrer"&gt;
        Musaddiq625
      &lt;/a&gt; / &lt;a href="https://github.com/Musaddiq625/spatial_audio_sandbox" rel="noopener noreferrer"&gt;
        spatial_audio_sandbox
      &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;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/37911054/680841326-ed29acd9-8956-4900-b2e3-8de5f429fe4b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTQyMTc3MjksIm5iZiI6MTc5NDIxNzQyOSwicGF0aCI6Ii8zNzkxMTA1NC82ODA4NDEzMjYtZWQyOWFjZDktODk1Ni00OTAwLWIyZTMtOGRlNWY0MjlmZTRiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjExMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYxMTA5VDA5NDM0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk1ZmM3M2RhMzgxNmU1NThiMWYwODg4MmExYjRjNzI2NGNiZmNlODBlOWYwMWRmMjA1YjUyNTIzMjI2ZDQ0MzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.y4i0Ep7Zba1xTQBfV515o12KRcLnDwRMPxeP3chbOXk"&gt;&lt;img width="2000" height="1332" alt="spatial audio mockup" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F37911054%2F680841326-ed29acd9-8956-4900-b2e3-8de5f429fe4b.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTQyMTc3MjksIm5iZiI6MTc5NDIxNzQyOSwicGF0aCI6Ii8zNzkxMTA1NC82ODA4NDEzMjYtZWQyOWFjZDktODk1Ni00OTAwLWIyZTMtOGRlNWY0MjlmZTRiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjExMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYxMTA5VDA5NDM0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk1ZmM3M2RhMzgxNmU1NThiMWYwODg4MmExYjRjNzI2NGNiZmNlODBlOWYwMWRmMjA1YjUyNTIzMjI2ZDQ0MzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.y4i0Ep7Zba1xTQBfV515o12KRcLnDwRMPxeP3chbOXk" class="js-gh-image-fallback"&gt;&lt;/a&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Spatial Audio Sandbox&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Describe a place in plain words — &lt;em&gt;"I'm in the rain and a bee is
circling my head"&lt;/em&gt; — and this app builds it as a live binaural 3D audio
scene on your headphones. A Gemma model plans the scene, a deterministic
compiler grounds it against your prompt, ElevenLabs generates each
sound, and a real-time Rust mixer renders every source through HRTF
convolution while head tracking keeps the world anchored as you turn.&lt;/p&gt;
&lt;p&gt;Built for &lt;a href="https://dev.to/challenges/hf26" rel="nofollow"&gt;Hacktoberfest 2026 — Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For anyone who wishes they were somewhere else: describe the
place, put on headphones, be there.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The pipeline (visible in-app)&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;prompt ──► Gemma on Render ──► SceneCompiler ──► ElevenLabs ──► Rust HRTF
         screenplay JSON      grounding/timing   per-source      spatial mix
                              repairs            clips           + head pose
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma (hosted on Render)&lt;/strong&gt; writes a constrained &lt;em&gt;screenplay&lt;/em&gt; JSON —
sources, places, movement verbs, start/end cues. The schema is
enforced…&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/Musaddiq625/spatial_audio_sandbox" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Flutter UI + pure-Rust DSP engine bridged with flutter_rust_bridge. Android and&lt;br&gt;
macOS. MIT. Three recorded Gemma scenes are bundled, so the repo demo plays&lt;br&gt;
with no API keys.&lt;/p&gt;

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

&lt;p&gt;The pipeline: &lt;strong&gt;prompt → Gemma on Render → SceneCompiler → ElevenLabs → Rust HRTF&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma-3-1B-it (Q4_K_M, ctx 4096)&lt;/strong&gt; served by llama.cpp in Docker on Render's
2 GB standard plan — weights baked into the image at build time. It authors a
constrained &lt;em&gt;screenplay&lt;/em&gt; JSON: sources, positions, movement verbs, end cues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;SceneCompiler&lt;/code&gt; (Dart)&lt;/strong&gt; is the part I'm proudest of — the model
hallucinates (it invented "a plane" in a cave prompt), so a deterministic
pass grounds every source against the prompt's actual words, drops invented
ones, resolves "then the fire goes out" into timed end events, and repairs
truncated JSON. Its drops and repairs are visible in the UI pipeline strip.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ElevenLabs&lt;/strong&gt; generates each source's clip; a 4-layer cache (memory → disk →
bundled assets → API) means replays never re-bill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rust engine&lt;/strong&gt; mixes on an allocation-free, lock-free audio callback —
rtrb command queue, pose seqlock, synthetic HRTF with physically-modeled head
shadow. Because a GC pause in the callback is an audible click.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Every load-bearing piece is open or open-weight. The model weights are the&lt;br&gt;
portable part: the same Dockerfile line that pulls &lt;code&gt;gemma-3-1b-it&lt;/code&gt; could pull&lt;br&gt;
any GGUF — the app doesn't care whose checkpoint writes the screenplay JSON.&lt;br&gt;
On a closed API that schema would be hostage to a vendor, every scene would&lt;br&gt;
bill per call, and "it still works offline" would be impossible. Here the&lt;br&gt;
keyless demo path runs end-to-end without keys.&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; — the scene's author is gemma-3-1b-it, open weights served
on my own endpoint.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render&lt;/strong&gt; — Render is the inference host (Docker service running
llama.cpp).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of ElevenLabs&lt;/strong&gt; — every generated source's audio comes from the SFX
API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built with ❤️ by Musaddiq625&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Completed this amazing MVP ❤️ - n8n + Supabase + OpenAI + OneSignal + Flutter</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Tue, 20 Jan 2026 14:29:56 +0000</pubDate>
      <link>https://dev.to/musaddiq625/completed-this-amazing-mvp-76g</link>
      <guid>https://dev.to/musaddiq625/completed-this-amazing-mvp-76g</guid>
      <description>&lt;p&gt;Completed this amazing MVP ❤️&lt;br&gt;
&lt;strong&gt;n8n + Supabase + OpenAI + OneSignal + Flutter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I Built an Automated Content Publishing Workflow with AI for Social Media Posting&lt;/p&gt;

&lt;p&gt;Last night, I posted on LinkedIn using this workflow without opening LinkedIn itself 😉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 𝗚𝗲𝗻𝗲𝗿𝗮𝘁𝗲:&lt;/strong&gt;&lt;br&gt;
Write content with OpenAI in your own writing style 𝗯𝗮𝘀𝗲𝗱 𝗼𝗻 𝘆𝗼𝘂𝗿 𝗰𝗼𝗻𝘁𝗲𝗻𝘁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔔 𝗚𝗲𝘁 𝗡𝗼𝘁𝗶𝗳𝗶𝗲𝗱:&lt;/strong&gt;&lt;br&gt;
Get Notified in the app with the updated status&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ 𝗠𝗼𝗯𝗶𝗹𝗲 𝗮𝗽𝗽 -&amp;gt; 𝗔𝗽𝗽𝗿𝗼𝘃𝗲:&lt;/strong&gt;&lt;br&gt;
Post content on multiple social media platforms at once&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔄 𝗠𝗼𝗯𝗶𝗹𝗲 𝗮𝗽𝗽 -&amp;gt; 𝗥𝗲𝗷𝗲𝗰𝘁:&lt;/strong&gt;&lt;br&gt;
Use the OpenAI to write it again&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📃 𝗟𝗶𝘃𝗲 𝗦𝘁𝗮𝘁𝘂𝘀:&lt;/strong&gt;&lt;br&gt;
See live status of posts in the app&lt;/p&gt;

&lt;p&gt;For technical detail, you can check out my medium article:&lt;br&gt;
&lt;a href="https://medium.com/@musaddiq625/how-i-built-an-automated-content-publishing-workflow-with-ai-for-social-media-posting-4a12233d4a50" rel="noopener noreferrer"&gt;https://medium.com/@musaddiq625/how-i-built-an-automated-content-publishing-workflow-with-ai-for-social-media-posting-4a12233d4a50&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LinkedIn Post: &lt;a href="https://www.linkedin.com/posts/musaddiq625_indiedev-n8n-supabase-activity-7418935487777890304-ES3m" rel="noopener noreferrer"&gt;https://www.linkedin.com/posts/musaddiq625_indiedev-n8n-supabase-activity-7418935487777890304-ES3m&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like, Comment and Share the post 😊 ❤️ &lt;/p&gt;

</description>
      <category>flutter</category>
      <category>openai</category>
      <category>automation</category>
      <category>ai</category>
    </item>
    <item>
      <title>𝗪𝗿𝗮𝗽𝗽𝗲𝗱 𝟮𝟬𝟮𝟱 ⭐️</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Wed, 31 Dec 2025 11:39:51 +0000</pubDate>
      <link>https://dev.to/musaddiq625/-1n24</link>
      <guid>https://dev.to/musaddiq625/-1n24</guid>
      <description>&lt;p&gt;&lt;strong&gt;𝗪𝗿𝗮𝗽𝗽𝗲𝗱 𝟮𝟬𝟮𝟱&lt;/strong&gt;, This year, I used a lot of AI IDEs ⚡️🤖&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used 36,539,316 tokens only in Cursor&lt;/li&gt;
&lt;li&gt;Wrote 74,980 lines of code using Windsurf&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've tried different IDEs to write my code:&lt;br&gt;
&lt;strong&gt;Cursor&lt;br&gt;
Windsurf&lt;br&gt;
TRAE&lt;br&gt;
Claude&lt;br&gt;
Antigravity.Google&lt;br&gt;
Void (YC S24)&lt;br&gt;
Zed Industries&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whether it is Flutter, Python, React or even SwiftUI, I created wonderful Apps, Desktop Apps, Games and even a few Websites ✨&lt;/p&gt;

&lt;p&gt;Honestly didn’t expect AI IDEs to become this normal, this fast, especially for me 🕊️&lt;/p&gt;

&lt;p&gt;Linkedin Post: &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7412062717727133696/" rel="noopener noreferrer"&gt;https://www.linkedin.com/feed/update/urn:li:activity:7412062717727133696/&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.amazonaws.com%2Fuploads%2Farticles%2Fx8jbqxkmhl0gzip3q3ho.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.amazonaws.com%2Fuploads%2Farticles%2Fx8jbqxkmhl0gzip3q3ho.png" alt="Cursor usage tokens" width="750" height="658"&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.amazonaws.com%2Fuploads%2Farticles%2Fiyqy3thdvcy9ri4l7qoy.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.amazonaws.com%2Fuploads%2Farticles%2Fiyqy3thdvcy9ri4l7qoy.png" alt="Windsurf total lines of code" width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wrapped2025</category>
      <category>flutter</category>
      <category>ai</category>
      <category>musaddiq625</category>
    </item>
    <item>
      <title>𝟭.𝟰𝗞+ 𝗗𝗼𝘄𝗻𝗹𝗼𝗮𝗱𝘀 🎉</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Mon, 13 Oct 2025 07:39:05 +0000</pubDate>
      <link>https://dev.to/musaddiq625/-23e3</link>
      <guid>https://dev.to/musaddiq625/-23e3</guid>
      <description>&lt;p&gt;just noticed, one of my package 𝘀𝗰𝗿𝗲𝗲𝗻_𝗼𝗳𝗳 is growing faster than I expected&lt;br&gt;
Grateful to everyone using it 🙌🏻&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pub.dev/packages/screen_off" rel="noopener noreferrer"&gt;https://pub.dev/packages/screen_off&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  flutter #flutterdev #opensource #coding #pubdev #musaddiq625
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Hacktoberfest 2025 - First post</title>
      <dc:creator>Musaddiq Ahmed Khan</dc:creator>
      <pubDate>Tue, 07 Oct 2025 09:01:13 +0000</pubDate>
      <link>https://dev.to/musaddiq625/hacktoberfest-2025-first-post-363m</link>
      <guid>https://dev.to/musaddiq625/hacktoberfest-2025-first-post-363m</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest2025"&gt;2025 Hacktoberfest Writing Challenge&lt;/a&gt;: Maintainer Spotlight&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Hello Devs&lt;br&gt;
This is my first post on dev.to&lt;/p&gt;

&lt;p&gt;I build stuff with Flutter&lt;br&gt;
and honestly, I believe &lt;strong&gt;anything&lt;/strong&gt; can be built using &lt;strong&gt;Flutter&lt;/strong&gt; ❤️&lt;br&gt;
I do have &lt;a href="https://musaddiq625.carrd.co" rel="noopener noreferrer"&gt;5.5+ years of experience&lt;/a&gt; using Flutter&lt;/p&gt;

&lt;p&gt;I've built Packages and Games using Flutter&lt;br&gt;
From mobile apps to games, and even controlling Minecraft, I love exploring the boundaries of what's possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 Packages:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://pub.dev/packages/generic_bloc_listener" rel="noopener noreferrer"&gt;generic_bloc_listener&lt;/a&gt;&lt;br&gt;
&lt;a href="https://pub.dev/packages/screen_off" rel="noopener noreferrer"&gt;screen_off&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎮 Games:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://musaddiq625.github.io/digitwars" rel="noopener noreferrer"&gt;DigitWars IO&lt;/a&gt;&lt;br&gt;
&lt;a href="https://musaddiq625.github.io/fluterius" rel="noopener noreferrer"&gt;Fluterius&lt;/a&gt;&lt;br&gt;
More Games under development 🚧&lt;/p&gt;

&lt;h3&gt;
  
  
  🧱 Minecraft x Flutter x Python:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/Musaddiq625/minecraft_flutter_controller" rel="noopener noreferrer"&gt;Minecraft Flutter Controller&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Musaddiq625/minecraft_python_controller" rel="noopener noreferrer"&gt;Minecraft Python Controller&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'll be actively reviewing Pull Requests during &lt;strong&gt;Hacktoberfest&lt;/strong&gt; and would love for you to contribute!&lt;br&gt;
Whether it's fixing bugs, improving documentation, or adding features&lt;br&gt;
Your PRs are welcome!&lt;/p&gt;

&lt;p&gt;I also &lt;a href="https://medium.com/@musaddiq625" rel="noopener noreferrer"&gt;write on Medium&lt;/a&gt; about unique topics, mainly focused on architecture-level concepts 💡&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/musaddiq625" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt; - &lt;a href="https://musaddiq625.carrd.co" rel="noopener noreferrer"&gt;Portfolio&lt;/a&gt; - &lt;a href="https://medium.com/@musaddiq625" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; - &lt;a href="https://github.com/musaddiq625" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>flutter</category>
    </item>
  </channel>
</rss>
