<?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: taha</title>
    <description>The latest articles on DEV Community by taha (@tahary).</description>
    <link>https://dev.to/tahary</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%2F4155629%2Fd02038ad-5862-45f7-8cda-cd112b8a3622.jpg</url>
      <title>DEV Community: taha</title>
      <link>https://dev.to/tahary</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tahary"/>
    <language>en</language>
    <item>
      <title>Vaultledger: a Freelance essential</title>
      <dc:creator>taha</dc:creator>
      <pubDate>Wed, 14 Oct 2026 00:29:43 +0000</pubDate>
      <link>https://dev.to/tahary/vaultledger-a-freelance-essential-57dg</link>
      <guid>https://dev.to/tahary/vaultledger-a-freelance-essential-57dg</guid>
      <description>&lt;p&gt;What I Built&lt;/p&gt;

&lt;p&gt;As a computer science student juggling freelance development, keeping track of messy PDF invoices, parsing tax rates, and formatting general ledger journal entries is a major distraction.&lt;/p&gt;

&lt;p&gt;I built VaultLedger: a 100% offline, air-gapped desktop utility for freelancers and independent contractors that ingests messy invoices and receipts (PDFs and images), extracts structured financial line items, forces deterministic schema extraction via an embedded local Google Gemma 2B (Q4_K_M GGUF) model, persists records in a WAL SQLite database anchored by a SHA-256 tamper-evident hash chain, and exports audit-ready Double-Entry General Ledger CSVs.&lt;/p&gt;

&lt;p&gt;Freelancers and small business owners pay for this with absolute privacy: zero cloud dependencies, zero data leaks, and zero risk of proprietary tax data hitting third-party LLM APIs.&lt;br&gt;
Demo&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GitHub Repository: tahaenasraoui-debug/vault-ledger
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;em&gt;[](&lt;/em&gt;&lt;a href="![%20](https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/vswvgqw1als6jllzpywy.png)"&gt;&lt;/a&gt;&lt;em&gt;)&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;You can embed your repository directly using Dev.to's GitHub tag:&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/tahaenasraoui-debug" rel="noopener noreferrer"&gt;
        tahaenasraoui-debug
      &lt;/a&gt; / &lt;a href="https://github.com/tahaenasraoui-debug/vault-ledger" rel="noopener noreferrer"&gt;
        vault-ledger
      &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;🛡️ VaultLedger&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;strong&gt;Air-Gapped Local AI Financial Extraction &amp;amp; Cryptographic Double-Entry Ledger&lt;/strong&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Zero Cloud. Zero Telemetry. 100% On-Device Rust + Quantized Gemma 2B Inference.&lt;/em&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚡ Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Freelancers, auditors, and privacy-critical businesses shouldn't have to upload sensitive invoices, tax IDs, and banking records to third-party cloud APIs just to automate bookkeeping.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VaultLedger&lt;/strong&gt; is a strictly &lt;strong&gt;air-gapped, local-first desktop application&lt;/strong&gt; engineered in &lt;strong&gt;Rust&lt;/strong&gt; and &lt;strong&gt;Tauri v2&lt;/strong&gt;. It ingests messy PDF invoices or receipt photos, extracts structured accounting line items using an embedded &lt;strong&gt;Google Gemma 2B (Q4_K_M GGUF)&lt;/strong&gt; model running via pure-Rust &lt;strong&gt;Candle&lt;/strong&gt; tensors, anchors every record into a &lt;strong&gt;SHA-256 tamper-evident SQLite database&lt;/strong&gt;, and exports balanced &lt;strong&gt;Double-Entry General Ledger CSVs&lt;/strong&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🔒 The Air-Gap Guarantee&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compile-Time Network Ban:&lt;/strong&gt; &lt;code&gt;build.rs&lt;/code&gt; inspects the resolved Cargo dependency graph at compile time and panics if any HTTP/network crate (&lt;code&gt;reqwest&lt;/code&gt;, &lt;code&gt;curl&lt;/code&gt;, &lt;code&gt;hyper&lt;/code&gt;, &lt;code&gt;ureq&lt;/code&gt;) is present.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory Safety:&lt;/strong&gt; Compiled with &lt;code&gt;#![forbid(unsafe_code)]&lt;/code&gt; across the…&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/tahaenasraoui-debug/vault-ledger" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Core architectural highlights from the codebase:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The Air-Gap Enforcer (src-tauri/build.rs): A compile-time guardrail that scans resolved Cargo dependencies and panics the build if any network/HTTP client (reqwest, curl, hyper) is introduced.

