<?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: Rittik Chakraborty</title>
    <description>The latest articles on DEV Community by Rittik Chakraborty (@devrittik).</description>
    <link>https://dev.to/devrittik</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%2F4097784%2F0f96e453-fda6-475c-ab6e-9b7c24d34c49.png</url>
      <title>DEV Community: Rittik Chakraborty</title>
      <link>https://dev.to/devrittik</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devrittik"/>
    <language>en</language>
    <item>
      <title>Link Séance: Summoning the Ghosts of Forgotten Websites with Open-Weight AI 👻</title>
      <dc:creator>Rittik Chakraborty</dc:creator>
      <pubDate>Sun, 01 Nov 2026 05:56:12 +0000</pubDate>
      <link>https://dev.to/devrittik/link-seance-summoning-the-ghosts-of-forgotten-websites-with-open-weight-ai-1e0c</link>
      <guid>https://dev.to/devrittik/link-seance-summoning-the-ghosts-of-forgotten-websites-with-open-weight-ai-1e0c</guid>
      <description>&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;p&gt;&lt;strong&gt;Link Séance — Summon the ghosts of forgotten web pages.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ever wondered what happened to an old website? Maybe a blog you used to visit, an abandoned personal website, or a page that disappeared from the internet years ago?&lt;/p&gt;

&lt;p&gt;Link Séance is a small web application that brings those forgotten corners of the internet back to life.&lt;/p&gt;

&lt;p&gt;Give it an old or dead URL, and it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searches the Internet Archive's Wayback Machine for the closest available snapshot.&lt;/li&gt;
&lt;li&gt;Fetches the archived webpage and extracts its readable content.&lt;/li&gt;
&lt;li&gt;Uses an open-weight LLM to reconstruct the story behind the page.&lt;/li&gt;
&lt;li&gt;Explains what the website was about, who it was intended for, and potentially suggests a modern alternative when the model has enough confidence.&lt;/li&gt;
&lt;li&gt;Offers an optional &lt;strong&gt;Ghost Mode&lt;/strong&gt;, which narrates the result in a gentle, spooky tone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I interpreted the Ghost in the Machine theme quite literally: what if the ghosts haunting the internet were not supernatural, but the forgotten websites, communities, and digital memories we left behind?&lt;/p&gt;

&lt;p&gt;The idea was inspired by the thought that every dead link has a story worth discovering.&lt;/p&gt;

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

&lt;p&gt;Try it here:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://link-seance.vercel.app" rel="noopener noreferrer"&gt;https://link-seance.vercel.app&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The project is open source and available on GitHub:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/devrittik/link-seance" rel="noopener noreferrer"&gt;https://github.com/devrittik/link-seance&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built with a modular architecture so the application can be extended without tightly coupling the UI, archive retrieval, and AI inference.&lt;/p&gt;

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

&lt;p&gt;I wanted to keep the project lightweight and avoid depending on a proprietary 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;Next.js 16 and App Router&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind CSS v4&lt;/li&gt;
&lt;li&gt;shadcn/ui&lt;/li&gt;
&lt;li&gt;Cheerio for HTML content extraction&lt;/li&gt;
&lt;li&gt;Internet Archive's Wayback Machine&lt;/li&gt;
&lt;li&gt;llama.cpp for local LLM inference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The AI integration was designed to be provider-independent.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application communicates with an OpenAI-compatible chat completions endpoint. This means I can run an open-weight model locally through llama.cpp or switch to a compatible hosted inference provider simply by changing environment variables.&lt;/p&gt;

&lt;p&gt;The AI configuration uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;LLM_BASE_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LLM_MODEL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LLM_API_KEY&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No application code changes are needed when switching between compatible inference providers.&lt;/p&gt;

&lt;p&gt;The main workflow looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User submits an old or dead URL.&lt;/li&gt;
&lt;li&gt;The backend searches the Wayback Machine for an archived snapshot.&lt;/li&gt;
&lt;li&gt;The archived HTML is fetched and cleaned using Cheerio.&lt;/li&gt;
&lt;li&gt;Extracted content is sent to the configured LLM.&lt;/li&gt;
&lt;li&gt;The model generates a contextual explanation of the forgotten website.&lt;/li&gt;
&lt;li&gt;The result is presented with the original snapshot date and an optional spooky narration mode.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I also added URL validation, distinct error responses, and request timeouts to make the experience more reliable.&lt;/p&gt;

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

