<?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: Racheal Oluwayemisi </title>
    <description>The latest articles on DEV Community by Racheal Oluwayemisi  (@ifeoluwayemisi).</description>
    <link>https://dev.to/ifeoluwayemisi</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%2F3426662%2F64dc675c-9291-483f-9997-f440b7335414.jpeg</url>
      <title>DEV Community: Racheal Oluwayemisi </title>
      <link>https://dev.to/ifeoluwayemisi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ifeoluwayemisi"/>
    <language>en</language>
    <item>
      <title>ContextKeeper: Find What You Remember, Not Just What You Named</title>
      <dc:creator>Racheal Oluwayemisi </dc:creator>
      <pubDate>Sat, 24 Oct 2026 14:36:53 +0000</pubDate>
      <link>https://dev.to/ifeoluwayemisi/contextkeeper-find-what-you-remember-not-just-what-you-named-3ibp</link>
      <guid>https://dev.to/ifeoluwayemisi/contextkeeper-find-what-you-remember-not-just-what-you-named-3ibp</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;&lt;strong&gt;ContextKeeper — Your files remember, so you don't have to.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Have you ever remembered reading something useful in a document but forgotten the filename, where you saved it, or the exact words you need to search for?&lt;/p&gt;

&lt;p&gt;That is the problem I built &lt;strong&gt;ContextKeeper&lt;/strong&gt; to solve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ContextKeeper&lt;/strong&gt; is an AI-powered personal knowledge library that helps people retrieve forgotten information from their documents using natural-language recollections. Instead of relying entirely on filenames, manual tags, or exact search terms, users can describe what they remember and discover relevant documents.&lt;/p&gt;

&lt;p&gt;For example, instead of searching for a filename, you could search for something like:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"That document where I read about handling API errors in a Node.js application."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ContextKeeper&lt;/strong&gt; searches document content and available metadata, surfaces relevant source excerpts, and explains why a result may answer the query. Where it presents a direct quote, it verifies that the quoted text exists in the original source.&lt;/p&gt;

&lt;p&gt;The application currently supports text-based PDFs, Markdown, and TXT documents, with document organization and folder-rescanning capabilities in the implemented workflow.&lt;/p&gt;

&lt;p&gt;I wanted to explore a simple idea: &lt;em&gt;&lt;strong&gt;what if finding information depended less on remembering where you put it and more on remembering what you read?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The people who benefit are &lt;em&gt;developers, students, researchers, freelancers, and anyone&lt;/em&gt; whose collection of useful documents has become difficult to navigate.&lt;/p&gt;

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

&lt;p&gt;Try &lt;strong&gt;ContextKeeper&lt;/strong&gt; here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://contextkeeper.ai.studio" rel="noopener noreferrer"&gt;Open the ContextKeeper demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best way to evaluate it is to index a few documents containing information you may need later, then try searching for a remembered concept without using the exact filename.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Ifeoluwayemisi/contex" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The source code is available for review and contribution. I am building &lt;strong&gt;ContextKeeper&lt;/strong&gt; as an open-source project and documenting the decisions behind its retrieval pipeline, document processing, and AI integration.&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;ContextKeeper&lt;/strong&gt; as a full-stack web application using React, TypeScript, Vite, and an Express backend.&lt;/p&gt;

&lt;p&gt;Its document-processing workflow extracts text from supported files and preserves source information for retrieval and verification. The application uses &lt;em&gt;IndexedDB&lt;/em&gt; for local browser persistence, with backend APIs handling document-processing operations and AI inference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Building around Google Gemma
&lt;/h3&gt;

&lt;p&gt;A central requirement of this project was using &lt;strong&gt;Google Gemma as the runtime model for document understanding&lt;/strong&gt;, rather than simply adding an AI chatbot to an ordinary file manager.&lt;/p&gt;

&lt;p&gt;Gemma supports document-understanding tasks such as generating summaries, extracting topics and useful metadata, and explaining why a retrieved document may be relevant.&lt;/p&gt;