Local AI Engine (src-tauri/src/inference.rs): Loads quantized Gemma 2B Instruct via pure-Rust candle-core and candle-transformers, streaming token pieces over Tauri v2 events.

Tamper-Evident Vault (src-tauri/src/storage.rs): Implements active and audit hash chains (prev_chain_hash -&amp;gt; chain_hash) in SQLite WAL mode.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;p&gt;VaultLedger is built around open-weight local inference and strict systems-level Rust:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Framework: Tauri v2 (core = "2") with multi-threaded async IPC commands routing CPU-heavy tasks to background Tokio blocking threads.

Local LLM Inference Engine: HuggingFace's pure-Rust candle framework running Google Gemma 2B Instruct quantized to Q4_K_M, paired with local HuggingFace tokenizers.

Hybrid Ingestion Pipeline: Direct PDF text extraction via lopdf, coupled with an automatic fallback for scanned receipts/photos using contrast enhancement and pure-Rust neural OCR (ocrs + rten weights).

Deterministic Accounting Reconciler: Uses schemars to enforce schema validation, fixed-point integer cent representation (i64) to eliminate IEEE-754 floating-point drift, and trial-balance invariants (net + tax == total).

UI: A sleek, glassmorphic Obsidian Fintech dashboard built with Vite, TypeScript, and custom CSS variables.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;p&gt;Open-source AI and open-weight models made VaultLedger possible. A closed API (like OpenAI or Anthropic) would require sending raw invoices, vendor names, exact amounts, and tax IDs to a corporate server over an active HTTPS connection—violating data privacy laws (like GDPR) and failing strict air-gapped security mandates.&lt;/p&gt;

&lt;p&gt;Because of open-weight models like Gemma 2B and pure-Rust tensor libraries like Candle, we can bundle state-of-the-art intelligence directly inside a local desktop binary. It proves that powerful AI automation does not require sacrificing data sovereignty or trusting third-party cloud infrastructure.&lt;br&gt;
My Agent Session&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Built iteratively using local developer agent workflows, enforcing #![forbid(unsafe_code)] and strict control-flow error handling via thiserror.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tested locally on personal freelance invoices and university project expense receipts in Rabat, Morocco, successfully generating balanced double-entry accounting CSV journals ready for tax audit.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Open-Source AI / Local Inference

Side Hustle / Developer Productivity
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>VaultLedger: Freelance essential.</title>
      <dc:creator>taha</dc:creator>
      <pubDate>Wed, 14 Oct 2026 00:08:01 +0000</pubDate>
      <link>https://dev.to/tahary/vaultledger-freelance-essential-3fnl</link>
      <guid>https://dev.to/tahary/vaultledger-freelance-essential-3fnl</guid>
      <description>&lt;p&gt;Here is your complete, ready-to-publish Dev.to submission post for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle, tailored directly around VaultLedger!&lt;br&gt;
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;br&gt;
What I Built&lt;/p&gt;

&lt;p&gt;As a computer science student juggling freelance development, keeping track of messy PDF invoices, parsing tax rates, and formatting general ledger journal entries is a major distraction.&lt;/p&gt;

