<?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: Aarjav Jain</title>
    <description>The latest articles on DEV Community by Aarjav Jain (@bharatwalejain).</description>
    <link>https://dev.to/bharatwalejain</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%2F4177613%2F9a61f6f9-2ab3-410d-aaa7-8c022d9893a9.jpg</url>
      <title>DEV Community: Aarjav Jain</title>
      <link>https://dev.to/bharatwalejain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bharatwalejain"/>
    <language>en</language>
    <item>
      <title>Afterlight - Yaadein Rehti Hain</title>
      <dc:creator>Aarjav Jain</dc:creator>
      <pubDate>Sun, 01 Nov 2026 02:39:05 +0000</pubDate>
      <link>https://dev.to/bharatwalejain/afterlight-yaadein-rehti-hain-2e7d</link>
      <guid>https://dev.to/bharatwalejain/afterlight-yaadein-rehti-hain-2e7d</guid>
      <description>&lt;h1&gt;
  
  
  Afterlight - Yaadein Rehti Hain
&lt;/h1&gt;

&lt;p&gt;Afterlight is a small, local-first place to save memories of people who matter to us. You can write about an ordinary afternoon, a family recipe, a train journey, a festival or a phrase that still comes to mind. A local AI model helps shape those notes into a short remembrance and a one-line keepsake.&lt;/p&gt;

&lt;p&gt;The idea is simple: in many Indian families, memories are carried through everyday details - the chai someone made, the way a grandparent asked if everyone had eaten, a familiar voice during a long train ride or the food prepared when everyone came home. Those details are personal, so the project keeps them on the device. Users can write in English, Hinglish or their own mix.&lt;/p&gt;

&lt;p&gt;The project uses &lt;strong&gt;Google Gemma 3 4B (&lt;code&gt;gemma3:4b&lt;/code&gt;) through Ollama&lt;/strong&gt;. The browser talks to a small Python server on &lt;code&gt;127.0.0.1&lt;/code&gt;, which sends the prompt to Ollama on the same machine. After the model has been downloaded once, generating and saving memories can work offline.&lt;/p&gt;

&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;ul&gt;
&lt;li&gt;
&lt;strong&gt;A personal remembrance writer.&lt;/strong&gt; Add a name, relationship, memory, favourite details and remembered words. Gemma 3 4B turns them into a title, a short remembrance and a lantern note.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A private local archive.&lt;/strong&gt; Saved entries are stored in &lt;code&gt;data/keepsakes.json&lt;/code&gt; inside the project folder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An export you control.&lt;/strong&gt; Download the complete archive as a JSON file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A model status check.&lt;/strong&gt; The app checks whether Ollama is running and whether &lt;code&gt;gemma3:4b&lt;/code&gt; is installed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A replaceable setup.&lt;/strong&gt; The model is set in one place in &lt;code&gt;app.py&lt;/code&gt;; the prompt and application code can be changed without depending on a hosted service.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;a href="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%2F8pdgqawdhihvxb046hbf.png" class="article-body-image-wrapper"&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%2F8pdgqawdhihvxb046hbf.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2F3t5bu4qb3qeyywmmd66s.png" class="article-body-image-wrapper"&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%2F3t5bu4qb3qeyywmmd66s.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Fe02fylogdlv6pdecbvwi.png" class="article-body-image-wrapper"&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%2Fe02fylogdlv6pdecbvwi.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Explore the source code, setup instructions and implementation:&lt;br&gt;
&lt;a href="https://github.com/BharatwaleJain/AfterLight" rel="noopener noreferrer"&gt;https://github.com/BharatwaleJain/AfterLight&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The frontend is plain HTML, CSS, and JavaScript. The backend is a small Python HTTP server using the standard library, so there are no Python packages to install. It serves the page, validates incoming memory fields, stores saved entries as JSON and calls Ollama's local chat endpoint when a remembrance is generated.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser (HTML / CSS / JavaScript)
       │
       │ memory form, archive, export
       ▼
Python server (127.0.0.1:8765)
       │
       │ local HTTP request
       ▼
Ollama (127.0.0.1:11434)
       │
       ▼
Gemma 3 4B open-weight model
       │
       │ title + remembrance + lantern note
       ▼
Browser output

Saved memories ──► data/keepsakes.json on this device
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;These memories can be personal. I did not want the main feature to depend on sending someone's family stories to a third-party server. Gemma 3 4B runs through Ollama on the same machine, so the text used for generation stays local. Once the model is downloaded, the app can generate a remembrance without an internet connection.&lt;/p&gt;

&lt;p&gt;Using an open-weight model also makes the project easier to inspect and change. I can adjust the writing prompt, experiment with another model available in Ollama, or modify the application without building around a paid API. The model can run on a personal computer, although the 4B model needs more memory and processing power than the smallest models.&lt;/p&gt;

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

&lt;p&gt;In a lot of homes, someone is remembered through a very ordinary sentence. "Have you eaten?" "Take some more." "Call when you reach." Those little lines can carry more than a formal biography ever could. I wanted Afterlight to make room for that kind of memory, without pretending that an AI can replace the person behind it.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Gemma — Best Use of Gemma:&lt;/strong&gt; Afterlight uses Google's Gemma 3 4B open-weight model as the core writing engine. The model runs locally through Ollama and turns user-provided memories into a remembrance, without sending the content to a hosted AI API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Setup
&lt;/h2&gt;

