<?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: Manish Kumar</title>
    <description>The latest articles on DEV Community by Manish Kumar (@manish_kumar_6f08ed48a1f5).</description>
    <link>https://dev.to/manish_kumar_6f08ed48a1f5</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%2F4155341%2Fbbaccfa3-5281-4134-946d-9d38f1651c21.png</url>
      <title>DEV Community: Manish Kumar</title>
      <link>https://dev.to/manish_kumar_6f08ed48a1f5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manish_kumar_6f08ed48a1f5"/>
    <language>en</language>
    <item>
      <title>ShelfCheck: a bookshop shelf photo that ends in a useful checklist</title>
      <dc:creator>Manish Kumar</dc:creator>
      <pubDate>Fri, 16 Oct 2026 17:43:13 +0000</pubDate>
      <link>https://dev.to/manish_kumar_6f08ed48a1f5/shelfcheck-a-bookshop-shelf-photo-that-ends-in-a-useful-checklist-17bn</link>
      <guid>https://dev.to/manish_kumar_6f08ed48a1f5/shelfcheck-a-bookshop-shelf-photo-that-ends-in-a-useful-checklist-17bn</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;A misplaced book is a small problem until staff have to search a whole shelf for it. A missing facing is another small problem until someone assumes the book is out of stock. ShelfCheck is a prototype for independent bookstores: give it a catalog CSV and a shelf photo, mark a spine, and it turns confirmed matches into a short staff checklist.&lt;/p&gt;

&lt;p&gt;The intended customer is a small bookshop that already has a catalog export but does not have time for a full shelf-by-shelf inventory. The possible paid service is a lightweight, private shelf-audit tool that staff can use during opening or restocking. That business case is a hypothesis; I have not tested willingness to pay.&lt;/p&gt;

&lt;p&gt;Staff draw a box around a book spine. Browser-based OCR tries the crop upright and in both 90-degree rotations. ShelfCheck ranks catalog titles, then asks a person to confirm the match. A confirmed book in the wrong section becomes a &lt;strong&gt;Move&lt;/strong&gt; task. After staff confirm every visible spine and say the photo covers the whole shelf, a missing expected facing becomes a &lt;strong&gt;Possible gap&lt;/strong&gt; task. The app never calls a photo proof of a stockout.&lt;/p&gt;

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

&lt;p&gt;To try the synthetic sample, select &lt;strong&gt;Load sample catalog + photo&lt;/strong&gt;, draw a tight box around the red &lt;em&gt;A Brief History of Time&lt;/em&gt; spine, select &lt;strong&gt;Read selected spine&lt;/strong&gt;, and confirm that title. It is on the Fiction shelf in the image, while the CSV lists it in Science, so ShelfCheck creates a Move task. The sample also omits &lt;em&gt;The Left Hand of Darkness&lt;/em&gt;: after scanning and confirming the remaining visible spines, mark the review complete to see the possible gap.&lt;/p&gt;

&lt;p&gt;The sample is deliberately clear. I have not yet measured OCR accuracy on a real bookstore photo, and the app is not ready to infer gaps from an unreviewed shelf.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/ghostmk/shelfcheck" rel="noopener noreferrer"&gt;ghostmk/shelfcheck&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository includes the MIT-licensed app, a sample shelf, a single-file demo, and tests for CSV parsing, title ranking, and the audit rules. Run &lt;code&gt;npm test&lt;/code&gt;; run &lt;code&gt;npm start&lt;/code&gt; to serve the app locally, or open &lt;code&gt;ShelfCheck.html&lt;/code&gt; directly.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/naptha/tesseract.js" rel="noopener noreferrer"&gt;Tesseract.js&lt;/a&gt; is the open-source AI core. It runs an OCR model in the browser; no server receives the photo or catalog. I crop one selected spine, scale it up, and run recognition at 0°, 90°, and −90° because book titles often run vertically. Character-trigram similarity ranks OCR output against catalog titles and authors. Ranking is only a suggestion: the checklist uses human-confirmed matches.&lt;/p&gt;

&lt;p&gt;The rest is plain HTML, CSS, and JavaScript. A CSV catalog supplies each book's section and expected facings for this particular shelf. There is no account, database, paid API, or per-scan inference charge. The OCR library and English model are downloaded from a CDN on first use, so that first scan needs internet access.&lt;/p&gt;

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

&lt;p&gt;A store can inspect the OCR engine, run inference on its own device, and keep shelf photos and catalog rows in its browser. That matters for a small shop: it avoids sending commercially useful inventory context to a remote recognition API and avoids a usage fee every time staff scan a spine. The open stack also leaves room to replace the OCR engine or add a model for another language without rebuilding the workflow around one vendor's API.&lt;/p&gt;

&lt;p&gt;Open OCR does not magically solve hard spines. Glare, tiny fonts, partial covers, and stylized lettering can still produce bad text. That is why the prototype makes confirmation a required step and labels gaps as possibilities rather than inventory facts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned and What Comes Next
&lt;/h2&gt;