&lt;p&gt;I built VaultLedger: a 100% offline, air-gapped desktop utility for freelancers and independent contractors that ingests messy invoices and receipts (PDFs and images), extracts structured financial line items, forces deterministic schema extraction via an embedded local Google Gemma 2B (Q4_K_M GGUF) model, persists records in a WAL SQLite database anchored by a SHA-256 tamper-evident hash chain, and exports audit-ready Double-Entry General Ledger CSVs.&lt;/p&gt;

&lt;p&gt;Freelancers and small business owners pay for this with absolute privacy: zero cloud dependencies, zero data leaks, and zero risk of proprietary tax data hitting third-party LLM APIs.&lt;br&gt;
Demo&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GitHub Repository: tahaenasraoui-debug/vault-ledger

Add a screen recording GIF here showing a PDF being dragged in, real-time JSON tokens streaming in the neural terminal, the KPI cards updating, and the CSV export.
&lt;/code&gt;&lt;/pre&gt;

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

&lt;p&gt;You can embed your repository directly using Dev.to's GitHub tag:&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/tahaenasraoui-debug" rel="noopener noreferrer"&gt;
        tahaenasraoui-debug
      &lt;/a&gt; / &lt;a href="https://github.com/tahaenasraoui-debug/vault-ledger" rel="noopener noreferrer"&gt;
        vault-ledger
      &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;🛡️ VaultLedger&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;strong&gt;Air-Gapped Local AI Financial Extraction &amp;amp; Cryptographic Double-Entry Ledger&lt;/strong&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Zero Cloud. Zero Telemetry. 100% On-Device Rust + Quantized Gemma 2B Inference.&lt;/em&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚡ Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Freelancers, auditors, and privacy-critical businesses shouldn't have to upload sensitive invoices, tax IDs, and banking records to third-party cloud APIs just to automate bookkeeping.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VaultLedger&lt;/strong&gt; is a strictly &lt;strong&gt;air-gapped, local-first desktop application&lt;/strong&gt; engineered in &lt;strong&gt;Rust&lt;/strong&gt; and &lt;strong&gt;Tauri v2&lt;/strong&gt;. It ingests messy PDF invoices or receipt photos, extracts structured accounting line items using an embedded &lt;strong&gt;Google Gemma 2B (Q4_K_M GGUF)&lt;/strong&gt; model running via pure-Rust &lt;strong&gt;Candle&lt;/strong&gt; tensors, anchors every record into a &lt;strong&gt;SHA-256 tamper-evident SQLite database&lt;/strong&gt;, and exports balanced &lt;strong&gt;Double-Entry General Ledger CSVs&lt;/strong&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🔒 The Air-Gap Guarantee&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compile-Time Network Ban:&lt;/strong&gt; &lt;code&gt;build.rs&lt;/code&gt; inspects the resolved Cargo dependency graph at compile time and panics if any HTTP/network crate (&lt;code&gt;reqwest&lt;/code&gt;, &lt;code&gt;curl&lt;/code&gt;, &lt;code&gt;hyper&lt;/code&gt;, &lt;code&gt;ureq&lt;/code&gt;) is present.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory Safety:&lt;/strong&gt; Compiled with &lt;code&gt;#![forbid(unsafe_code)]&lt;/code&gt; across the…&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/tahaenasraoui-debug/vault-ledger" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Core architectural highlights from the codebase:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The Air-Gap Enforcer (src-tauri/build.rs): A compile-time guardrail that scans resolved Cargo dependencies and panics the build if any network/HTTP client (reqwest, curl, hyper) is introduced.

Local AI Engine (src-tauri/src/inference.rs): Loads quantized Gemma 2B Instruct via pure-Rust candle-core and candle-transformers, streaming token pieces over Tauri v2 events.

Tamper-Evident Vault (src-tauri/src/storage.rs): Implements active and audit hash chains (prev_chain_hash -&amp;gt; chain_hash) in SQLite WAL mode.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;p&gt;VaultLedger is built around open-weight local inference and strict systems-level Rust:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Framework: Tauri v2 (core = "2") with multi-threaded async IPC commands routing CPU-heavy tasks to background Tokio blocking threads.