&lt;p&gt;For this project, open innovation isn't just about using open-source tools. It's about keeping control over the entire AI pipeline.&lt;/p&gt;

&lt;p&gt;Using an open-weight model with llama.cpp means the application can run without depending on a proprietary AI API, and potentially without sending archived webpage content to a third-party inference provider.&lt;/p&gt;

&lt;p&gt;It also makes experimentation easier.&lt;/p&gt;

&lt;p&gt;Developers can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose and experiment with different open-weight models.&lt;/li&gt;
&lt;li&gt;Run inference locally on their own hardware.&lt;/li&gt;
&lt;li&gt;Switch between local and hosted inference.&lt;/li&gt;
&lt;li&gt;Modify the prompts and model configuration.&lt;/li&gt;
&lt;li&gt;Build on the project without being locked into a single AI provider.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted Link Séance to be something that developers could actually run, inspect, and adapt.&lt;/p&gt;

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

&lt;p&gt;Coming soon!&lt;/p&gt;

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

&lt;p&gt;The internet has a strange kind of memory.&lt;/p&gt;

&lt;p&gt;A website can disappear, its owner can move on, and its community can scatter. But sometimes a snapshot survives somewhere in the archives.&lt;/p&gt;

&lt;p&gt;I like the idea that a forgotten URL can become a doorway into a different time.&lt;/p&gt;

&lt;p&gt;Link Séance is my attempt to make exploring that digital past a little more interactive — and perhaps a little spooky.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not every ghost is dead. Some are just waiting in the archive.&lt;/strong&gt; 👻&lt;/p&gt;

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

&lt;p&gt;Open-Source AI Challenge — Week 4: Ghost in the Machine.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>ReturnRakshak: Never Miss a Return Window Again 🛡️</title>
      <dc:creator>Rittik Chakraborty</dc:creator>
      <pubDate>Mon, 26 Oct 2026 06:58:23 +0000</pubDate>
      <link>https://dev.to/devrittik/returnrakshak-never-miss-a-return-window-again-4i7k</link>
      <guid>https://dev.to/devrittik/returnrakshak-never-miss-a-return-window-again-4i7k</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;h1&gt;
  
  
  ReturnRakshak: Never Miss a Return Window Again 🛡️
&lt;/h1&gt;

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

&lt;p&gt;Ever bought something online and forgotten when the return window closes? Or struggled to find a warranty invoice months later?&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;ReturnRakshak&lt;/strong&gt; — a privacy-first AI invoice assistant designed to reduce the mental overhead of tracking product returns and warranties.&lt;/p&gt;

&lt;p&gt;The idea is simple: upload an invoice, extract the important details with AI, review the results, and keep track of important deadlines without manually entering everything.&lt;/p&gt;

&lt;p&gt;The goal is to make everyday purchase management a little less stressful and let people spend less time organizing documents.&lt;/p&gt;

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


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://drive.google.com/file/d/1ZNnzyoPGFdGvrNkpaqtYl-CubMsboENM/view?usp=sharing" rel="noopener noreferrer" class="c-link"&gt;
            Project 2.mp4 - Google Drive
          &lt;/a&gt;
        &lt;/h2&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fssl.gstatic.com%2Fdocs%2Fdoclist%2Fimages%2Fdrive_favicon_2026_32dp.png" width="32" height="32"&gt;
          drive.google.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;🔗 &lt;a href="https://github.com/devrittik/return-rakshak" rel="noopener noreferrer"&gt;GitHub Repository — devrittik/return-rakshak&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;ReturnRakshak is designed around a modular, privacy-first architecture.&lt;/p&gt;

