<?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: Sahil desai</title>
    <description>The latest articles on DEV Community by Sahil desai (@sahil_desai3_7019adc461a).</description>
    <link>https://dev.to/sahil_desai3_7019adc461a</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%2F4163442%2F7793f720-a954-456a-83ff-37b35d29c3fc.png</url>
      <title>DEV Community: Sahil desai</title>
      <link>https://dev.to/sahil_desai3_7019adc461a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sahil_desai3_7019adc461a"/>
    <language>en</language>
    <item>
      <title>BillWise Local: Build a Private AI-Powered Invoice Manager That Runs Locally</title>
      <dc:creator>Sahil desai</dc:creator>
      <pubDate>Sun, 18 Oct 2026 14:49:52 +0000</pubDate>
      <link>https://dev.to/sahil_desai3_7019adc461a/billwise-local-build-a-private-ai-powered-invoice-manager-that-runs-locally-2o7c</link>
      <guid>https://dev.to/sahil_desai3_7019adc461a/billwise-local-build-a-private-ai-powered-invoice-manager-that-runs-locally-2o7c</guid>
      <description>&lt;h1&gt;
  
  
  BillWise Local: Private AI-Powered Invoice Processing on Your Own Machine
&lt;/h1&gt;

&lt;p&gt;This is my 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;/p&gt;

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

&lt;p&gt;&lt;strong&gt;BillWise Local&lt;/strong&gt; is a local-first AI invoice processing and expense management application designed for freelancers, small businesses, and individuals who want to simplify bookkeeping without relying on hosted AI services.&lt;/p&gt;

&lt;p&gt;Manually entering invoice details is repetitive and error-prone. BillWise Local helps automate this workflow by extracting information from invoice images and PDFs, identifying line items, checking financial calculations, and storing invoice records locally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Invoice extraction:&lt;/strong&gt; Extract text from invoice images using Tesseract OCR and from text-based PDFs using &lt;code&gt;pypdf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local AI analysis:&lt;/strong&gt; Use SmolLM2 through &lt;code&gt;llama-cli&lt;/code&gt; to generate structured invoice data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Financial validation:&lt;/strong&gt; Check totals and line-item calculations before saving.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expense management:&lt;/strong&gt; Store invoices in SQLite, detect duplicates, and categorize expenses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spending dashboard:&lt;/strong&gt; Review spending summaries and export invoice records to CSV.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-focused design:&lt;/strong&gt; Keep invoice processing and AI inference local rather than depending on a hosted LLM API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to make invoice processing more accessible and affordable for people who don't need a complicated accounting platform.&lt;/p&gt;

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

&lt;p&gt;Watch the demo video to see BillWise Local in action:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://drive.google.com/file/d/1Z7nWp9vzObNnvxBVxtQr59DXGkvooRnL/view?usp=sharing" rel="noopener noreferrer"&gt;▶ Watch the BillWise Local Demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The demo showcases the invoice-processing workflow and application interface.&lt;/p&gt;

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

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

&lt;p&gt;The repository contains the source code, setup instructions, OCR pipeline, extraction logic, validation module, local AI integration, and SQLite database implementation.&lt;/p&gt;

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

&lt;p&gt;I built BillWise Local using Python and Streamlit, combining traditional document processing with open-weight AI.&lt;/p&gt;

&lt;p&gt;The workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;OCR and text extraction:&lt;/strong&gt; Tesseract processes invoice images, while &lt;code&gt;pypdf&lt;/code&gt; extracts embedded PDF text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured extraction:&lt;/strong&gt; Python extracts invoice fields and line items from the recognized text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local AI inference:&lt;/strong&gt; SmolLM2 generates structured JSON from invoice text through &lt;code&gt;llama-cli&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation:&lt;/strong&gt; Financial checks identify inconsistencies and help prevent incorrect records from being saved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage and analysis:&lt;/strong&gt; SQLite stores invoice records, and Streamlit presents expense summaries and CSV exports.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I kept the architecture lightweight so it could run on a personal computer without requiring a cloud AI deployment.&lt;/p&gt;