Local LLM Inference Engine: HuggingFace's pure-Rust candle framework running Google Gemma 2B Instruct quantized to Q4_K_M, paired with local HuggingFace tokenizers.

Hybrid Ingestion Pipeline: Direct PDF text extraction via lopdf, coupled with an automatic fallback for scanned receipts/photos using contrast enhancement and pure-Rust neural OCR (ocrs + rten weights).

Deterministic Accounting Reconciler: Uses schemars to enforce schema validation, fixed-point integer cent representation (i64) to eliminate IEEE-754 floating-point drift, and trial-balance invariants (net + tax == total).

UI: A sleek, glassmorphic Obsidian Fintech dashboard built with Vite, TypeScript, and custom CSS variables.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;p&gt;Open-source AI and open-weight models made VaultLedger possible. A closed API (like OpenAI or Anthropic) would require sending raw invoices, vendor names, exact amounts, and tax IDs to a corporate server over an active HTTPS connection—violating data privacy laws (like GDPR) and failing strict air-gapped security mandates.&lt;/p&gt;

&lt;p&gt;Because of open-weight models like Gemma 2B and pure-Rust tensor libraries like Candle, we can bundle state-of-the-art intelligence directly inside a local desktop binary. It proves that powerful AI automation does not require sacrificing data sovereignty or trusting third-party cloud infrastructure.&lt;br&gt;
My Agent Session&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Built iteratively using local developer agent workflows, enforcing #![forbid(unsafe_code)] and strict control-flow error handling via thiserror.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tested locally on personal freelance invoices and university project expense receipts in Rabat, Morocco, successfully generating balanced double-entry accounting CSV journals ready for tax audit.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Open-Source AI / Local Inference

Side Hustle / Developer Productivityapplies, or remove this section. --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>The Verdant Knight: An Offline-First Naturalist RPG Powered by WebGPU</title>
      <dc:creator>taha</dc:creator>
      <pubDate>Fri, 09 Oct 2026 23:12:29 +0000</pubDate>
      <link>https://dev.to/tahary/the-verdant-knight-an-offline-first-naturalist-rpg-powered-by-webgpu-266l</link>
      <guid>https://dev.to/tahary/the-verdant-knight-an-offline-first-naturalist-rpg-powered-by-webgpu-266l</guid>
      <description>&lt;p&gt;Here is the complete DEV.to post with your YouTube video embedded directly into the Demo section using DEV’s native liquid tag:&lt;/p&gt;

&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;br&gt;
What I Built&lt;/p&gt;

&lt;p&gt;The Verdant Knight: Chronicles of the Realm is a client-side naturalist RPG designed around zero screen time on outdoor trails.&lt;/p&gt;

&lt;p&gt;Most outdoor and fitness applications demand continuous screen engagement—monitoring route metrics, managing social shares, or framing camera angles. The Verdant Knight flips this completely: physical outdoor exploration acts as your crafting bench and leveling system, while your screen stays in your pocket.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Designed for Zero Screen Time: While walking trails, woodlands, or local parks, players keep their phones away. When coming across an interesting natural element, they snap a quick photo using a dedicated shutter button.

Haptic Confirmation: The app triggers tactile vibration pulses (navigator.vibrate([100, 50, 100])) so players can confirm their capture purely by touch without glancing at their screen.

Naturalist Progression Matrix: Specimens map directly to five character RPG stats and gear slots:

    Bark &amp;amp; Timber → Defense (DEF), unlocking cuirasses and plated armors.

    Foliage &amp;amp; Needles → Agility (DEX), unlocking cloaks and wind-runner mantles.

    Stones &amp;amp; Minerals → Strength (STR), unlocking blades and bludgeons.

    Flowers &amp;amp; Berries → Wisdom (WIS), unlocking talismans, amulets, and circlets.

    Fungi, Moss &amp;amp; Lichen → Endurance (END), unlocking spore shields and sashes.