&lt;p&gt;The planned technology stack includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js and TypeScript&lt;/strong&gt; for the application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS&lt;/strong&gt; for a responsive, installable PWA experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF.js and Tesseract.js&lt;/strong&gt; for extracting text from digital and scanned invoices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-weight language models&lt;/strong&gt; for converting extracted text into structured invoice information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite/Turso with Drizzle ORM&lt;/strong&gt; for storing structured product, policy, and reminder data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A key design decision is to avoid permanently storing original invoices. Documents are processed temporarily, and only the necessary structured information is retained after user confirmation.&lt;/p&gt;

&lt;p&gt;AI handles information extraction; deterministic application logic handles deadline calculations. Missing or uncertain policy details should be reviewed rather than guessed.&lt;/p&gt;

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

&lt;p&gt;Privacy-sensitive documents shouldn't require users to depend entirely on a proprietary AI service.&lt;/p&gt;

&lt;p&gt;Open-weight models and local inference offer the possibility of processing invoice data without sending it to a third-party AI API. They also give developers more control over model selection, deployment, and experimentation.&lt;/p&gt;

&lt;p&gt;Open innovation makes it possible to build useful everyday tools while keeping implementation choices transparent and adaptable.&lt;/p&gt;

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

&lt;p&gt;Built with AI-assisted development.&lt;/p&gt;

&lt;p&gt;Add your DevRelay session link here if you recorded and saved one. Otherwise, remove this section before publishing.&lt;/p&gt;

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

&lt;p&gt;The goal is to replace repetitive manual entry with a simple workflow: upload, review, confirm, and track.&lt;/p&gt;

&lt;p&gt;Instead of repeatedly searching through invoices or trying to remember expiry dates, users can keep important purchase information organized in one place.&lt;/p&gt;

&lt;p&gt;The time saved will depend on the number of purchases and the quality of invoice extraction. I plan to evaluate this using sample invoices rather than inventing a time-saving figure.&lt;/p&gt;

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

&lt;h1&gt;
  
  
  hf26challenge #opensource #AI #NextJS #Hacktoberfest
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>EstiForge: Building an Open-Source AI Engineering Estimation Assistant</title>
      <dc:creator>Rittik Chakraborty</dc:creator>
      <pubDate>Mon, 19 Oct 2026 06:53:22 +0000</pubDate>
      <link>https://dev.to/devrittik/estiforge-building-an-open-source-ai-engineering-estimation-assistant-20n3</link>
      <guid>https://dev.to/devrittik/estiforge-building-an-open-source-ai-engineering-estimation-assistant-20n3</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;h1&gt;
  
  
  EstiForge: Open-Source AI for Engineering Estimation
&lt;/h1&gt;

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

&lt;p&gt;EstiForge is an AI-assisted engineering estimation platform designed for independent engineers and small contractors.&lt;/p&gt;

&lt;p&gt;The goal is to simplify the process of turning project requirements into structured estimates, Bills of Quantities (BOQs), and professional quotations.&lt;/p&gt;

&lt;p&gt;Instead of manually preparing every estimate from scratch, users can describe their requirements, review the extracted inputs, calculate quantities, manage material and labour rates, and generate quotations.&lt;/p&gt;

&lt;p&gt;I'm starting with electrical estimation, with a modular architecture that can expand to civil engineering and other trades.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://estiforge.vercel.app" rel="noopener noreferrer"&gt;EstiForge — Live Application&lt;/a&gt;&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/devrittik/estiforge" rel="noopener noreferrer"&gt;EstiForge&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;EstiForge is designed around open-source AI and a modular architecture.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js + TypeScript:&lt;/strong&gt; Application framework and type-safe business logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS + shadcn/ui:&lt;/strong&gt; Responsive interface and reusable components.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;llama.cpp:&lt;/strong&gt; Local inference using compatible open-weight language models.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB:&lt;/strong&gt; Persistent project, estimate, and quotation data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Formula Registry:&lt;/strong&gt; A modular approach to engineering calculations, with deterministic code for supported formulas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice Input:&lt;/strong&gt; Planned local speech recognition using Whisper through whisper.cpp.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The LLM helps interpret natural-language requirements and extract structured inputs. Engineering calculations and final pricing are handled separately so that model-generated text cannot silently determine the final estimate.&lt;/p&gt;

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

&lt;p&gt;Engineering projects can contain sensitive customer information, project specifications, and commercial rates.&lt;/p&gt;

