<?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: Abhishek Kumar</title>
    <description>The latest articles on DEV Community by Abhishek Kumar (@abhishek764).</description>
    <link>https://dev.to/abhishek764</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%2F2908053%2F6319e5d4-07ab-4319-b1c2-fa4b377a89b6.png</url>
      <title>DEV Community: Abhishek Kumar</title>
      <link>https://dev.to/abhishek764</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhishek764"/>
    <language>en</language>
    <item>
      <title>A Little Thing Worth Keeping: A Local Gemma Memory Lantern</title>
      <dc:creator>Abhishek Kumar</dc:creator>
      <pubDate>Fri, 30 Oct 2026 19:07:28 +0000</pubDate>
      <link>https://dev.to/abhishek764/a-little-thing-worth-keeping-a-local-gemma-memory-lantern-1m7n</link>
      <guid>https://dev.to/abhishek764/a-little-thing-worth-keeping-a-local-gemma-memory-lantern-1m7n</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Some memories arrive as a story. Others are just a steel dabba on a counter, peanuts toasted separately, or curry leaves from a balcony pot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory Lantern&lt;/strong&gt; is a private keepsake book for saving those small details. Pick one or more notes and it asks Gemma to shape them into a short remembrance, with the source notes shown alongside the result. You can edit or delete the originals, copy the draft, or save it as a printable HTML keepsake.&lt;/p&gt;

&lt;p&gt;I read “Ghost in the Machine” as a question about what we choose to keep. The ghost here is not a simulated person speaking from beyond; it is the detail someone wrote down and decided to carry forward.&lt;/p&gt;

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

&lt;p&gt;The repository includes a sample note so you can see the flow without entering a real family story:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the keepsake box and select &lt;strong&gt;The Sunday lemon rice&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Light the lantern&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Review the remembrance and the source note it came from.&lt;/li&gt;
&lt;li&gt;Save it as an HTML keepsake.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I ran the generation locally with Gemma 4. The sample result was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Lemon rice was made on Sundays when cousins visited. Peanuts were toasted separately to maintain crunch. A steel dabba was on the counter, and curry leaves were used from a balcony pot.  &lt;/p&gt;

&lt;p&gt;Sources: [1]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To try it on your machine, install &lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;, pull Gemma, and run the app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull gemma4:latest
python app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open &lt;a href="http://127.0.0.1:8000" rel="noopener noreferrer"&gt;http://127.0.0.1:8000&lt;/a&gt;. If Ollama is not already running as a service, start &lt;code&gt;ollama serve&lt;/code&gt; in a second terminal. The app itself needs no Python packages.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://github.com/Abhishek764/memory-lantern" rel="noopener noreferrer"&gt;github.com/Abhishek764/memory-lantern&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Memory Lantern is a small Python server and a plain HTML, CSS, and JavaScript interface. It stores notes as readable JSON in &lt;code&gt;data/memories.json&lt;/code&gt;, which is ignored by Git so personal notes don't get committed accidentally.&lt;/p&gt;

&lt;p&gt;When you light the lantern, the server sends only the selected notes to Ollama at &lt;code&gt;127.0.0.1:11434&lt;/code&gt;. Gemma 4 is the writing engine; it is not a decorative add-on. The prompt asks it to stick to concrete details, avoid inventing emotions or biography, and return the note numbers it used. The interface keeps those originals visible so the generated text can be checked against them.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
  A[Your saved notes] --&amp;gt; B[Local Python app]
  B --&amp;gt;|selected notes on localhost| C[Ollama]
  C --&amp;gt; D[Gemma 4]
  D --&amp;gt;|draft + source numbers| B
  B --&amp;gt; E[Review, copy, or export]
  B --&amp;gt; F[(memories.json on this device)]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The server binds to &lt;code&gt;127.0.0.1&lt;/code&gt;. The interface uses system fonts and makes no external requests. If Gemma isn't available, the keepsake box still works; generation shows a clear local setup message instead of sending anything to a cloud fallback.&lt;/p&gt;

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