&lt;p&gt;The retrieval pipeline combines deterministic scoring across document content and metadata with candidate selection, source excerpts, and contextual explanations. This distinction matters: relevance ranking and source retrieval are separate from the model's explanation of a result.&lt;/p&gt;

&lt;p&gt;I also wanted the application to fail gracefully. If remote AI inference becomes unavailable, deterministic retrieval can continue working rather than making the entire library unusable. AI-generated claims and direct source quotations must not be treated as interchangeable: quoted text needs to be checked against the source.&lt;/p&gt;

&lt;p&gt;The project includes automated tests for recollection-based retrieval, partial-phrase queries, irrelevant searches, evidence verification, inference failures, document extraction, and folder-rescan behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  Design decisions
&lt;/h3&gt;

&lt;p&gt;A few principles guided the implementation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Retrieve evidence, not just answers.&lt;/strong&gt; Users should be able to inspect the source behind a result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be honest about uncertainty.&lt;/strong&gt; An irrelevant query should not produce fabricated matches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep the workflow useful when AI fails.&lt;/strong&gt; Deterministic search should remain available when remote inference is unavailable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Respect original files.&lt;/strong&gt; Removing a document from the &lt;strong&gt;ContextKeeper&lt;/strong&gt; library should not delete its original file from the user's computer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The current implementation is an evolving MVP. Its supported formats and retrieval behavior have defined limits, and I am continuing to validate the complete user experience.&lt;/p&gt;

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

&lt;p&gt;Open innovation matters because useful AI applications should not have to depend on a single closed model or a black-box workflow that developers cannot meaningfully inspect.&lt;/p&gt;

&lt;p&gt;Building &lt;strong&gt;ContextKeeper&lt;/strong&gt; around &lt;strong&gt;_Gemma _&lt;/strong&gt;gave me an opportunity to explore how an open-weight model family can be integrated into a practical application with a defined purpose: personal document retrieval.&lt;/p&gt;

&lt;p&gt;The interesting engineering work is not just calling a model. It is deciding where the model belongs in the system, which tasks should remain deterministic, how to validate generated outputs, and how to preserve useful functionality when inference fails.&lt;/p&gt;

&lt;p&gt;This project also demonstrates why model integration should be evaluated as part of a complete system. A generated explanation is not enough if the application cannot retrieve the right document or show evidence for its answer.&lt;/p&gt;

&lt;p&gt;Open innovation makes it possible for developers to experiment with these design choices, share implementations, inspect trade-offs, and build on one another's work.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;ContextKeeper&lt;/strong&gt;, that means exploring AI-assisted retrieval as an understandable and testable product capability—not treating AI output as automatically correct.&lt;/p&gt;

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

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

&lt;p&gt;The goal is to reduce the effort between &lt;strong&gt;remembering information and finding its source&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Without &lt;strong&gt;ContextKeeper&lt;/strong&gt;, a person might open several files, try different keywords, browse folders, or search repeatedly for a phrase they only partially remember. &lt;strong&gt;ContextKeeper&lt;/strong&gt; is designed to reduce that friction by searching indexed content and metadata using recollections.&lt;/p&gt;

&lt;p&gt;I have implemented and tested core retrieval and folder-rescan behaviors, but I have not established a reliable real-world time-saving measurement yet. I would rather measure that honestly than invent a percentage.&lt;/p&gt;

&lt;p&gt;A useful next evaluation is to compare how long people take to find a known piece of information using ordinary filename or keyword search versus &lt;strong&gt;ContextKeeper's&lt;/strong&gt; Recall Mode.&lt;/p&gt;

&lt;p&gt;The ambition is simple: spend less time hunting for information and more time using it.&lt;/p&gt;

&lt;h2&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%2F7ynlwg288tx0xlknemtb.png" alt=" " width="800" height="422"&gt;
&lt;/h2&gt;

&lt;p&gt;ContextKeeper is still evolving, and that is part of the point. I wanted to build something practical, test the retrieval and evidence pipeline, and explore how Gemma can support a focused, useful AI experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your files remember, so you don't have to.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
