<?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: Martin Temponi</title>
    <description>The latest articles on DEV Community by Martin Temponi (@martin_temponi_66e1b719fb).</description>
    <link>https://dev.to/martin_temponi_66e1b719fb</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3682873%2Fe3927586-2579-447e-8e8c-06f526fd046e.jpg</url>
      <title>DEV Community: Martin Temponi</title>
      <link>https://dev.to/martin_temponi_66e1b719fb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/martin_temponi_66e1b719fb"/>
    <language>en</language>
    <item>
      <title>I built a "Local Second Brain" for my AI chats in a single HTML file (No Docker, No DB)</title>
      <dc:creator>Martin Temponi</dc:creator>
      <pubDate>Sun, 28 Dec 2025 19:01:26 +0000</pubDate>
      <link>https://dev.to/martin_temponi_66e1b719fb/i-built-a-local-second-brain-for-my-ai-chats-in-a-single-html-file-no-docker-no-db-4n28</link>
      <guid>https://dev.to/martin_temponi_66e1b719fb/i-built-a-local-second-brain-for-my-ai-chats-in-a-single-html-file-no-docker-no-db-4n28</guid>
      <description>&lt;p&gt;I use Gemini, ChatGPT, and Claude daily for coding, business planning, and creative writing. But I ran into a massive problem: &lt;strong&gt;managing the chaos.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I kept losing context. My best prompts were buried under a pile of "Untitled Chats". I tried Notion and Obsidian, but they felt too heavy just to save a few links. I didn't want a subscription service, and I certainly didn't want to spin up a Docker container just to organize my bookmarks.&lt;/p&gt;

&lt;p&gt;So, I built my own solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing: AI Knowledge Hub 🧠
&lt;/h2&gt;

&lt;p&gt;It is a Kanban-style dashboard contained entirely in &lt;strong&gt;one HTML file&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Why" (The Philosophy)
&lt;/h3&gt;

&lt;p&gt;I wanted something that adhered to the &lt;strong&gt;Local-First&lt;/strong&gt; principles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Zero Install:&lt;/strong&gt; Just download &lt;code&gt;index.html&lt;/code&gt; and open it.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Privacy:&lt;/strong&gt; Data lives in &lt;code&gt;localStorage&lt;/code&gt;. Nothing leaves your machine.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Portability:&lt;/strong&gt; The app &lt;em&gt;is&lt;/em&gt; the file.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Agnostic:&lt;/strong&gt; Works with links from Gemini, ChatGPT, Claude, Perplexity, or local files.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Under the Hood (The Tech) 🛠️
&lt;/h3&gt;

&lt;p&gt;I wanted to keep the codebase as simple as possible so anyone could audit or modify it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML5 &amp;amp; Vanilla JS:&lt;/strong&gt; No React, No Vue, No Build steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS (via CDN):&lt;/strong&gt; For rapid styling without &lt;code&gt;npm install&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phosphor Icons:&lt;/strong&gt; For a clean UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Persistence:&lt;/strong&gt; Uses the browser's &lt;code&gt;localStorage&lt;/code&gt; to save your boards and cards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is a snippet of how simple the storage logic is. No databases, just JSON strings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Saving data&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;saveData&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;columns&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;currentTheme&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;46.1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;geminiHubData&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key Features (v46)&lt;br&gt;
🌑 Native Dark Mode: Essential for late-night coding.&lt;/p&gt;

&lt;p&gt;🏷️ Smart Tags: Filter your chaos by #python, #ideas, or #work.&lt;/p&gt;

&lt;p&gt;💾 Backup &amp;amp; Restore: You can export your entire board to a JSON file to move it between computers.&lt;/p&gt;

&lt;p&gt;🛡️ Rescue Mode: Detects if data is corrupted and offers a safe reset.&lt;/p&gt;

&lt;p&gt;"Wait, isn't this AI generated?" 🤖&lt;br&gt;
I believe in transparency. Yes, I used Google Gemini to help write the boilerplate code and CSS structure (because who remembers every Tailwind class?).&lt;/p&gt;

&lt;p&gt;However, the architecture, the logic for data sanitization, and the specific "Local-First" design decisions were manually crafted to solve my specific workflow problem. It's a tool by a human, assisted by AI, for everyone.&lt;/p&gt;

&lt;p&gt;Try it yourself&lt;br&gt;
It's MIT Licensed (Open Source). You can grab the HTML file from the repo below.&lt;/p&gt;

&lt;p&gt;👉 View on GitHub: &lt;a href="https://github.com/MartinSantosT/gemini-chat-organizer-hub" rel="noopener noreferrer"&gt;https://github.com/MartinSantosT/gemini-chat-organizer-hub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear your feedback! Does anyone else suffer from "AI Chat Clutter"?&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