&lt;p&gt;These notes can be intimate. I wanted the privacy boundary to be visible in the architecture, not just promised in a privacy policy.&lt;/p&gt;

&lt;p&gt;With an open-weight model running through Ollama, the story stays on the machine where it was written. After Gemma is installed, generation can run without an internet connection. There is no hosted AI account, no per-story API charge, and no dependency on one provider keeping a service online. The model, server, prompt, and storage format are all inspectable and replaceable.&lt;/p&gt;

&lt;p&gt;A closed API could make the first version faster to wire up, but it would require sending family stories to a service I don't control. Here, the open approach makes local processing practical and gives the person keeping the memory the final say over the data.&lt;/p&gt;

&lt;p&gt;Gemma can still get details wrong. This is a writing aid, not an authority: the original notes stay untouched, the output names its sources, and the person using it should review every draft before sharing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;The sample is fictional, so I won't pretend it brought back someone's real family memory. Its little test is smaller: can the tool keep “toast the peanuts separately” from dissolving into a generic recipe summary? In the local run, it did.&lt;/p&gt;

&lt;p&gt;I hope the real moment comes when someone writes down an ordinary detail today, then finds it still there years from now.&lt;/p&gt;

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

&lt;p&gt;I'm entering &lt;strong&gt;Best Use of Gemma&lt;/strong&gt;. Gemma 4 runs the core remembrance generation locally through Ollama.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>A Little Thing Worth Keeping: A Local Gemma Memory Lantern</title>
      <dc:creator>Abhishek Kumar</dc:creator>
      <pubDate>Fri, 30 Oct 2026 18:32:48 +0000</pubDate>
      <link>https://dev.to/abhishek764/a-little-thing-worth-keeping-a-local-gemma-memory-lantern-3i7i</link>
      <guid>https://dev.to/abhishek764/a-little-thing-worth-keeping-a-local-gemma-memory-lantern-3i7i</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Some memories arrive as a story. Others are just a steel dabba on a counter, peanuts toasted separately, or curry leaves from a balcony pot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory Lantern&lt;/strong&gt; is a private keepsake book for saving those small details. Pick one or more notes and it asks Gemma to shape them into a short remembrance, with the source notes shown alongside the result. You can edit or delete the originals, copy the draft, or save it as a printable HTML keepsake.&lt;/p&gt;

&lt;p&gt;I read “Ghost in the Machine” as a question about what we choose to keep. The ghost here is not a simulated person speaking from beyond; it is the detail someone wrote down and decided to carry forward.&lt;/p&gt;

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

&lt;p&gt;The repository includes a sample note so you can see the flow without entering a real family story:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the keepsake box and select &lt;strong&gt;The Sunday lemon rice&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Light the lantern&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Review the remembrance and the source note it came from.&lt;/li&gt;
&lt;li&gt;Save it as an HTML keepsake.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I ran the generation locally with Gemma 4. The sample result was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Lemon rice was made on Sundays when cousins visited. Peanuts were toasted separately to maintain crunch. A steel dabba was on the counter, and curry leaves were used from a balcony pot.  &lt;/p&gt;

&lt;p&gt;Sources: [1]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To try it on your machine, install &lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;, pull Gemma, and run the app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull gemma4:latest
python app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open &lt;a href="http://127.0.0.1:8000" rel="noopener noreferrer"&gt;http://127.0.0.1:8000&lt;/a&gt;. If Ollama is not already running as a service, start &lt;code&gt;ollama serve&lt;/code&gt; in a second terminal. The app itself needs no Python packages.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://github.com/Abhishek764/memory-lantern" rel="noopener noreferrer"&gt;github.com/Abhishek764/memory-lantern&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Memory Lantern is a small Python server and a plain HTML, CSS, and JavaScript interface. It stores notes as readable JSON in &lt;code&gt;data/memories.json&lt;/code&gt;, which is ignored by Git so personal notes don't get committed accidentally.&lt;/p&gt;