&lt;p&gt;Open-weight models and local inference offer the possibility of processing that information without sending every request to a third-party AI provider. They also give developers the freedom to change models, inspect their behaviour, and adapt the application to specific workflows.&lt;/p&gt;

&lt;p&gt;Using open-source tools makes it possible to build a flexible estimation platform without depending entirely on proprietary AI APIs or their pricing.&lt;/p&gt;

&lt;p&gt;My long-term goal is to make practical AI-assisted engineering tools more accessible to independent professionals and small businesses.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Open-Source AI&lt;/li&gt;
&lt;li&gt;Side Hustle&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built an AI That Teaches You to Notice the World, Not Stare at a Screen</title>
      <dc:creator>Rittik Chakraborty</dc:creator>
      <pubDate>Sun, 11 Oct 2026 14:26:27 +0000</pubDate>
      <link>https://dev.to/devrittik/i-built-an-ai-that-teaches-you-to-notice-the-world-not-stare-at-a-screen-10bp</link>
      <guid>https://dev.to/devrittik/i-built-an-ai-that-teaches-you-to-notice-the-world-not-stare-at-a-screen-10bp</guid>
      <description>&lt;p&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;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Observation Coach — A little less screen. A little more world.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most AI applications try to keep you engaged with your screen. I wanted to build something that does the opposite: an AI coach that helps you put your phone away and pay closer attention to the world around you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://observation-coach.vercel.app" rel="noopener noreferrer"&gt;Observation Coach — Live Preview&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The idea is simple: &lt;strong&gt;AI should teach you how to observe, rather than observe everything for you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's how it works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Choose an exercise:&lt;/strong&gt; Pick a short observation session lasting 5, 10, 20, or 30 minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step away:&lt;/strong&gt; The app invites you to put your phone away and explore your surroundings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notice something real:&lt;/strong&gt; Return and describe a detail you actually observed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reflect with AI:&lt;/strong&gt; The coach asks a thoughtful follow-up question based on your description.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build the skill:&lt;/strong&gt; Receive an adaptive next exercise designed to help you develop your observation skills over time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Instead of identifying objects through a camera, generating endless challenges, or turning everything into a competition, Observation Coach focuses on attention, description, comparison, change, inference, and deeper observation.&lt;/p&gt;

&lt;p&gt;It's designed for anyone who wants to reconnect with their surroundings, become more mindful of everyday details, or simply spend less time staring at a screen.&lt;/p&gt;

&lt;p&gt;The goal isn't to make people spend more time with AI. It's to make them need AI less.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Product Walkthrough:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://youtu.be/KArn5bRtpeI" rel="noopener noreferrer"&gt;https://youtu.be/KArn5bRtpeI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Walkthrough:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://youtu.be/vQHZ7amHMTo" rel="noopener noreferrer"&gt;https://youtu.be/vQHZ7amHMTo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try the Live Preview:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://observation-coach.vercel.app" rel="noopener noreferrer"&gt;https://observation-coach.vercel.app&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The project is open source:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/devrittik/observation-coach" rel="noopener noreferrer"&gt;https://github.com/devrittik/observation-coach&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built with Next.js, TypeScript, Tailwind CSS, and MongoDB.&lt;/p&gt;

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

&lt;p&gt;I built Observation Coach with a focus on modular architecture, privacy, and the flexibility to use open-weight models locally or through a hosted inference provider.&lt;/p&gt;

&lt;h3&gt;
  
  
  The technology stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend and application:&lt;/strong&gt; Next.js App Router, TypeScript, and Tailwind CSS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; MongoDB for user accounts, sessions, saved observations, and progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI integration:&lt;/strong&gt; A provider abstraction that supports local inference and hosted OpenAI-compatible APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local inference:&lt;/strong&gt; Qwen 3B Instruct in GGUF format, downloaded from Hugging Face and run through llama.cpp.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosted inference:&lt;/strong&gt; Qwen 27B Instruct through Groq.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation:&lt;/strong&gt; Structured model responses are validated before being used by the application.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why the AI is a coach, not an answer machine
&lt;/h3&gt;

&lt;p&gt;The interesting part of this project isn't simply generating a response to a user's observation.&lt;/p&gt;