&lt;p&gt;Download Python 3.10 or newer and &lt;a href="https://ollama.com/download" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;.&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 gemma3:4b
ollama serve
python app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;strong&gt;&lt;a href="http://127.0.0.1:8765" rel="noopener noreferrer"&gt;http://127.0.0.1:8765&lt;/a&gt;&lt;/strong&gt; in your browser.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enter a name and a memory. Relationship, favourite details and remembered words are optional.&lt;/li&gt;
&lt;li&gt;Write naturally. English, Hinglish and regional words can be mixed in the same entry.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Light a lantern&lt;/strong&gt; to generate a title, remembrance, and one-line note using Gemma 3 4B.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Save memory&lt;/strong&gt; to keep the entry in your local archive.&lt;/li&gt;
&lt;li&gt;Select an archive card to reopen it. Use &lt;strong&gt;Export memories&lt;/strong&gt; to download a JSON copy.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Privacy and Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Saved memories are stored in &lt;code&gt;data/keepsakes.json&lt;/code&gt; in the project folder. Keep that file private if it contains personal information.&lt;/li&gt;
&lt;li&gt;The text submitted for generation is sent from the Python app to Ollama on &lt;code&gt;127.0.0.1&lt;/code&gt;, not to a hosted AI API. Do not expose the Ollama port or the Afterlight server to a public network.&lt;/li&gt;
&lt;li&gt;The first Gemma model download requires internet access. Subsequent inference is local.&lt;/li&gt;
&lt;li&gt;This version stores text only. It does not record audio, store photographs or sync memories between devices.&lt;/li&gt;
&lt;li&gt;AI-generated text can make mistakes or add an unsupported detail. Read the remembrance before saving or sharing it.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemmachallenge</category>
    </item>
    <item>
      <title>HisabAI - Local Business Assistant</title>
      <dc:creator>Aarjav Jain</dc:creator>
      <pubDate>Sun, 18 Oct 2026 23:45:22 +0000</pubDate>
      <link>https://dev.to/bharatwalejain/hisabai-local-business-assistant-58pm</link>
      <guid>https://dev.to/bharatwalejain/hisabai-local-business-assistant-58pm</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;HisabAI reduces repetitive paperwork for freelancers, consultants and small businesses. Users can create invoice PDFs, manage client details and extract expense information from receipts. It is designed for people who need a simple, affordable alternative to complex accounting tools and prefer to keep their financial documents on their own computers.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="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%2Flw5rt761roml11i2u4a3.png" class="article-body-image-wrapper"&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%2Flw5rt761roml11i2u4a3.png" alt="Dashboard" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Fylr8frtl596ftdbgis19.png" class="article-body-image-wrapper"&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%2Fylr8frtl596ftdbgis19.png" alt="Clients" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2F8r0fsxk9mov5dwdl07jo.png" class="article-body-image-wrapper"&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%2F8r0fsxk9mov5dwdl07jo.png" alt="Create Invoice" width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Fmu6kovg03p89xajz1yy4.png" class="article-body-image-wrapper"&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%2Fmu6kovg03p89xajz1yy4.png" alt="Generated Invoice" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2F5avrhtznfzfo70lvuww9.png" class="article-body-image-wrapper"&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%2F5avrhtznfzfo70lvuww9.png" alt="Scan Receipt" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2F2671d7bdd3zmo5k4o19y.png" class="article-body-image-wrapper"&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%2F2671d7bdd3zmo5k4o19y.png" alt="Review Extraction" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Fpv1qf93mj4r21i2hikpo.png" class="article-body-image-wrapper"&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%2Fpv1qf93mj4r21i2hikpo.png" alt="Expenses" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Fvlrxvx9ltair1rox2apd.png" class="article-body-image-wrapper"&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%2Fvlrxvx9ltair1rox2apd.png" alt="Settings" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Explore the source code, setup instructions and implementation:&lt;br&gt;
&lt;a href="https://github.com/BharatwaleJain/HisabAI" rel="noopener noreferrer"&gt;https://github.com/BharatwaleJain/HisabAI&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Built with &lt;strong&gt;Python, FastAPI, SQLite, Jinja2 and ReportLab&lt;/strong&gt;, HisabAI provides invoice generation, local record storage, receipt imports and CSV exports. For AI-powered receipt extraction, it uses the open-weight &lt;strong&gt;Gemma 3 4B&lt;/strong&gt; model through &lt;strong&gt;Ollama&lt;/strong&gt;. A rule-based fallback is available when Ollama is disabled or unavailable. AI inference runs locally, without a remote AI provider configured.&lt;/p&gt;

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

&lt;p&gt;Open innovation makes AI more accessible to small businesses. Open-weight models and local inference allow users to experiment with AI without depending on paid hosted-model APIs or sending financial documents to remote AI services. Because the project is open source, developers can inspect, adapt and extend it with new models, document formats and features.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Gemma — Best Use of Gemma:&lt;/strong&gt; HisabAI uses Google's open-weight Gemma 3 4B model through Ollama for local AI-assisted receipt and invoice data extraction. This helps freelancers and small businesses extract expense details while keeping AI inference on their own machine, without relying on a hosted AI API.&lt;/p&gt;

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