&lt;p&gt;When you light the lantern, the server sends only the selected notes to Ollama at &lt;code&gt;127.0.0.1:11434&lt;/code&gt;. Gemma 4 is the writing engine; it is not a decorative add-on. The prompt asks it to stick to concrete details, avoid inventing emotions or biography, and return the note numbers it used. The interface keeps those originals visible so the generated text can be checked against them.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
  A[Your saved notes] --&amp;gt; B[Local Python app]
  B --&amp;gt;|selected notes on localhost| C[Ollama]
  C --&amp;gt; D[Gemma 4]
  D --&amp;gt;|draft + source numbers| B
  B --&amp;gt; E[Review, copy, or export]
  B --&amp;gt; F[(memories.json on this device)]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The server binds to &lt;code&gt;127.0.0.1&lt;/code&gt;. The interface uses system fonts and makes no external requests. If Gemma isn't available, the keepsake box still works; generation shows a clear local setup message instead of sending anything to a cloud fallback.&lt;/p&gt;

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

&lt;p&gt;These notes can be intimate. I wanted the privacy boundary to be visible in the architecture, not just promised in a privacy policy.&lt;/p&gt;

&lt;p&gt;With an open-weight model running through Ollama, the story stays on the machine where it was written. After Gemma is installed, generation can run without an internet connection. There is no hosted AI account, no per-story API charge, and no dependency on one provider keeping a service online. The model, server, prompt, and storage format are all inspectable and replaceable.&lt;/p&gt;

&lt;p&gt;A closed API could make the first version faster to wire up, but it would require sending family stories to a service I don't control. Here, the open approach makes local processing practical and gives the person keeping the memory the final say over the data.&lt;/p&gt;

&lt;p&gt;Gemma can still get details wrong. This is a writing aid, not an authority: the original notes stay untouched, the output names its sources, and the person using it should review every draft before sharing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;The sample is fictional, so I won't pretend it brought back someone's real family memory. Its little test is smaller: can the tool keep “toast the peanuts separately” from dissolving into a generic recipe summary? In the local run, it did.&lt;/p&gt;

&lt;p&gt;I hope the real moment comes when someone writes down an ordinary detail today, then finds it still there years from now.&lt;/p&gt;

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

&lt;p&gt;I'm entering &lt;strong&gt;Best Use of Gemma&lt;/strong&gt;. Gemma 4 runs the core remembrance generation locally through Ollama.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
      <category>opensource</category>
    </item>
    <item>
      <title>BOOH: The 3 AM App I Wish Every New Parent Had</title>
      <dc:creator>Abhishek Kumar</dc:creator>
      <pubDate>Sun, 04 Oct 2026 20:13:55 +0000</pubDate>
      <link>https://dev.to/abhishek764/booh-the-3-am-app-i-wish-every-new-parent-had-4m32</link>
      <guid>https://dev.to/abhishek764/booh-the-3-am-app-i-wish-every-new-parent-had-4m32</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;There is a special kind of tiredness that only exists at 3 AM.&lt;/p&gt;

&lt;p&gt;You're awake.&lt;br&gt;
The baby just fell asleep.&lt;br&gt;
You finally put your phone down.&lt;/p&gt;

&lt;p&gt;And then the question appears:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“How long do I have before the next wake-up?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;BOOH&lt;/strong&gt; around that question.&lt;/p&gt;