&lt;p&gt;The useful unit is not an OCR transcript; it is a task a bookseller can trust. Separating recognition, catalog suggestion, and staff confirmation made the result safer and easier to explain. The next test is a real short shelf: count visible spines, readable OCR results, correct top suggestions, confirmed misplacements, and time spent. I would then ask a bookseller whether the checklist saves time and what they would change before discussing pricing.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Fridge First and the small kindness of making dinner</title>
      <dc:creator>Manish Kumar</dc:creator>
      <pubDate>Sun, 04 Oct 2026 20:23:59 +0000</pubDate>
      <link>https://dev.to/manish_kumar_6f08ed48a1f5/fridge-first-and-the-small-kindness-of-making-dinner-2lpo</link>
      <guid>https://dev.to/manish_kumar_6f08ed48a1f5/fridge-first-and-the-small-kindness-of-making-dinner-2lpo</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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;“Have you eaten?”&lt;/p&gt;

&lt;p&gt;That is the feeling I wanted Fridge First to have. An ordinary question, with care tucked inside it.&lt;/p&gt;

&lt;p&gt;I built Fridge First for someone I love. Cooking for them and sitting down to eat together makes me happy. I didn’t start with a problem to fix. I started with wanting to make a small thing that carries that care into an ordinary evening. Fridge First begins with what’s already in the kitchen, keeps the little notes that make a recipe feel like yours, and makes it easy to say, “Come over, I’ll cook.”&lt;/p&gt;

&lt;p&gt;I don’t have feedback from them to share yet, so I won’t put words in their mouth.&lt;/p&gt;

&lt;p&gt;Fridge First is a personal kitchen notebook. You add what you have, and Gemma helps suggest three things you could cook. You can keep a recipe, leave a note after making it, and find that note beside the recipe the next time you come back.&lt;/p&gt;

&lt;p&gt;The part I care about most happens after the suggestion. “More lemon next time” starts turning a recipe into your recipe. A supper postcard keeps a few words from the evening. An invitation lets you say, “Come over. I’ll cook,” and ask a friend to bring something you’re missing.&lt;/p&gt;

&lt;p&gt;The app began with the fridge, but I wanted the whole experience to hold that personal feeling. So “I made this” opens with a place for your note. Updating the ingredient list sits underneath. The recipe book brings back what you wrote, instead of making every dinner feel like starting again.&lt;/p&gt;

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

&lt;p&gt;The app currently runs locally; a public deployment has not been verified.&lt;/p&gt;

&lt;p&gt;A short way to explore it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open the app and choose “Have a peek at an example.” The recipes are labelled samples, and no model download starts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open a recipe and keep it in your book.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose “I made this,” write a note, and save the supper.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open its postcard, then return to the recipe. Your note comes with it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose “Invite a friend,” select what they could bring, and add your own message.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;New suggestions use the “What could I cook?” button. That starts the local Gemma worker and, on the first use, a model download. The sample flow demonstrates the surrounding app; it is not evidence of live model output.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/ghostmk/fridge-first" rel="noopener noreferrer"&gt;Fridge First on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application is MIT licensed. The repository contains the app, local server, tests, setup instructions, and dependency credits. The submission write-up lives separately.&lt;/p&gt;

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

&lt;p&gt;The app is plain HTML, CSS, and JavaScript. It has no build step or package dependencies. I worked with Codex on the implementation and iterated on the product until the personal touches reached the everyday flows.&lt;/p&gt;

&lt;p&gt;For recipe generation, the app uses Gemma 3 1B through WebLLM in a browser Web Worker. The selected model is &lt;code&gt;gemma3-1b-it-q4f16_1-MLC&lt;/code&gt;. It starts only when someone asks for new ideas, and there is an explicit stop button to release the worker.&lt;/p&gt;

&lt;p&gt;The model receives the ingredient list, cooking time, and number of people, and returns structured recipe data. Application code validates the result before showing it. It also checks which ingredients are on the list; the model does not get to decide that something is available.&lt;/p&gt;

&lt;p&gt;I kept remaining quantities manual. “Half a bag” is useful to a person, but it is a poor basis for pretending to subtract an exact amount. After cooking, you can leave an ingredient alone, remove it, or change what is left. Undo will not overwrite newer fridge edits.&lt;/p&gt;

&lt;p&gt;The notebook stays in browser storage. Postcards are drawn to a canvas for image export, and invitations can be copied with the full recipe. Nothing is sent to a friend automatically.&lt;/p&gt;

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

&lt;p&gt;For this app, the useful consequence is that recipe inference can happen on the cook’s device. Their ingredient list does not need to go to a hosted inference API, and they do not need an API key or an account to use the notebook.&lt;/p&gt;

&lt;p&gt;Gemma provides accessible model weights under its own terms, and WebLLM provides the open-source browser inference runtime. The application code is available to inspect and change: how ingredients are prioritized, how recipes are validated, and what the interface does with the result.&lt;/p&gt;

&lt;p&gt;There are tradeoffs. The first model download takes time, compatible graphics support is required, and this is not a promise that the entire app works offline. A different model would need compatibility work and testing. Those limits matter, especially for something intended to make an ordinary evening easier.&lt;/p&gt;

&lt;p&gt;The result I want is small: a little less effort deciding what to cook, and a place to keep the details that make it yours.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma.&lt;/strong&gt; Gemma 3 1B is the model integrated for local recipe generation through WebLLM. Live inference verification remains outstanding before publishing this draft as a completed submission.&lt;/p&gt;

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