Dynamic Paper-Doll Pixel Avatars: Gear dynamically equips and renders onto a customized pixel-art canvas.

The Field Codex: Every encounter cataloged logs rarity tiers, scientific classifications, and discoveries directly in offline storage.
&lt;/code&gt;&lt;/pre&gt;

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

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Live Web App: Play The Verdant Knight

Video Walkthrough: Watch Trail Demo on YouTube

Android APK Package: Direct Download on GitHub Releases
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Code&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/tahaenasraoui-debug" rel="noopener noreferrer"&gt;
        tahaenasraoui-debug
      &lt;/a&gt; / &lt;a href="https://github.com/tahaenasraoui-debug/The-Verdant-Knight-Chronicles-of-the-Realm" rel="noopener noreferrer"&gt;
        The-Verdant-Knight-Chronicles-of-the-Realm
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      An offline-first naturalist RPG powered by on-device open-weight AI (WebGPU). Step outside, photograph the wild, and let nature level up your character sheet—with zero screen time on the trail.
    &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;🌿 The Verdant Knight: Chronicles of the Realm&lt;/h1&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;An offline-first naturalist RPG powered by on-device open-weight AI (WebGPU).&lt;br&gt;
Built for the &lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 1: "Touch Grass"&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/tahaenasraoui-debug/The-Verdant-Knight-Chronicles-of-the-Realm/screenshot.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Ftahaenasraoui-debug%2FThe-Verdant-Knight-Chronicles-of-the-Realm%2FHEAD%2Fscreenshot.png" alt="The Verdant Knight Gameplay Preview"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎬 Demo&lt;/h2&gt;
&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Web App:&lt;/strong&gt; &lt;a href="https://tahaenasraoui-debug.github.io/The-Verdant-Knight-Chronicles-of-the-Realm/" rel="nofollow noopener noreferrer"&gt;Play The Verdant Knight&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌲 Overview&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;Most outdoor applications encourage users to keep their eyes locked on screens—checking GPS waypoints, tweaking camera filters, or browsing social media feeds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Verdant Knight&lt;/strong&gt; flips this dynamic entirely. It is a client-side naturalist RPG where physical exploration acts as your crafting bench and leveling system.&lt;/p&gt;

&lt;p&gt;Players explore outdoor trails, woodlands, or local parks with minimal screen interaction. When spotting interesting natural elements, they snap a single photograph. An open-weight vision model processes the image locally on their device, evaluates the specimen, attunes the find to one of five core elemental attributes, and logs the discovery inside a field codex.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📱 Android Installation&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;Download and install the APK…&lt;/p&gt;&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/tahaenasraoui-debug/The-Verdant-Knight-Chronicles-of-the-Realm" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;
How I Built It

&lt;p&gt;The game runs entirely inside the client with zero server dependencies or API keys:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI Runtime &amp;amp; Local Inference: Powered by Transformers.js v3 (@huggingface/transformers) executing client-side with WebGPU hardware acceleration (with an automatic fallback to WebAssembly SIMD for non-WebGPU environments).

Vision Model Backbone: Uses an open-weight quantized MobileNetV4 neural network (onnx-community/mobilenetv4_conv_small.e2400_r224_in1k). On the very first launch, the browser caches the ~15 MB quantized model into indexed browser cache; from that moment on, all vision classification runs offline.

Pixel-Art Engine: Native HTML5 Canvas handling layered paper-doll asset assembly, procedural palette shifts, and equipment overlay.

Audio Synthesizer: Real-time 8-bit chiptune audio synthesized at runtime using the Web Audio API (no bulky audio files to stream).

