<?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: Wyndham Heaven</title>
    <description>The latest articles on DEV Community by Wyndham Heaven (@elghaly).</description>
    <link>https://dev.to/elghaly</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%2F1284146%2Fd5c4507c-5e4e-4ae0-a80c-bf26e0d31d26.jpg</url>
      <title>DEV Community: Wyndham Heaven</title>
      <link>https://dev.to/elghaly</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/elghaly"/>
    <language>en</language>
    <item>
      <title>LazyDigest: Zero-Effort Note Digests Powered by Local Gemma</title>
      <dc:creator>Wyndham Heaven</dc:creator>
      <pubDate>Mon, 26 Oct 2026 01:07:52 +0000</pubDate>
      <link>https://dev.to/elghaly/lazydigest-zero-effort-note-digests-powered-by-local-gemma-53ie</link>
      <guid>https://dev.to/elghaly/lazydigest-zero-effort-note-digests-powered-by-local-gemma-53ie</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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;LazyDigest&lt;/strong&gt;, a small background utility that takes the raw, unorganized Markdown notes I drop into a folder and turns them into a short daily digest: a category, a one-line takeaway and an optional action item for each note.&lt;/p&gt;

&lt;p&gt;Instead of organizing folders, adding tags or re-reading messy scratchpads, LazyDigest runs quietly every night at 03:00 using our Faithful Servant, Google's &lt;strong&gt;Gemma 3 1B&lt;/strong&gt; open-weight model, through Ollama. I dump files into a folder, go to sleep, and wake up to a summary.&lt;/p&gt;

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

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

&lt;p&gt;&lt;em&gt;(The video shows LazyDigest reading a folder of raw Markdown notes, writing a digest file offline, and moving the processed notes into the archive folder.)&lt;/em&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/elghaly-dev" rel="noopener noreferrer"&gt;
        elghaly-dev
      &lt;/a&gt; / &lt;a href="https://github.com/elghaly-dev/lazydigest" rel="noopener noreferrer"&gt;
        lazydigest
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Local-first daily digest of your Markdown notes with Gemma 3 1B via Ollama
    &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;LazyDigest: Local Markdown Snippet Synthesizer&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;LazyDigest&lt;/strong&gt; is an open-source, local-first background utility that reads the scattered Markdown notes you drop into a folder and turns them into one short daily digest — a category, a one-line takeaway, and an optional action item per note — using Google's Gemma model running locally through Ollama.&lt;/p&gt;
&lt;p&gt;Built for the &lt;strong&gt;Hacktoberfest Open-Source AI Challenge 2026 (Week 3: Slow and Steady)&lt;/strong&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What It Does&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Reads&lt;/strong&gt; every &lt;code&gt;.md&lt;/code&gt; file in &lt;code&gt;data/input_notes/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyzes&lt;/strong&gt; each note with &lt;code&gt;gemma3:1b&lt;/code&gt; via Ollama, without sending data to external APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Writes&lt;/strong&gt; the results into &lt;code&gt;data/output_digests/digest_output.md&lt;/code&gt;, then moves processed notes into &lt;code&gt;data/processed/&lt;/code&gt; so they are never read twice.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Lazy Payoff&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Time saved:&lt;/strong&gt; roughly 75 minutes a week of re-reading raw notes, tagging them, and copying out action items (our own estimate).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set and forget:&lt;/strong&gt; run &lt;code&gt;--daemon&lt;/code&gt; and it digests your notes every night at 03:00 while you sleep.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Setup &amp;amp;&lt;/h2&gt;…&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/elghaly-dev/lazydigest" 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;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local inference:&lt;/strong&gt; &lt;code&gt;ollama-python&lt;/code&gt; with &lt;code&gt;gemma3:1b&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No API keys:&lt;/strong&gt; no cloud services or credentials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CPU friendly:&lt;/strong&gt; temperature 0.1 for short, structured JSON on CPU-only laptops.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robust parsing:&lt;/strong&gt; strips code fences, fills missing fields, and falls back to the note's first line if the model output is not valid JSON.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archiving and scheduling:&lt;/strong&gt; the &lt;code&gt;schedule&lt;/code&gt; library runs it daily at 03:00 and moves processed files into &lt;code&gt;data/processed/&lt;/code&gt; so nothing is read twice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tests:&lt;/strong&gt; the model is mocked, so the tests run without Ollama.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; personal scratchpads stay on my own machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline:&lt;/strong&gt; it works without an internet connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ownership:&lt;/strong&gt; an open-weight model keeps a local tool working without API deprecations or surprise bills.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Time saved:&lt;/strong&gt; about 75 minutes a week (my estimate) that I used to spend re-reading notes and picking out action items.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Effort saved:&lt;/strong&gt; no more manual sorting or tagging; I just drop files in the folder.&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;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Fly me to the Moon</title>
      <dc:creator>Wyndham Heaven</dc:creator>
      <pubDate>Sun, 17 Mar 2024 09:38:28 +0000</pubDate>
      <link>https://dev.to/elghaly/fly-me-to-the-moon-224m</link>
      <guid>https://dev.to/elghaly/fly-me-to-the-moon-224m</guid>
      <description>&lt;p&gt;def declare_victory 🐵&lt;/p&gt;

</description>
      <category>rails</category>
      <category>ruby</category>
      <category>github</category>
      <category>discord</category>
    </item>
  </channel>
</rss>