&lt;p&gt;BOOH is a privacy-conscious nighttime dashboard designed for a new parent who doesn't need another complicated parenting app. They need one simple answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“How much sleep time do I probably have?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of showing endless charts and statistics, BOOH looks at the baby's previous sleep, feeding, and wake patterns and estimates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;expected sleep duration&lt;/li&gt;
&lt;li&gt;probability of waking within the next 60 minutes&lt;/li&gt;
&lt;li&gt;the usual sleep duration from the recent baseline&lt;/li&gt;
&lt;li&gt;a short, calm explanation of the prediction&lt;/li&gt;
&lt;li&gt;an optional voice version for those moments when even reading feels like too much work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea came from thinking about a friend who was going through the exhausting reality of caring for a newborn.&lt;/p&gt;

&lt;p&gt;I didn't want to build another generic AI chatbot.&lt;/p&gt;

&lt;p&gt;I wanted to build something that could be useful when someone is &lt;strong&gt;too tired to use an app&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's BOOH.&lt;/p&gt;


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

&lt;p&gt;🚧 &lt;strong&gt;Live Demo:&lt;/strong&gt; Coming soon&lt;/p&gt;

&lt;p&gt;🎥 &lt;strong&gt;Video Demo:&lt;/strong&gt; Coming soon&lt;/p&gt;

&lt;p&gt;The final demo will show the complete journey:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Login
  ↓
Choose Baby
  ↓
Import Sleep History
  ↓
Analyze Pattern
  ↓
Get Prediction
  ↓
See "How Long Do I Have?"
  ↓
Listen to the Summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;p&gt;The project is open source because I want people to be able to understand exactly how the prediction is being made and what happens to their data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Abhishek764/booh" rel="noopener noreferrer"&gt;BOOH Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is being built with a strong separation between:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Data
     ↓
Feature Engineering
     ↓
Prediction Model
     ↓
Prediction
     ↓
AI Summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The language model is deliberately &lt;strong&gt;not&lt;/strong&gt; responsible for making the numerical prediction.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;




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

&lt;p&gt;The interesting part of BOOH isn't simply that it uses AI.&lt;/p&gt;

&lt;p&gt;It's &lt;strong&gt;how the AI is used&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The architecture combines several open-source technologies:&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 TabPFN — Prediction
&lt;/h3&gt;

&lt;p&gt;BOOH uses &lt;strong&gt;TabPFN&lt;/strong&gt; for the numerical prediction layer.&lt;/p&gt;

&lt;p&gt;The model works with structured features extracted from the baby's history, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;recent sleep duration&lt;/li&gt;
&lt;li&gt;time since the last feed&lt;/li&gt;
&lt;li&gt;recent wake intervals&lt;/li&gt;
&lt;li&gt;rolling sleep totals&lt;/li&gt;
&lt;li&gt;time of day&lt;/li&gt;
&lt;li&gt;day/night patterns&lt;/li&gt;
&lt;li&gt;recent event counts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alongside TabPFN, BOOH keeps a simple &lt;strong&gt;last-7-day baseline&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This gives us something important:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI prediction vs. a simple baseline.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I don't want the app to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“AI says 47 minutes.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and expect everyone to trust it.&lt;/p&gt;

&lt;p&gt;I want to know whether the model is actually doing better than something simple.&lt;/p&gt;

&lt;p&gt;So BOOH evaluates the prediction using metrics such as &lt;strong&gt;MAE&lt;/strong&gt; and &lt;strong&gt;Brier score&lt;/strong&gt; on held-out recent data.&lt;/p&gt;




&lt;h3&gt;
  
  
  🤖 Gemma — Explanation, Not Prediction
&lt;/h3&gt;

&lt;p&gt;The language model has a very specific job.&lt;/p&gt;

&lt;p&gt;It doesn't decide when the baby will wake up.&lt;/p&gt;

&lt;p&gt;It receives structured prediction results and turns them into a short, human-friendly explanation.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“You may have around 45 minutes before the next wake-up. The recent pattern suggests a moderate chance of waking within the next hour.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The model is restricted to short summaries.&lt;/p&gt;

&lt;p&gt;It doesn't receive the entire baby history unnecessarily.&lt;/p&gt;