Persistence: Entire state, discovered codex entries, player stats, and inventory sync to the browser's localStorage.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Backcountry Offline Execution: The best nature trails, forests, and mountain paths have little to no cellular reception. Cloud-hosted APIs fail the second you lose cell coverage. Open-weight ONNX models paired with in-browser WebGPU run anywhere on Earth without an internet connection.

True Location &amp;amp; Visual Privacy: Trail photographs embed EXIF geolocation tags and personal environmental snapshots. By utilizing open-weight inference locally on the device, no visual feed, metadata, or coordinates ever leave the user's phone.

Zero Marginal Inference Cost: Open innovation allows indie developers to distribute functional AI applications without paying subscription fees or bearing usage token overheads.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Main Track: Hacktoberfest Open-Source AI Challenge Week 1: "Touch Grass"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Team Submissions&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Lead &amp;amp; Development: @tahaenasraoui-debug
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>MakeFud — Zero-Build Recipe Discovery from Whatever is in Your Fridge</title>
      <dc:creator>taha</dc:creator>
      <pubDate>Sun, 04 Oct 2026 21:13:18 +0000</pubDate>
      <link>https://dev.to/tahary/makefud-zero-build-recipe-discovery-from-whatever-is-in-your-fridge-4li8</link>
      <guid>https://dev.to/tahary/makefud-zero-build-recipe-discovery-from-whatever-is-in-your-fridge-4li8</guid>
      <description>&lt;p&gt;What I Built&lt;/p&gt;

&lt;p&gt;MakeFud is an ultra-lean, zero-build web app built to transform scattered kitchen ingredients into wholesome, affordable home-cooked meals.&lt;br&gt;
The Story: Cooking for Walid&lt;/p&gt;

&lt;p&gt;I built MakeFud for my close friend Walid. Living on his own comes with a demanding routine, tight finances, and the daily grind of running a solo household. Time and again, the same routine played out: Walid would return home exhausted, open his fridge, stare blankly at a stray tomato, a couple of eggs, an onion, and some dry lentils, sigh, and shut the door.&lt;/p&gt;

&lt;p&gt;When money is tight and energy is depleted, decision fatigue takes over. A few basic staples don't immediately feel like a complete dinner, making it tempting to skip the meal altogether or spend hard-earned cash on fast food.&lt;/p&gt;

&lt;p&gt;Walid didn't need complicated cooking apps filled with 25-step gourmet recipes or exotic seasonings he couldn't afford. He needed a practical, reliable tool to turn what he already had into a nutritious, filling plate without the stress.&lt;br&gt;
How MakeFud Solves It&lt;/p&gt;

&lt;p&gt;MakeFud strips away the cognitive friction of cooking on a budget:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ingredient-First Discovery: Walid simply types the items sitting on his shelf or counter (like egg, rice, or tomato). MakeFud instantly surfaces recipes prioritizing dishes that use those exact items with the fewest missing ingredients.

Transparent Missing Ingredients: Instead of surprising the user midway through prep, each recipe card clearly highlights what is already on hand versus the exact extra items required.

Zero-Cost Instant Sorting: Walid can sort recommendations client-side by preparation time (for quick dinners between tasks), calorie count (to ensure he gets sustained energy), or total ingredient count (to minimize cleanup and dishes).

Offline Mock Data: When mobile data is spotty or an API key isn't configured, a built-in demo mode provides offline pantry-friendly ideas without needing external accounts or credentials.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Demo&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Live Deployment: https://tahaenasraoui-debug.github.io/makefud-app/

Local Run: Clone the repo and run python3 -m http.server, then open http://localhost:8000.