&lt;p&gt;The coach needs to meet the user where they are. If someone notices only a basic detail, the AI should help them explore it further rather than immediately provide an elaborate interpretation.&lt;/p&gt;

&lt;p&gt;The application uses structured prompts and validated responses to support short reflections, follow-up questions, and adaptive exercises. A separate progression system helps determine what the user can practise next.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local AI and hosted AI
&lt;/h3&gt;

&lt;p&gt;I wanted the project to be adaptable rather than permanently tied to one AI provider.&lt;/p&gt;

&lt;p&gt;The local setup uses an instruction-tuned Qwen model in GGUF format through llama.cpp. For hosted inference, the application supports an OpenAI-compatible API, with Qwen 27B Instruct through Groq as my intended hosted configuration.&lt;/p&gt;

&lt;p&gt;This separation means the application can support different inference environments without requiring a complete rewrite of its AI integration.&lt;/p&gt;

&lt;p&gt;The project also includes a guided demo mode, so people can explore the observation workflow without requiring a working AI API key.&lt;/p&gt;

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

&lt;p&gt;For Observation Coach, open innovation is not just a way to reduce API costs. It changes where and how the application can be used.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. AI that can work offline
&lt;/h3&gt;

&lt;p&gt;With a local application, a local database, and a local open-weight model, the experience can work without an internet connection once everything is installed and running.&lt;/p&gt;

&lt;p&gt;That makes the concept useful even in places with limited or unreliable connectivity. It also means the user doesn't have to depend on a remote AI service just to practise observing their surroundings.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Privacy and control over personal observations
&lt;/h3&gt;

&lt;p&gt;An observation can be personal. People might write about their surroundings, emotions, memories, or everyday experiences.&lt;/p&gt;

&lt;p&gt;Running inference locally allows those observations to remain on the user's machine rather than being sent to an external AI provider. This is an important option for a product built around personal reflection.&lt;/p&gt;

&lt;p&gt;The hosted version is a practical alternative, but local inference gives users more control over their data.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Freedom to experiment and switch models
&lt;/h3&gt;

&lt;p&gt;Open-weight models let developers experiment with different model sizes, prompts, and inference setups.&lt;/p&gt;

&lt;p&gt;A smaller model can be useful for resource-constrained machines, while a larger hosted model can offer another option when local hardware is insufficient. This flexibility is especially valuable when building a project that should remain accessible to people with different hardware and budgets.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Technology that encourages people to disconnect
&lt;/h3&gt;

&lt;p&gt;The most important design decision is that the AI is not supposed to become another reason to stay online.&lt;/p&gt;

&lt;p&gt;Observation Coach deliberately keeps the interaction short. It gives the user an exercise, steps aside, and waits for them to return with something they actually noticed.&lt;/p&gt;

&lt;p&gt;For me, that's the real point of the Touch Grass challenge: using AI to help people reconnect with the world, rather than creating another experience that competes for their attention.&lt;/p&gt;

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

&lt;p&gt;I didn't use DevRelay for this project, so I don't have a DevRelay session to share.&lt;/p&gt;

&lt;p&gt;The code and implementation details are available in the &lt;a href="https://github.com/devrittik/observation-coach" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;, and the &lt;a href="https://youtu.be/vQHZ7amHMTo" rel="noopener noreferrer"&gt;code walkthrough&lt;/a&gt; provides another way to explore the project.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Best Use of MongoDB Atlas&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Submission Type
&lt;/h2&gt;

&lt;p&gt;Individual submission.&lt;/p&gt;

&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://devrittik.com" rel="noopener noreferrer"&gt;https://devrittik.com&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Built for Hacktoberfest 2026 — Open-Source AI Challenge, Week 1: Touch Grass.&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge #hacktoberfest #opensource #ai #nextjs #mongodb #llama.cpp
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>hacktoberfest</category>
      <category>ai</category>
    </item>
    <item>
      <title>Dukaandaar AI — An Open-Source AI Assistant for Small Businesses</title>
      <dc:creator>Rittik Chakraborty</dc:creator>
      <pubDate>Mon, 05 Oct 2026 06:57:22 +0000</pubDate>
      <link>https://dev.to/devrittik/dukaandaar-ai-an-open-source-ai-assistant-for-small-businesses-114a</link>
      <guid>https://dev.to/devrittik/dukaandaar-ai-an-open-source-ai-assistant-for-small-businesses-114a</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&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;Dukaandaar AI&lt;/strong&gt; for my friend &lt;strong&gt;Suman Mandal&lt;/strong&gt;, who works as an accountant handling inventory-related operations.&lt;/p&gt;