&lt;p&gt;It isn't allowed to diagnose medical conditions, recommend medication, or invent information.&lt;/p&gt;

&lt;p&gt;If the model fails, BOOH falls back to a deterministic summary.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔊 ElevenLabs — When Reading Is Too Much
&lt;/h3&gt;

&lt;p&gt;At 3 AM, even reading a screen can feel like work.&lt;/p&gt;

&lt;p&gt;So BOOH can turn the summary into a short audio message.&lt;/p&gt;

&lt;p&gt;The voice layer is optional and can be disabled completely for offline development.&lt;/p&gt;

&lt;p&gt;The frontend never receives the ElevenLabs API key.&lt;/p&gt;




&lt;h3&gt;
  
  
  📊 Huckleberry Import
&lt;/h3&gt;

&lt;p&gt;BOOH can import existing baby-tracking data through a CSV workflow.&lt;/p&gt;

&lt;p&gt;Instead of scraping or depending on a private service, the importer converts the exported data into BOOH's own normalized event format.&lt;/p&gt;

&lt;p&gt;That means the system can work with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sleep
Feed
Wake
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;rather than tying the prediction engine directly to one application's internal format.&lt;/p&gt;




&lt;h3&gt;
  
  
  🐳 Production Architecture
&lt;/h3&gt;

&lt;p&gt;The application is designed as a real full-stack system rather than a notebook demo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Next.js
   ↓
FastAPI
   ↓
PostgreSQL
   ↓
Feature Engineering
   ↓
TabPFN
   ↓
Prediction
   ↓
Gemma
   ↓
ElevenLabs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Authentication uses Google OAuth.&lt;/p&gt;

&lt;p&gt;The application is containerized with Docker and designed for deployment on Render.&lt;/p&gt;




&lt;h2&gt;
  
  
  Privacy Was a Design Requirement
&lt;/h2&gt;

&lt;p&gt;Baby data is sensitive.&lt;/p&gt;

&lt;p&gt;So one of my rules while building BOOH was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Just because AI can see something doesn't mean AI should see it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The numerical prediction operates on structured features.&lt;/p&gt;

&lt;p&gt;Gemma does not need the baby's entire sleep history.&lt;/p&gt;

&lt;p&gt;The system also enforces ownership checks so one authenticated user cannot access another user's baby data.&lt;/p&gt;

&lt;p&gt;Secrets such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OAuth credentials&lt;/li&gt;
&lt;li&gt;database credentials&lt;/li&gt;
&lt;li&gt;AI API keys&lt;/li&gt;
&lt;li&gt;TTS credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;are never supposed to be committed to Git.&lt;/p&gt;

&lt;p&gt;Security checks are part of the development workflow rather than something I want to remember at the end.&lt;/p&gt;




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

&lt;p&gt;This is probably the most important part of the project for me.&lt;/p&gt;

&lt;p&gt;I could have built BOOH as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Baby data
   ↓
Send everything to a closed AI API
   ↓
"AI prediction"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That would have been much easier.&lt;/p&gt;

&lt;p&gt;But it would also make it harder to understand what is happening to the data and harder to experiment with the actual prediction system.&lt;/p&gt;

&lt;p&gt;Open innovation gives me the ability to separate the problem into pieces.&lt;/p&gt;

&lt;p&gt;I can choose:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TabPFN&lt;/strong&gt; for structured prediction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma&lt;/strong&gt; for language generation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FastAPI&lt;/strong&gt; for the backend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt; for persistence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next.js&lt;/strong&gt; for the interface.&lt;/p&gt;

&lt;p&gt;And potentially replace any individual component later.&lt;/p&gt;

&lt;p&gt;That is powerful.&lt;/p&gt;

&lt;p&gt;If a better open model appears tomorrow, I don't have to rebuild BOOH from scratch.&lt;/p&gt;