No-Key Demo Mode: The app includes a built-in mock dataset so anyone can test recipes immediately without signing up for third-party services.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Code&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/tahaenasraoui-debug" rel="noopener noreferrer"&gt;
        tahaenasraoui-debug
      &lt;/a&gt; / &lt;a href="https://github.com/tahaenasraoui-debug/makefud-app" rel="noopener noreferrer"&gt;
        makefud-app
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Zero-build web app that finds healthy recipes from whatever ingredients you have in your fridge. Built with vanilla HTML/JS and the Spoonacular API.
    &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;MakeFud 🍳&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Empty fridge? Type what you have. Get recipes sorted by prep time, calories, or ingredient count.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;MakeFud is a zero-build, ultra-lean web application that turns whatever ingredients you have left in your pantry or fridge into healthy, realistic meals[cite: 1, 3]. It minimizes food waste and takes the stress out of cooking on a budget or with limited time.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Preview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/tahaenasraoui-debug/makefud-app/screenshot.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Ftahaenasraoui-debug%2Fmakefud-app%2FHEAD%2Fscreenshot.png" alt="MakeFud App Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fridge-to-Plate Matching:&lt;/strong&gt; Enter whatever raw ingredients you have on hand to find recipes that maximize what you already own[cite: 3].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing Ingredients Breakdown:&lt;/strong&gt; In-browser fuzzy matching shows exactly which extra items a recipe needs[cite: 3].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Cost Sorting:&lt;/strong&gt; Instant client-side sorting by preparation time, calories per serving, or total ingredient count[cite: 3].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline / Demo Mode:&lt;/strong&gt; Ships with built-in mock recipes so you can run and test the app immediately without an API key or internet connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Build Architecture:&lt;/strong&gt; Pure HTML, native CSS, and vanilla ES6+. No &lt;code&gt;npm&lt;/code&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/tahaenasraoui-debug/makefud-app" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The project is built with zero runtime dependencies and contains four primary files:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index.html – The complete, responsive single-page application built with semantic HTML, fluid native CSS with light/dark theme detection, and vanilla ES6+.

CONTRIBUTING.md – Clear ground rules, accessibility standards, and beginner-friendly issues for Hacktoberfest contributors.

DISCLAIMER.md – Nutrition and medical disclaimers, plus third-party API attribution guidelines.

LICENSE – MIT License.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;p&gt;To ensure Walid could pull this up on a cheap phone or slow connection instantly, I imposed strict design constraints:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Zero-Build &amp;amp; Zero-Dependency Stack: No bundlers, npm packages, or heavy UI frameworks. Everything runs directly in the browser via standard Web APIs.

Local Ingredient Fuzzy-Matching: Missing ingredients are calculated client-side by fuzzy-matching input tags against recipe components, saving quota and running with zero latency.

Dual Data Modes: Operates both with live queries to the Spoonacular API (delivering exact calorie counts and prep times) and a self-contained offline dataset of quick, budget-friendly pantry dishes.

Privacy &amp;amp; Security by Design: API keys live entirely in the user's localStorage and are sent exclusively to the upstream provider. All API-derived strings are sanitized before injection to prevent XSS.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;p&gt;When software is built behind walled gardens or proprietary platforms, basic everyday tools get bloated with trackers, invasive subscription tiers, and paywalled features.&lt;/p&gt;

&lt;p&gt;Open innovation makes essential utilities accessible to everyone. Because MakeFud is open-source and zero-build, someone in Walid’s exact shoes doesn't have to surrender their privacy or watch ads just to figure out how to cook an egg and a potato. Furthermore, anyone during Hacktoberfest can fork the repository, add staple toggles, improve ingredient pluralization, or introduce localized pantry ingredients without ever having to configure a compiler.&lt;br&gt;
Prize Categories&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hacktoberfest Weekend Challenge: Build for a Friend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Team: Solo / None (Built independently by Mohamed Taha Enasraoui)&lt;br&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%2F24577fesnczligx42dty.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%2F24577fesnczligx42dty.png" alt=" " width="800" height="740"&gt;&lt;/a&gt;&lt;br&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%2Fhm5ssncoi418zcbsrsgh.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%2Fhm5ssncoi418zcbsrsgh.png" alt=" " width="800" height="740"&gt;&lt;/a&gt;&lt;/p&gt;

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