&lt;p&gt;The idea started from seeing how much day-to-day business information can involve repetitive entries, calculations, inventory tracking, sales, purchases, and expenses.&lt;/p&gt;

&lt;p&gt;I wanted to build something that could make these tasks easier and more natural to interact with.&lt;/p&gt;

&lt;p&gt;Dukaandaar AI is an AI-powered business management application for small shops and businesses. It provides features for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📦 Inventory management&lt;/li&gt;
&lt;li&gt;🛒 Sales&lt;/li&gt;
&lt;li&gt;📥 Purchases&lt;/li&gt;
&lt;li&gt;💰 Expenses&lt;/li&gt;
&lt;li&gt;📊 Business reports&lt;/li&gt;
&lt;li&gt;📉 Losses and adjustments&lt;/li&gt;
&lt;li&gt;🤖 Natural-language interaction with business data&lt;/li&gt;
&lt;li&gt;🎙️ Voice-based interaction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, instead of manually searching through the application, a user can ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How many units of this product are left?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How much did I spend this month?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The project started as something I wanted to build for one real person, and then I decided to stretch the idea into a more complete tool that could potentially be useful for other small businesses as well.&lt;/p&gt;

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


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://drive.google.com/drive/folders/1TAvQgogzpOgHoXlvOtDkIH-pr9HDBwGm?usp=drive_link" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;drive.google.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/devrittik/dukaandaar-ai" rel="noopener noreferrer"&gt;https://github.com/devrittik/dukaandaar-ai&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Live
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;URL:&lt;/strong&gt; &lt;a href="https://dukaandaar-ai.vercel.app" rel="noopener noreferrer"&gt;https://dukaandaar-ai.vercel.app&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Dukaandaar AI is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Express&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;REST APIs&lt;/li&gt;
&lt;li&gt;AI/LLM integrations&lt;/li&gt;
&lt;li&gt;Local AI components&lt;/li&gt;
&lt;li&gt;Speech-to-text / voice interaction&lt;/li&gt;
&lt;li&gt;Authentication and application logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A major design goal was to support &lt;strong&gt;both local/private and hosted deployments&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For users who want maximum privacy, the application can be run locally with local AI components, allowing business data to remain on their own machine.&lt;/p&gt;

&lt;p&gt;For users who prefer convenience and remote access, the application can also be deployed as a hosted application.&lt;/p&gt;

&lt;p&gt;The AI is not intended to be just a chatbot sitting beside the application. The goal is to make AI an actual interface for interacting with structured business information.&lt;/p&gt;

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

&lt;p&gt;For a small business application, privacy can be extremely important because inventory, sales, purchases, and financial information can be sensitive.&lt;/p&gt;

&lt;p&gt;Open-source AI and local inference make it possible to build an AI-powered application where users can choose to keep their data and inference local instead of being completely dependent on a closed third-party API.&lt;/p&gt;

&lt;p&gt;It also gives developers more control over the AI layer. Models and inference approaches can be changed or upgraded without having to redesign the entire application around a single proprietary provider.&lt;/p&gt;

&lt;p&gt;For Dukaandaar AI, that flexibility is especially useful because the project supports both &lt;strong&gt;fully private/local usage&lt;/strong&gt; and &lt;strong&gt;hosted usage&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;This project was &lt;strong&gt;not built using DevRelay&lt;/strong&gt;, so I don't have an agent session to include.&lt;/p&gt;

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

&lt;p&gt;Best Use of ElevenLabs&lt;/p&gt;

&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://devrittik.com" rel="noopener noreferrer"&gt;https://devrittik.com&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #weekendchallenge #hf26challenge
&lt;/h1&gt;

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