<?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: weiweriuser</title>
    <description>The latest articles on DEV Community by weiweriuser (@weiweriuser).</description>
    <link>https://dev.to/weiweriuser</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%2F4159630%2F622f09b0-7004-487e-9335-12c278164721.jpg</url>
      <title>DEV Community: weiweriuser</title>
      <link>https://dev.to/weiweriuser</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/weiweriuser"/>
    <language>en</language>
    <item>
      <title>Pantry Ledger: when six eggs become two</title>
      <dc:creator>weiweriuser</dc:creator>
      <pubDate>Sat, 03 Oct 2026 20:20:09 +0000</pubDate>
      <link>https://dev.to/weiweriuser/pantry-ledger-when-six-eggs-become-two-4j25</link>
      <guid>https://dev.to/weiweriuser/pantry-ledger-when-six-eggs-become-two-4j25</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/sanity-2026-09-16"&gt;Sanity Challenge, Path Two: Vibe-Code Something Strange&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Pantry Ledger is a small bilingual app for a simple problem: a pantry note says there are six eggs, but a later correction says there are only two. The app keeps both records and shows how that correction changes which meals have enough ingredients.&lt;/p&gt;

&lt;p&gt;It is for people who want to inspect the evidence behind a meal-planning decision. The current version uses fictional quantities only. It is a software demonstration, not nutrition advice or a complete meal planner.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://weiweriuser.github.io/pantry-ledger/" rel="noopener noreferrer"&gt;Open Pantry Ledger&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No login is required. Click &lt;strong&gt;Load live&lt;/strong&gt; to read the public Sanity dataset. Select &lt;strong&gt;Before&lt;/strong&gt;: the original six-egg observation is enough for a three-egg dish. Select &lt;strong&gt;After&lt;/strong&gt;: the correction leaves two eggs, so the dish is one egg short. Rice stays available. Tofu stays marked for review because “half a pack” does not establish its weight.&lt;/p&gt;

&lt;p&gt;The interface labels local demo data and a successfully loaded online snapshot separately. Switching between Before and After only changes the current browser view; it does not update the database.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/weiweriuser/pantry-ledger" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository includes the deployed static output and source.zip, containing the application source, dependency lockfile, fictional seed records, and tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Build Process
&lt;/h2&gt;

&lt;p&gt;An earlier implementation had unresolved dependency findings. The published version uses a clean Next.js dependency tree and omits the unused Studio application. The final implementation passed 28 functional and data-validation tests. Its dependency audit reported no known advisories at the time checked on October 3, 2026. That is a point-in-time result, not a guarantee of security.&lt;/p&gt;

&lt;p&gt;The live integration exposed another issue: importing records did not automatically allow the deployed website to read them. Requests from the GitHub Pages origin received 403 responses. Adding that exact origin in Sanity, with credentials disabled, made the browser read succeed. After import, the temporary Editor token was revoked and live reading was tested again successfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Project ID: &lt;strong&gt;zmcwbews&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Public dataset: &lt;strong&gt;production&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Frontend: Next.js static export with React&lt;/li&gt;
&lt;li&gt;Storage: Sanity Content Lake, queried with GROQ&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The dataset contains 12 fictional documents: four ingredients, five observations, and three meals. Observation documents refer to ingredients. A correction refers to the observation it supersedes. Meal requirements refer to ingredients and specify units and quantities. Explicit relationships make the correction inspectable instead of silently replacing the original record.&lt;/p&gt;

&lt;p&gt;The reader validates the document structure and references before displaying data. Known mass units can be converted, but grams are not converted into counts. Incomplete quantities stay uncertain. The browser sends no authentication credentials and has no write capability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Scope
&lt;/h2&gt;

&lt;p&gt;This version uses snapshot reads, not a real-time subscription. It does not use Sanity App SDK, Workflows, Knowledge Bases, or an agent answering through MCP. No claim of independent user testing or measured household savings is made. A useful next improvement would be an editing workflow that lets a person review and publish corrections while preserving their source records.&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%2F31d7lg842amg4hk0u61e.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%2F31d7lg842amg4hk0u61e.png" alt="Pantry Ledger displaying a Sanity live snapshot after token revocation" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
    </item>
    <item>
      <title>Three-Day Budget Meal Helper: turning pantry ingredients into three dinners</title>
      <dc:creator>weiweriuser</dc:creator>
      <pubDate>Sat, 03 Oct 2026 11:30:55 +0000</pubDate>
      <link>https://dev.to/weiweriuser/three-day-budget-meal-helper-turning-pantry-ingredients-into-three-dinners-31ab</link>
      <guid>https://dev.to/weiweriuser/three-day-budget-meal-helper-turning-pantry-ingredients-into-three-dinners-31ab</guid>
      <description>&lt;p&gt;Prepared for the Hacktoberfest Weekend Challenge: Build for a Friend.&lt;br&gt;
&lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;https://dev.to/challenges/hacktoberfest-weekend-2026-10-01&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;A family member wants to keep food spending down but doesn't always know what to cook. Three-Day Budget Meal Helper starts with that everyday problem.&lt;/p&gt;

&lt;p&gt;Enter pantry ingredients, a shopping budget, the number of people, foods to exclude, and available cooking equipment. The app puts together three different dinners, one combined shopping list, and a preparation order.&lt;/p&gt;

&lt;p&gt;The three-day scope keeps the result concrete. You can see which ingredients are used, what still needs buying, and how the purchases connect to the meals. Shared ingredients can serve more than one dinner without turning all three dinners into the same dish.&lt;/p&gt;

&lt;p&gt;The family member has not tried it yet, and no family feedback has been received. This is a working prototype with a real intended user, rather than a claim of proven savings or adoption.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://weiweriuser.github.io/three-night-meal-planner/" rel="noopener noreferrer"&gt;https://weiweriuser.github.io/three-night-meal-planner/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app needs an initial download of approximately 136 MB of model assets, plus runtime files. Please allow time for loading, especially on a slower connection or device.&lt;/p&gt;

&lt;p&gt;Prices are editable demonstration values, with fixed package sizes. The displayed total is an estimate based on those inputs. It does not represent live shop prices or measured savings.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/weiweriuser/three-night-meal-planner" rel="noopener noreferrer"&gt;https://github.com/weiweriuser/three-night-meal-planner&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application code is available under the MIT license. The tested version is commit 6acc565ad3715bbab9cd6386b94f593d35dd80b0.&lt;/p&gt;

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

&lt;p&gt;The AI component matches ingredient phrases to the planner's food vocabulary. It uses paraphrase-multilingual-MiniLM-L12-v2, an open-weight embedding model, running in the browser.&lt;/p&gt;

&lt;p&gt;Deterministic normalization and negation handling sit alongside that matching step. The planner then handles dinner selection, ingredient quantities, package rounding, and budget calculations. Recipes and totals come from defined data and algorithms.&lt;/p&gt;

&lt;p&gt;That division makes the result easier to inspect. A questionable ingredient match can be examined separately from a shopping calculation. If no valid combination fits the constraints, the app reports that limitation rather than presenting an infeasible plan as successful.&lt;/p&gt;

&lt;p&gt;The model has successfully run in the browser. The automated suite passed all 22 tests in two environments. Live browser checks also verified the sample plan, recalculation, cancellation, stale-result clearing, incompatible-unit rejection, and invalid-input handling. These checks do not guarantee correct interpretation of every phrase or compatibility with every device.&lt;/p&gt;

&lt;p&gt;Food matching can be wrong. Users should check the recognized ingredients and every recipe. Exclusions are not an allergy-safety guarantee, and the app does not provide medical or nutritional advice.&lt;/p&gt;

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

&lt;p&gt;Open weights make the ingredient-matching layer inspectable and replaceable. The upstream MiniLM model and Transformers.js use Apache-2.0 licensing; ONNX Runtime uses MIT. The repository's third-party notices identify the conversion checkpoint, fixed revision, and license sources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://huggingface.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2" rel="noopener noreferrer"&gt;https://huggingface.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/huggingface/transformers.js/blob/main/LICENSE" rel="noopener noreferrer"&gt;https://github.com/huggingface/transformers.js/blob/main/LICENSE&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/microsoft/onnxruntime/blob/main/LICENSE" rel="noopener noreferrer"&gt;https://github.com/microsoft/onnxruntime/blob/main/LICENSE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inference happens in the browser, with no application backend or user account. This avoids a hosted inference service for each ingredient query. Hosting and download providers still receive ordinary connection metadata when serving the page and assets, so local inference does not mean zero network contact.&lt;/p&gt;

&lt;p&gt;The tradeoff is a substantial initial download and device-dependent performance. Those costs matter for a tool intended to make an everyday task easier.&lt;/p&gt;

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

&lt;p&gt;Development disclosure: Fully Autonomous AI. I supplied the real-world need; AI wrote and tested the application and prepared this article. Private conversations and identifying family details are not included.&lt;/p&gt;

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

&lt;p&gt;This project is intended for consideration for the overall prize. No partner-technology category is claimed.&lt;/p&gt;

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