&lt;p&gt;I can swap the model.&lt;/p&gt;

&lt;p&gt;If I want to run inference locally, I can.&lt;/p&gt;

&lt;p&gt;If I want researchers or developers to inspect the feature engineering, they can.&lt;/p&gt;

&lt;p&gt;If I discover that the model isn't better than the baseline, I can show that too.&lt;/p&gt;

&lt;p&gt;That's what I like about open innovation:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the system becomes something people can inspect, question, improve, and replace.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For a project dealing with something as personal as a baby's routine, that transparency matters even more.&lt;/p&gt;




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

&lt;p&gt;BOOH is also an experiment in &lt;strong&gt;AI-assisted software engineering&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I'm building the project using multiple coding agents with an orchestration and loop-engineering workflow.&lt;/p&gt;

&lt;p&gt;Instead of asking one AI agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Build the entire application.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm breaking the project into independent engineering tasks.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    BOOH Orchestrator
                           │
        ┌──────────────────┼──────────────────┐
        ↓                  ↓                  ↓
     Backend            Frontend             ML
        ↓                  ↓                  ↓
      Data                LLM              DevOps
        └──────────────────┬──────────────────┘
                           ↓
                       Integration
                           ↓
                        Security
                           ↓
                           QA
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each agent has a defined responsibility.&lt;/p&gt;

&lt;p&gt;The development loop is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PLAN
 ↓
IMPLEMENT
 ↓
TEST
 ↓
SECURITY REVIEW
 ↓
REVIEW DIFF
 ↓
UPDATE CONTEXT
 ↓
COMMIT
 ↓
INTEGRATE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I also keep a persistent &lt;code&gt;CONTEXT.md&lt;/code&gt; so that when I return to the project in a new AI session, the next agent doesn't have to rediscover the entire project.&lt;/p&gt;

&lt;p&gt;Every logical task gets its own Git commit.&lt;/p&gt;

&lt;p&gt;That makes the AI-assisted development process much easier to inspect and recover.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Part I'm Most Proud Of
&lt;/h2&gt;

&lt;p&gt;BOOH isn't trying to predict everything about a baby.&lt;/p&gt;

&lt;p&gt;It's trying to answer &lt;strong&gt;one small question at an incredibly difficult moment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You don't need a giant dashboard at 3:00 AM.&lt;/p&gt;

&lt;p&gt;You don't need 15 graphs.&lt;/p&gt;

&lt;p&gt;You don't need an AI that talks for five minutes.&lt;/p&gt;

&lt;p&gt;You need:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“You probably have about 45 minutes.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And maybe, if you're lucky:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;45 minutes of sleep.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's BOOH.&lt;/p&gt;




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

&lt;p&gt;I'm entering BOOH for the partner categories that fit the technologies used in the project.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open-source AI / open innovation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI / agentic development&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Developer tooling / open-source software&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;[Add applicable partner category here]&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;The current goal is to take BOOH from a hackathon prototype into something that could actually be useful.&lt;/p&gt;

&lt;p&gt;Next steps include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;improving prediction quality&lt;/li&gt;
&lt;li&gt;collecting better evaluation data&lt;/li&gt;
&lt;li&gt;expanding manual event logging&lt;/li&gt;
&lt;li&gt;improving the nighttime UX&lt;/li&gt;
&lt;li&gt;local/offline inference options&lt;/li&gt;
&lt;li&gt;better model comparison&lt;/li&gt;
&lt;li&gt;stronger privacy controls&lt;/li&gt;
&lt;li&gt;production deployment&lt;/li&gt;
&lt;li&gt;making the project easier for contributors to understand&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because ultimately, I don't want BOOH to be something I built once for a weekend.&lt;/p&gt;

&lt;p&gt;I want it to become something that another tired parent can open at 3 AM and immediately understand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Okay. I probably have 45 minutes.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now go get some sleep. 🌙&lt;/p&gt;

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