&lt;p&gt;One important lesson from this project was that valid JSON does not guarantee accurate extraction. Dates, quantities, and financial values still need validation and human review.&lt;/p&gt;

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

&lt;p&gt;Open innovation made it possible to build an AI-assisted application without making a proprietary hosted model the foundation of the product.&lt;/p&gt;

&lt;p&gt;Using open-source tools and an open-weight model provides several benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; Local inference avoids sending invoice text to a hosted LLM API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control:&lt;/strong&gt; Developers can inspect, modify, and improve the extraction pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduced API dependence:&lt;/strong&gt; The application does not require per-request hosted LLM API charges for local inference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility:&lt;/strong&gt; Python, SQLite, Streamlit, Tesseract, and local inference make experimentation possible without building a large cloud infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extensibility:&lt;/strong&gt; The project can be adapted to different invoice layouts, models, and validation rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open innovation makes it possible to experiment, learn, and build useful tools without surrendering control over the technology or data.&lt;/p&gt;

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

&lt;p&gt;Not included in this submission.&lt;/p&gt;

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

&lt;p&gt;No partner-specific category is claimed in this submission. The project uses open-weight AI and open-source tools as its core technology.&lt;/p&gt;




&lt;p&gt;Built as part of Hacktoberfest 2026.&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge #hacktoberfest #opensource #ai #python #streamlit #localai
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Sahil desai</dc:creator>
      <pubDate>Sat, 10 Oct 2026 14:07:07 +0000</pubDate>
      <link>https://dev.to/sahil_desai3_7019adc461a/-5297</link>
      <guid>https://dev.to/sahil_desai3_7019adc461a/-5297</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/sahil_desai3_7019adc461a/trailmate-ai-turn-your-free-time-into-an-outdoor-adventure-with-local-ai-46a" class="crayons-story__hidden-navigation-link"&gt;TrailMate AI: Turn Your Free Time into an Outdoor Adventure with Local AI&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/sahil_desai3_7019adc461a" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F4163442%2F7793f720-a954-456a-83ff-37b35d29c3fc.png" alt="sahil_desai3_7019adc461a profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/sahil_desai3_7019adc461a" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Sahil desai
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Sahil desai
                
                
              
              &lt;div id="story-author-preview-content-4828756" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/sahil_desai3_7019adc461a" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F4163442%2F7793f720-a954-456a-83ff-37b35d29c3fc.png" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Sahil desai&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/sahil_desai3_7019adc461a/trailmate-ai-turn-your-free-time-into-an-outdoor-adventure-with-local-ai-46a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/sahil_desai3_7019adc461a/trailmate-ai-turn-your-free-time-into-an-outdoor-adventure-with-local-ai-46a" id="article-link-4828756"&gt;
          TrailMate AI: Turn Your Free Time into an Outdoor Adventure with Local AI
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hf26challenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hf26challenge&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/sahil_desai3_7019adc461a/trailmate-ai-turn-your-free-time-into-an-outdoor-adventure-with-local-ai-46a" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/sahil_desai3_7019adc461a/trailmate-ai-turn-your-free-time-into-an-outdoor-adventure-with-local-ai-46a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>TrailMate AI: Turn Your Free Time into an Outdoor Adventure with Local AI</title>
      <dc:creator>Sahil desai</dc:creator>
      <pubDate>Sat, 10 Oct 2026 14:06:30 +0000</pubDate>
      <link>https://dev.to/sahil_desai3_7019adc461a/trailmate-ai-turn-your-free-time-into-an-outdoor-adventure-with-local-ai-46a</link>
      <guid>https://dev.to/sahil_desai3_7019adc461a/trailmate-ai-turn-your-free-time-into-an-outdoor-adventure-with-local-ai-46a</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&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;TrailMate AI&lt;/strong&gt;, a local AI-powered outdoor adventure planner that turns your free time into an outdoor mission.&lt;/p&gt;

&lt;p&gt;The idea is simple: instead of spending your free time scrolling through your phone, use AI to help you get outside and explore the world around you.&lt;/p&gt;

&lt;p&gt;Users enter their available time, preferred activity, intensity level, budget, and location. TrailMate generates a personalized adventure plan with a mission, route idea, packing checklist, outdoor challenge, and safety tips.&lt;/p&gt;

&lt;p&gt;Whether you have 30 minutes for a quick walk or a few hours for a more challenging adventure, TrailMate helps you make the most of your time outdoors.&lt;/p&gt;

&lt;p&gt;The goal is to &lt;strong&gt;make the screen the shortest part of the experience&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Video demo:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1khaE-G-4j1ZPbHFzrHf6fqDLNOtunpgk/view?usp=sharing" rel="noopener noreferrer"&gt;Watch TrailMate AI in action&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo shows TrailMate AI running locally, from entering adventure preferences to generating an outdoor plan using an open-weight AI model.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/sahil1399m/trailmate-ai" rel="noopener noreferrer"&gt;sahil1399m/trailmate-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the frontend, FastAPI backend, and code for running the local AI inference pipeline.&lt;/p&gt;

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

&lt;p&gt;TrailMate AI is built around a locally running, open-weight language model rather than a proprietary hosted AI API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI model:&lt;/strong&gt; SmolLM2 1.7B Instruct, quantized to Q4_K_M&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local inference:&lt;/strong&gt; llama.cpp&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python and FastAPI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React, Vite, and Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data validation:&lt;/strong&gt; Pydantic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application follows a straightforward architecture:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The user enters their preferences in the React frontend.&lt;/li&gt;
&lt;li&gt;The frontend sends a request to the FastAPI backend.&lt;/li&gt;
&lt;li&gt;The backend constructs a prompt using the user's available time, activity, intensity, budget, and location.&lt;/li&gt;
&lt;li&gt;llama.cpp runs SmolLM2 locally to generate the adventure plan.&lt;/li&gt;
&lt;li&gt;The backend validates and structures the response before returning it to the frontend.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I chose a relatively small, quantized model so the project could run on a regular laptop without a dedicated GPU. The model is downloaded separately rather than committed to the GitHub repository.&lt;/p&gt;

&lt;p&gt;An important part of building TrailMate was making the output reliable. I added structured response validation, normalization of malformed text, and safeguards against inventing specific parks or trails.&lt;/p&gt;

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

&lt;p&gt;Open innovation made it possible to build an AI application that runs locally without depending on a paid, proprietary model API.&lt;/p&gt;

&lt;p&gt;Using an open-weight model and llama.cpp gives developers the freedom to experiment with inference, prompting, and application architecture on their own hardware. It also reduces dependence on external AI services and helps keep users' preferences and location information within the local application workflow.&lt;/p&gt;

&lt;p&gt;For a project designed to encourage people to spend less time on screens, I wanted the AI itself to be a lightweight tool rather than another service that requires constant cloud connectivity.&lt;/p&gt;

&lt;p&gt;TrailMate AI demonstrates how accessible open AI models can be turned into practical applications that encourage real-world experiences.&lt;/p&gt;

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

&lt;p&gt;I built TrailMate AI individually, using Antigravity as my AI coding assistant throughout development. I used it to help implement the FastAPI backend, integrate SmolLM2 through llama.cpp for local inference, and build the React frontend.&lt;/p&gt;

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

&lt;p&gt;TrailMate AI uses SmolLM2 1.7B Instruct, an open-weight language model, with local inference through llama.cpp.&lt;/p&gt;

&lt;p&gt;I built this project individually for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.&lt;/p&gt;

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