<?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: Bharat Bhagat</title>
    <description>The latest articles on DEV Community by Bharat Bhagat (@bharatefb).</description>
    <link>https://dev.to/bharatefb</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%2F528039%2Fcd950665-2bc8-49f0-ac4f-b388bea67162.png</url>
      <title>DEV Community: Bharat Bhagat</title>
      <link>https://dev.to/bharatefb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bharatefb"/>
    <language>en</language>
    <item>
      <title>GHOSTBYTE 👻 — A Little Memory. An Endless Afterlife.</title>
      <dc:creator>Bharat Bhagat</dc:creator>
      <pubDate>Thu, 29 Oct 2026 05:13:55 +0000</pubDate>
      <link>https://dev.to/bharatefb/ghostbyte-a-little-memory-an-endless-afterlife-odf</link>
      <guid>https://dev.to/bharatefb/ghostbyte-a-little-memory-an-endless-afterlife-odf</guid>
      <description>&lt;p&gt;GHOSTBYTE 👻 — A Little Memory. An Endless Afterlife.&lt;/p&gt;

&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/p&gt;

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

&lt;p&gt;GHOSTBYTE is a local-first, AI-powered memory archive that gives forgotten memories a second life.&lt;/p&gt;

&lt;p&gt;What if the memories we save could tell us stories we never imagined?&lt;/p&gt;

&lt;p&gt;Inspired by Halloween, Día de los Muertos, and the stories we carry about people and places from our past, I built GHOSTBYTE to preserve personal memories and transform them into something new.&lt;/p&gt;

&lt;p&gt;GHOSTBYTE lets users:&lt;/p&gt;

&lt;p&gt;👻 Preserve Memories: Save personal stories, important moments, people, places, and details in a persistent archive.&lt;br&gt;
🔎 Ask the Archive: Ask questions about saved memories and explore fragments of the past with local AI.&lt;br&gt;
🕯️ Generate Ghost Stories: Transform selected memories into eerie, melancholic, supernatural, or psychological horror fiction.&lt;br&gt;
🗄️ Keep Memories Persistent: Store memories and generated stories in Microsoft SQL Server.&lt;br&gt;
🔒 Keep Data Local: Run AI inference on your own computer instead of sending personal stories to a hosted AI API.&lt;/p&gt;

&lt;p&gt;The idea behind GHOSTBYTE is simple: our memories deserve a place that doesn't depend on a third-party AI service staying online.&lt;/p&gt;

&lt;p&gt;Some memories fade. Others become part of the machine.&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;Run GHOSTBYTE locally:&lt;/p&gt;

&lt;p&gt;Install Node.js, Microsoft SQL Server, and Ollama.&lt;br&gt;
Download the model using ollama pull qwen2.5:1.5b.&lt;br&gt;
Configure the database connection in your .env file.&lt;br&gt;
Start the application with npm start.&lt;br&gt;
Open &lt;a href="http://127.0.0.1:3000" rel="noopener noreferrer"&gt;http://127.0.0.1:3000&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The application runs locally, and the AI uses your local Ollama installation.&lt;/p&gt;

&lt;p&gt;Demo Image: &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%2F5qz5fxwmn6zle60i4qvl.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%2F5qz5fxwmn6zle60i4qvl.png" alt=" " width="800" height="348"&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%2Fo03wnjyyo7amuenbov4f.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%2Fo03wnjyyo7amuenbov4f.png" alt=" " width="800" height="381"&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%2Flet5mc02b1dhq23x6xhh.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%2Flet5mc02b1dhq23x6xhh.png" alt=" " width="800" height="374"&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%2Fgo9y3d8eh6d80snjcnn7.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%2Fgo9y3d8eh6d80snjcnn7.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GHOSTBYTE is currently designed to run locally.&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;GitHub repository: &lt;a href="https://github.com/Bharatefb/Ghost-Byte-AI.git" rel="noopener noreferrer"&gt;https://github.com/Bharatefb/Ghost-Byte-AI.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project uses a straightforward architecture:&lt;/p&gt;

&lt;p&gt;public/ — HTML, CSS, and browser JavaScript.&lt;br&gt;
server.js — Node.js and Express backend.&lt;br&gt;
database/schema.sql — SQL Server database schema.&lt;br&gt;
.env — Local configuration for the database and Ollama.&lt;br&gt;
Ollama — Local inference using Qwen2.5 1.5B.&lt;/p&gt;

&lt;p&gt;The code is designed to keep the application understandable and extensible, without requiring a hosted AI API.&lt;/p&gt;

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

&lt;p&gt;GHOSTBYTE combines traditional web technologies with open-weight AI running locally.&lt;/p&gt;

&lt;p&gt;Technology stack:&lt;/p&gt;

&lt;p&gt;Frontend: HTML, CSS, and vanilla JavaScript.&lt;br&gt;
Backend: Node.js and Express.&lt;br&gt;
AI model: Qwen2.5 1.5B through Ollama.&lt;br&gt;
Database: Microsoft SQL Server.&lt;br&gt;
Inference: Local model execution through the Ollama API.&lt;/p&gt;

&lt;p&gt;The frontend lets users create and explore memories, ask questions, and generate stories. Express handles API requests and communicates with SQL Server and Ollama.&lt;/p&gt;

&lt;p&gt;SQL Server provides persistent storage for personal memories and generated fiction. Ollama runs Qwen2.5 1.5B locally, allowing the application to generate responses without relying on a hosted AI inference API.&lt;/p&gt;

&lt;p&gt;I initially planned to use Qwen 3.5 2B, but I switched to Qwen2.5 1.5B to improve responsiveness on my development machine. This also made model selection an important part of the project: the model can be changed to suit the hardware and desired performance.&lt;/p&gt;

&lt;p&gt;After the initial installation, model download, and dependency setup, the core application can work offline, provided the database, application server, and local model are running.&lt;/p&gt;

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

&lt;p&gt;Personal memories are among the most private things we have.&lt;/p&gt;

&lt;p&gt;I didn't want GHOSTBYTE to require uploading family stories, personal experiences, or sensitive details to a remote AI provider just to explore them.&lt;/p&gt;

&lt;p&gt;Using an open-weight model through Ollama makes local inference possible. Memories stay in the locally configured SQL Server database, and AI requests are sent to the local Ollama service rather than a hosted AI API.&lt;/p&gt;

&lt;p&gt;Open innovation makes several things possible:&lt;/p&gt;

&lt;p&gt;Privacy and control: Personal stories can remain on a computer controlled by the user.&lt;br&gt;
Offline capability: Once dependencies and the model are installed, core features can work without internet access.&lt;br&gt;
Model flexibility: Developers can experiment with different compatible local models and adjust prompts to change the experience.&lt;br&gt;
No hosted AI request fees: Local inference avoids per-request charges from a hosted AI provider, although running the computer still consumes resources.&lt;br&gt;
Long-term independence: The project does not depend on one proprietary AI API being available forever.&lt;/p&gt;

&lt;p&gt;For a project about preserving memories, this independence matters. A private archive should remain useful even when a cloud service changes its pricing, access rules, or availability.&lt;/p&gt;

&lt;p&gt;Open AI makes GHOSTBYTE more than a storytelling interface. It makes a locally controlled memory archive possible.&lt;/p&gt;

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

&lt;p&gt;Imagine saving a memory about your grandmother's old house.&lt;/p&gt;

&lt;p&gt;Years later, you open GHOSTBYTE and ask what you remember about that place. The archive helps you revisit the details you preserved. Then you select that memory, choose Eerie and atmospheric, and ask the machine to turn it into a ghost story.&lt;/p&gt;

&lt;p&gt;The resulting story might describe a hallway clock stopping at midnight or footsteps echoing through an empty room.&lt;/p&gt;

&lt;p&gt;Those supernatural details are fiction, not recovered facts. The real memory remains yours; the machine simply gives it another form.&lt;/p&gt;

&lt;p&gt;That is the spirit of GHOSTBYTE: preserving the past while letting imagination wander through it.&lt;/p&gt;

&lt;p&gt;A little memory. An endless afterlife. 👻&lt;/p&gt;

&lt;p&gt;Built with Node.js, Microsoft SQL Server, Ollama, and Qwen2.5 1.5B.&lt;/p&gt;

&lt;p&gt;Some memories fade. Others become part of the machine.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>LazyRead AI: Your Webpage, Simplified with Local AI 🦥</title>
      <dc:creator>Bharat Bhagat</dc:creator>
      <pubDate>Sun, 25 Oct 2026 13:39:00 +0000</pubDate>
      <link>https://dev.to/bharatefb/lazyread-ai-your-webpage-simplified-with-local-ai-2lp5</link>
      <guid>https://dev.to/bharatefb/lazyread-ai-your-webpage-simplified-with-local-ai-2lp5</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/p&gt;

&lt;p&gt;LazyRead AI: Your Webpage, Simplified with Local AI 🦥&lt;br&gt;
What I Built&lt;/p&gt;

&lt;p&gt;Meet LazyRead AI — a browser extension that helps you understand webpages without reading every single word.&lt;/p&gt;

&lt;p&gt;We all open articles, tutorials, documentation, and blogs intending to read them carefully. Then we see a wall of text, scroll endlessly, and sometimes give up before finding the information we need.&lt;/p&gt;

&lt;p&gt;LazyRead AI makes that easier.&lt;/p&gt;

&lt;p&gt;With one click, it reads the current webpage and generates a concise summary, key takeaways, important facts, and actionable points using a locally running AI model.&lt;/p&gt;

&lt;p&gt;Instead of spending 10 minutes reading a long article to understand its main idea, you can start with a quick summary and decide what deserves your attention.&lt;/p&gt;

&lt;p&gt;The goal is simple: less scrolling, less effort, and more understanding.&lt;/p&gt;

&lt;p&gt;Features&lt;br&gt;
✨ One-click summaries: Get the main idea of the current webpage.&lt;br&gt;
🎯 Key takeaways: See the most important points at a glance.&lt;br&gt;
📌 Important facts: Identify useful facts, dates, and details.&lt;br&gt;
⚡ Local AI inference: Generate summaries using Ollama and Qwen 3.5:2B.&lt;br&gt;
🔒 Privacy-focused: Webpage content is processed by your local backend and model instead of being sent to a hosted AI summarization API.&lt;br&gt;
🦥 Built for doing less: Spend less time reading and more time using what you learn.&lt;br&gt;
Demo&lt;/p&gt;

&lt;p&gt;GitHub repository: &lt;a href="https://github.com/Bharatefb/LazyRead-AI" rel="noopener noreferrer"&gt;https://github.com/Bharatefb/LazyRead-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LazyRead AI runs as a Chrome extension connected to a local FastAPI backend and Ollama.&lt;/p&gt;

&lt;p&gt;To demonstrate it, open a long article, click the LazyRead AI extension, and select Summarize this page. The extension displays the summary and key points in its popup.&lt;/p&gt;

&lt;p&gt;Demo video or screenshots: &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%2Fu519uugya478kufk7mfh.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%2Fu519uugya478kufk7mfh.PNG" alt=" " width="491" height="750"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;Explore the complete project here:&lt;/p&gt;

&lt;p&gt;🚀 LazyRead AI on GitHub&lt;/p&gt;

&lt;p&gt;The project combines a browser extension frontend with a Python backend and a locally running language model.&lt;/p&gt;

&lt;p&gt;The main components are:&lt;/p&gt;

&lt;p&gt;Chrome Extension: HTML, CSS, and JavaScript for extracting webpage content and displaying results.&lt;br&gt;
Backend: FastAPI receives the extracted webpage text and coordinates summarization requests.&lt;br&gt;
AI Inference: Ollama runs Qwen 3.5:2B locally and generates the summary.&lt;br&gt;
Response Processing: Python parses the model's output into structured JSON that the extension can display.&lt;br&gt;
How I Built It&lt;/p&gt;

&lt;p&gt;I built LazyRead AI using a straightforward architecture designed to keep the AI processing local.&lt;/p&gt;

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

&lt;p&gt;Qwen 3.5:2B: The open-weight language model used to summarize webpages.&lt;br&gt;
Ollama: Runs the model locally and provides an API for inference.&lt;br&gt;
FastAPI: Handles requests from the browser extension and communicates with Ollama.&lt;br&gt;
HTML, CSS, and JavaScript: Power the extension's user interface and webpage text extraction.&lt;br&gt;
Chrome Extension Manifest V3: Connects the popup interface to the active webpage and local backend.&lt;br&gt;
How it works&lt;br&gt;
The user opens a webpage and clicks the LazyRead AI extension.&lt;br&gt;
JavaScript extracts the page title, URL, and readable text.&lt;br&gt;
The extension sends the extracted content to the local FastAPI server.&lt;br&gt;
FastAPI forwards a concise summarization prompt to Qwen 3.5:2B through Ollama.&lt;br&gt;
The model generates a structured response containing the summary, key points, important facts, and action items.&lt;br&gt;
FastAPI returns the result, and the extension displays it in a clean, readable interface.&lt;/p&gt;

&lt;p&gt;One challenge was handling incomplete JSON responses and slow model inference. I improved the backend's timeout handling, limited the amount of webpage text sent to the model, and added response validation and error handling.&lt;/p&gt;

&lt;p&gt;That debugging process helped make the extension more reliable and its failure modes easier to understand.&lt;/p&gt;

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

&lt;p&gt;For LazyRead AI, open innovation is what makes the project possible.&lt;/p&gt;

&lt;p&gt;I wanted to build a useful AI tool without making every webpage depend on a paid, remotely hosted AI API.&lt;/p&gt;

&lt;p&gt;Using an open-weight model with Ollama gives me control over where inference happens, which model I use, and how the summarization process works.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Your content stays under your control&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Webpages are processed by a local FastAPI backend and a local Ollama instance. The project does not need to send webpage content to a third-party AI inference API.&lt;/p&gt;

&lt;p&gt;That matters when summarizing internal documentation, personal research, or content users prefer not to share with an external service. The extension still needs local services to be configured correctly, and other browser or network activity is outside this guarantee.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;No per-summary AI API bill&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once the model has been downloaded, local inference does not require a paid hosted-model API for each summary. Users still need a compatible computer, and local inference consumes computing resources and electricity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Freedom to experiment&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I can change prompts, adjust output limits, modify the response format, and experiment with other compatible models without rebuilding the entire application around a single closed provider.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Offline potential&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After the model and dependencies are installed, the summarization pipeline can operate without an internet connection, provided the local services are running and the webpage content is already accessible. Downloading the model and installing dependencies initially requires connectivity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Learning by building&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Open tools let me inspect the complete request flow, debug inference problems, and understand how the model responds. Instead of treating AI as a black box behind an API, I can improve the system at every layer.&lt;/p&gt;

&lt;p&gt;For this project, open innovation means ownership, flexibility, and the freedom to build an AI tool around the user's needs rather than a provider's limitations.&lt;/p&gt;

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

&lt;p&gt;LazyRead AI currently uses a direct FastAPI-to-Ollama inference pipeline rather than a dedicated autonomous agent framework.&lt;/p&gt;

&lt;p&gt;I haven't included a DevRelay agent session in this submission. If I record one, I'll add the session link here.&lt;/p&gt;

&lt;p&gt;The Lazy Payoff 🦥&lt;/p&gt;

&lt;p&gt;The biggest benefit is that users no longer need to read an entire article before deciding whether it is worth their time.&lt;/p&gt;

&lt;p&gt;LazyRead AI gives them a quick overview first, helping them decide what to read deeply, what to save for later, and what they already understand.&lt;/p&gt;

&lt;p&gt;I built this project around a simple idea:&lt;/p&gt;

&lt;p&gt;AI should take the repetitive work off our hands, not make us work harder to use it.&lt;/p&gt;

&lt;p&gt;The project is an early version, and I still want to improve summary quality, response speed, and support for different kinds of webpages.&lt;/p&gt;

&lt;p&gt;For now, the goal is to make everyday reading a little less exhausting — one click at a time.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;p&gt;Select the applicable partner categories listed on the official challenge page before publishing. I haven't selected any specific partner categories because the current category list hasn't been verified.&lt;/p&gt;

&lt;p&gt;Built with curiosity, open-source tools, and a little sloth energy. 🦥💜&lt;/p&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/Bharatefb/LazyRead-AI" rel="noopener noreferrer"&gt;https://github.com/Bharatefb/LazyRead-AI&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Hacktoberfest #OpenSource #AI #Ollama #Qwen #FastAPI #ChromeExtension #LocalAI #BuildInPublic
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>qwen</category>
      <category>ai</category>
    </item>
    <item>
      <title>PageCraftGenie AI: Turn Any Webpage into Documents and Visual Assets with Local AI ✨</title>
      <dc:creator>Bharat Bhagat</dc:creator>
      <pubDate>Fri, 16 Oct 2026 07:24:05 +0000</pubDate>
      <link>https://dev.to/bharatefb/pagegeniecraft-ai-turn-any-webpage-into-documents-and-visual-assets-with-local-ai-28o7</link>
      <guid>https://dev.to/bharatefb/pagegeniecraft-ai-turn-any-webpage-into-documents-and-visual-assets-with-local-ai-28o7</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/p&gt;

&lt;p&gt;PageCraftGenie AI: Turn Any Webpage into Documents and Visual Assets with Local AI ✨&lt;br&gt;
What I Built&lt;/p&gt;

&lt;p&gt;PageCraftGenie AI is an AI-powered browser extension that transforms the content of the current webpage into useful digital documents and visual assets.&lt;/p&gt;

&lt;p&gt;Have you ever found a useful webpage and wished you could instantly turn its information into a professional report, spreadsheet, presentation, or image? That's the problem I wanted to solve.&lt;/p&gt;

&lt;p&gt;With PageCraftGenie AI, users can open any webpage, capture the page or screen, choose the output they need, and let AI handle the content transformation.&lt;/p&gt;

&lt;p&gt;It supports generating:&lt;/p&gt;

&lt;p&gt;Word documents for editable notes, summaries, and reports.&lt;br&gt;
Excel spreadsheets for organizing information into structured data.&lt;br&gt;
PowerPoint presentations for turning webpage content into presentation-ready material.&lt;br&gt;
PDF reports for sharing and saving information.&lt;br&gt;
Images and visual assets for creative and visual content generation.&lt;/p&gt;

&lt;p&gt;The goal is to reduce the time and effort required to manually copy, organize, format, and transform information from websites.&lt;/p&gt;

&lt;p&gt;Who is it for?&lt;/p&gt;

&lt;p&gt;PageCraftGenie AI can be useful for students, researchers, developers, content creators, freelancers, and professionals who regularly work with online information.&lt;/p&gt;

&lt;p&gt;For example, a student could turn educational content into study notes, a researcher could convert information into a report, or a freelancer could transform webpage content into a client-ready document.&lt;/p&gt;

&lt;p&gt;As a potential side hustle, the project could evolve into a productivity tool for individuals and businesses that need faster document creation and content processing.&lt;/p&gt;

&lt;p&gt;Demo&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%2F3v4pkdz7f4ebyt74556e.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%2F3v4pkdz7f4ebyt74556e.png" alt=" " width="358" height="441"&gt;&lt;/a&gt;&lt;br&gt;
The demo showcases the workflow:&lt;/p&gt;

&lt;p&gt;Open a webpage in the browser.&lt;br&gt;
Capture the webpage content or screen.&lt;br&gt;
Select the desired output format.&lt;br&gt;
Let the AI process the content.&lt;br&gt;
Download the generated document or visual asset.&lt;br&gt;
Code&lt;/p&gt;

&lt;p&gt;💻 GitHub Repository: &lt;a href="https://github.com/Bharatefb/PageCraftGenie-AI" rel="noopener noreferrer"&gt;https://github.com/Bharatefb/PageCraftGenie-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explore the source code, review the implementation, and contribute ideas or improvements.&lt;/p&gt;

&lt;p&gt;The project brings together a browser extension, a backend API, and locally running AI models to make webpage-to-content generation possible.&lt;/p&gt;

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

&lt;p&gt;I built PageCraftGenie AI by combining browser-based content capture, a Python backend, and open-weight language models running locally.&lt;/p&gt;

&lt;p&gt;Technology Stack&lt;br&gt;
Browser Extension: Captures webpage content and screen information and lets users select their desired output.&lt;br&gt;
Python and FastAPI: Provides the backend API and handles generation requests.&lt;br&gt;
Ollama: Runs open-weight AI models locally.&lt;br&gt;
Qwen 2.5 1.5B: Used for generating structured content from prompts.&lt;br&gt;
Document and Image Generation: The backend processes the model's output into downloadable files, including PDFs and PNG images, with support for additional document formats.&lt;br&gt;
How it works&lt;br&gt;
Capture: The extension gathers the relevant webpage content or screenshot.&lt;br&gt;
Understand: The backend prepares a prompt containing the user's request and available page information.&lt;br&gt;
Generate: The request is sent to a locally running Ollama model.&lt;br&gt;
Transform: The generated content is processed into the requested document or visual output.&lt;br&gt;
Download: The user receives a generated file through the application.&lt;/p&gt;

&lt;p&gt;During development, I tested the backend with Uvicorn and verified requests to the generation API, including successful PDF and PNG downloads.&lt;/p&gt;

&lt;p&gt;One of my main goals was to explore how a small, locally running model can power a practical AI productivity tool without depending entirely on paid, hosted model APIs.&lt;/p&gt;

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

&lt;p&gt;Open innovation is essential to a project like PageCraftGenie AI because it makes experimentation with AI more accessible.&lt;/p&gt;

&lt;p&gt;By using Ollama and open-weight models, I can experiment with different models, test prompts, adjust the generation workflow, and build around my own requirements.&lt;/p&gt;

&lt;p&gt;This approach offers several advantages:&lt;/p&gt;

&lt;p&gt;Local inference: Run supported models on your own machine instead of sending every generation request to a hosted AI provider.&lt;br&gt;
Greater control: Choose and switch between available models based on performance, quality, and hardware requirements.&lt;br&gt;
Lower experimentation costs: Avoid per-request charges from hosted model APIs when running models locally, although local hardware and electricity still have costs.&lt;br&gt;
Privacy-conscious design: Local inference can reduce external data sharing, provided the rest of the application also keeps webpage content and generated files local.&lt;br&gt;
Community-driven development: Open-source tools make it easier for developers to inspect the implementation, report issues, contribute improvements, and build new features.&lt;/p&gt;

&lt;p&gt;For me, open innovation is not just about using open-source software. It is about making AI capabilities more accessible and giving developers the freedom to build useful products on top of them.&lt;/p&gt;

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

&lt;p&gt;I would use this section to show how I developed the project, experimented with local AI models, debugged the generation pipeline, and connected the AI backend to the browser extension.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;p&gt;[Add the applicable partner prize categories from the official challenge page, or remove this section if none apply.]&lt;/p&gt;

&lt;p&gt;What's Next?&lt;/p&gt;

&lt;p&gt;I want to continue improving PageCraftGenie AI by exploring:&lt;/p&gt;

&lt;p&gt;Better extraction of meaningful content from complex webpages.&lt;br&gt;
More reliable document formatting and structured spreadsheet generation.&lt;br&gt;
Improved visual generation workflows.&lt;br&gt;
Support for additional local AI models.&lt;br&gt;
A smoother user experience for switching between output formats.&lt;br&gt;
Better error handling and generation quality.&lt;/p&gt;

&lt;p&gt;My long-term vision is to make PageCraftGenie AI a practical AI-powered productivity assistant that helps people transform information they find online into something they can immediately use.&lt;/p&gt;

&lt;p&gt;Building this project has been an opportunity to explore the potential of open-weight AI models and turn them into a real-world tool.&lt;/p&gt;

&lt;p&gt;I'd love to hear your feedback! What webpage-to-document or webpage-to-visual feature would you find most useful?&lt;/p&gt;

&lt;p&gt;Thanks for reading! 🚀&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>🌱 TouchGrass-AI: Your Local AI Guide to Get Outside</title>
      <dc:creator>Bharat Bhagat</dc:creator>
      <pubDate>Wed, 07 Oct 2026 10:56:13 +0000</pubDate>
      <link>https://dev.to/bharatefb/touchgrass-ai-your-local-ai-guide-to-get-outside-417c</link>
      <guid>https://dev.to/bharatefb/touchgrass-ai-your-local-ai-guide-to-get-outside-417c</guid>
      <description>&lt;p&gt;🌱 TouchGrass-AI: Your Local AI Guide to Get Outside&lt;/p&gt;

&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/p&gt;

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

&lt;p&gt;TouchGrass-AI is a local-first AI outdoor activity guide designed to help people spend less time on their screens and more time outside.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;Tell the AI where you are, what you want to do, and how much time you have — then go touch some grass. 🌱&lt;/p&gt;

&lt;p&gt;A user provides:&lt;/p&gt;

&lt;p&gt;📍 Their general area&lt;/p&gt;

&lt;p&gt;🌳 The outdoor activity they want to do&lt;/p&gt;

&lt;p&gt;⏱ How much time they have&lt;/p&gt;

&lt;p&gt;💪 Their fitness/experience level&lt;/p&gt;

&lt;p&gt;✨ Their preferences&lt;/p&gt;

&lt;p&gt;⚠️ Any constraints&lt;/p&gt;

&lt;p&gt;TouchGrass-AI then generates a personalized outdoor plan containing:&lt;/p&gt;

&lt;p&gt;An activity recommendation&lt;/p&gt;

&lt;p&gt;Difficulty level&lt;/p&gt;

&lt;p&gt;Suggested duration&lt;/p&gt;

&lt;p&gt;Best time of day&lt;/p&gt;

&lt;p&gt;A step-by-step activity plan&lt;/p&gt;

&lt;p&gt;Things to bring&lt;/p&gt;

&lt;p&gt;Safety considerations&lt;/p&gt;

&lt;p&gt;A small "Touch Grass Challenge"&lt;/p&gt;

&lt;p&gt;An offline tip so the user can put their phone away&lt;/p&gt;

&lt;p&gt;The project is aimed at people who want to explore their surroundings but don't know what outdoor activity to do or how to start.&lt;/p&gt;

&lt;p&gt;The most important UX principle is:&lt;/p&gt;

&lt;p&gt;The screen should be the shortest part of the experience.&lt;/p&gt;

&lt;p&gt;The user gets their plan, reads it, puts their phone away, and goes outside.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
Local Demo&lt;/p&gt;

&lt;p&gt;The application runs locally at:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://127.0.0.1:8000" rel="noopener noreferrer"&gt;http://127.0.0.1:8000&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo Flow&lt;br&gt;
Enter location&lt;br&gt;
      ↓&lt;br&gt;
Choose outdoor activity&lt;br&gt;
      ↓&lt;br&gt;
Set available time&lt;br&gt;
      ↓&lt;br&gt;
Set fitness level&lt;br&gt;
      ↓&lt;br&gt;
Add preferences&lt;br&gt;
      ↓&lt;br&gt;
TouchGrass-AI generates a plan&lt;br&gt;
      ↓&lt;br&gt;
Read the plan&lt;br&gt;
      ↓&lt;br&gt;
Put the phone away 📵&lt;br&gt;
      ↓&lt;br&gt;
GO OUTSIDE 🌱&lt;/p&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;p&gt;Input:&lt;/p&gt;

&lt;p&gt;Location: Bandra, Mumbai&lt;br&gt;
Activity: Walking&lt;br&gt;
Time: 1-2 hours&lt;br&gt;
Experience: Beginner&lt;br&gt;
Preferences: Photography and quiet places&lt;br&gt;
Constraints: Avoid steep climbs&lt;/p&gt;

&lt;p&gt;TouchGrass-AI generates a personalized walking experience with a practical plan, preparation checklist, safety suggestions, and a small outdoor challenge.&lt;/p&gt;

&lt;p&gt;Code&lt;br&gt;
🌱 GitHub Repository&lt;/p&gt;

&lt;p&gt;Repository:&lt;br&gt;
&lt;a href="https://github.com/Bharatefb/TouchGrass-AI" rel="noopener noreferrer"&gt;https://github.com/Bharatefb/TouchGrass-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The complete source code is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Bharatefb/TouchGrass-AI" rel="noopener noreferrer"&gt;https://github.com/Bharatefb/TouchGrass-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is built as a simple local-first application:&lt;/p&gt;

&lt;p&gt;TouchGrass-AI/&lt;br&gt;
│&lt;br&gt;
├── app/&lt;br&gt;
│   ├── &lt;strong&gt;init&lt;/strong&gt;.py&lt;br&gt;
│   ├── main.py&lt;br&gt;
│   └── prompts.py&lt;br&gt;
│&lt;br&gt;
├── static/&lt;br&gt;
│   ├── index.html&lt;br&gt;
│   ├── style.css&lt;br&gt;
│   └── app.js&lt;br&gt;
│&lt;br&gt;
├── requirements.txt&lt;br&gt;
└── README.md&lt;/p&gt;

&lt;p&gt;Architecture&lt;br&gt;
┌─────────────────────────────┐&lt;br&gt;
│      HTML + JavaScript      │&lt;br&gt;
│          Frontend           │&lt;br&gt;
└──────────────┬──────────────┘&lt;br&gt;
               │&lt;br&gt;
               │ POST /api/guide&lt;br&gt;
               ▼&lt;br&gt;
┌─────────────────────────────┐&lt;br&gt;
│          FastAPI            │&lt;br&gt;
│        Python Backend       │&lt;br&gt;
└──────────────┬──────────────┘&lt;br&gt;
               │&lt;br&gt;
               │ localhost&lt;br&gt;
               ▼&lt;br&gt;
┌─────────────────────────────┐&lt;br&gt;
│           Ollama            │&lt;br&gt;
│      Local AI Runtime       │&lt;br&gt;
└──────────────┬──────────────┘&lt;br&gt;
               │&lt;br&gt;
               ▼&lt;br&gt;
┌─────────────────────────────┐&lt;br&gt;
│        gemma4:e2b           │&lt;br&gt;
│       Local AI Model        │&lt;br&gt;
└──────────────┬──────────────┘&lt;br&gt;
               │&lt;br&gt;
               ▼&lt;br&gt;
       Personalized Guide&lt;br&gt;
               │&lt;br&gt;
               ▼&lt;br&gt;
            🌱 OUTSIDE&lt;/p&gt;

&lt;p&gt;The code is intentionally simple so that someone can clone the project, install Ollama, download the model, and run the entire application locally.&lt;/p&gt;

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

&lt;p&gt;TouchGrass-AI uses Ollama for local model execution and the open-weight Gemma model gemma4:e2b as the AI engine.&lt;/p&gt;

&lt;p&gt;The backend is built with Python and FastAPI.&lt;/p&gt;

&lt;p&gt;The frontend uses:&lt;/p&gt;

&lt;p&gt;HTML&lt;/p&gt;

&lt;p&gt;CSS&lt;/p&gt;

&lt;p&gt;Vanilla JavaScript&lt;/p&gt;

&lt;p&gt;There is no React and no cloud AI API required.&lt;/p&gt;

&lt;p&gt;When the user submits the form, the browser sends the information to the FastAPI backend:&lt;/p&gt;

&lt;p&gt;Browser&lt;br&gt;
   ↓&lt;br&gt;
POST /api/guide&lt;br&gt;
   ↓&lt;br&gt;
FastAPI&lt;br&gt;
   ↓&lt;br&gt;
Prompt construction&lt;br&gt;
   ↓&lt;br&gt;
Ollama&lt;br&gt;
   ↓&lt;br&gt;
gemma4:e2b&lt;br&gt;
   ↓&lt;br&gt;
Structured JSON&lt;br&gt;
   ↓&lt;br&gt;
FastAPI&lt;br&gt;
   ↓&lt;br&gt;
Browser&lt;/p&gt;

&lt;p&gt;The model is instructed to return structured JSON containing the activity, plan, preparation checklist, safety information, and the final "Touch Grass Challenge".&lt;/p&gt;

&lt;p&gt;I also added response parsing and validation so that the backend can handle cases where the model accidentally returns JSON wrapped in markdown.&lt;/p&gt;

&lt;p&gt;Local AI&lt;/p&gt;

&lt;p&gt;The model runs through:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://localhost:11434" rel="noopener noreferrer"&gt;http://localhost:11434&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application communicates with Ollama locally instead of sending the user's request to a hosted LLM API.&lt;/p&gt;

&lt;p&gt;To run the project:&lt;/p&gt;

&lt;p&gt;git clone &lt;a href="https://github.com/Bharatefb/TouchGrass-AI.git" rel="noopener noreferrer"&gt;https://github.com/Bharatefb/TouchGrass-AI.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;cd TouchGrass-AI&lt;/p&gt;

&lt;p&gt;python -m venv venv&lt;/p&gt;

&lt;p&gt;venv\Scripts\activate&lt;/p&gt;

&lt;p&gt;pip install -r requirements.txt&lt;/p&gt;

&lt;p&gt;ollama pull gemma4:e2b&lt;/p&gt;

&lt;p&gt;uvicorn app.main:app --reload&lt;/p&gt;

&lt;p&gt;Then open:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://127.0.0.1:8000" rel="noopener noreferrer"&gt;http://127.0.0.1:8000&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;For TouchGrass-AI, local and open AI isn't just a technical choice — it is part of the product idea.&lt;/p&gt;

&lt;p&gt;The application asks for information that can be personal, such as someone's location, preferences, fitness level, and outdoor habits.&lt;/p&gt;

&lt;p&gt;Instead of requiring that information to be sent to a proprietary AI service, TouchGrass-AI can process the AI request locally through Ollama.&lt;/p&gt;

&lt;p&gt;That gives the project several advantages.&lt;/p&gt;

&lt;p&gt;🔒 Privacy&lt;/p&gt;

&lt;p&gt;The AI inference happens locally.&lt;/p&gt;

&lt;p&gt;The user's request goes from:&lt;/p&gt;

&lt;p&gt;TouchGrass-AI → localhost → Ollama → Local Model&lt;/p&gt;

&lt;p&gt;rather than requiring a cloud AI API.&lt;/p&gt;

&lt;p&gt;For an application involving location and personal preferences, keeping this information on the user's machine can be a meaningful advantage.&lt;/p&gt;

&lt;p&gt;🧩 Model Flexibility&lt;/p&gt;

&lt;p&gt;Because the application communicates with Ollama, the AI model can potentially be changed without rebuilding the entire application.&lt;/p&gt;

&lt;p&gt;The architecture separates:&lt;/p&gt;

&lt;p&gt;Application&lt;br&gt;
     ↓&lt;br&gt;
AI Runtime&lt;br&gt;
     ↓&lt;br&gt;
Model&lt;/p&gt;

&lt;p&gt;This means the project isn't fundamentally tied to one proprietary AI provider.&lt;/p&gt;

&lt;p&gt;💻 Local-First Experience&lt;/p&gt;

&lt;p&gt;A major goal of the challenge is getting people outside.&lt;/p&gt;

&lt;p&gt;Ironically, an AI outdoor application shouldn't require a permanent cloud connection just to generate a simple activity plan.&lt;/p&gt;

&lt;p&gt;Running the model locally makes a local-first experience possible.&lt;/p&gt;

&lt;p&gt;🛠 Open Development&lt;/p&gt;

&lt;p&gt;Using open AI infrastructure also makes the project easier to experiment with.&lt;/p&gt;

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

&lt;p&gt;The system prompt&lt;/p&gt;

&lt;p&gt;The model&lt;/p&gt;

&lt;p&gt;The application logic&lt;/p&gt;

&lt;p&gt;The response format&lt;/p&gt;

&lt;p&gt;The frontend&lt;/p&gt;

&lt;p&gt;The safety rules&lt;/p&gt;

&lt;p&gt;The activity recommendation strategy&lt;/p&gt;

&lt;p&gt;without having to rebuild the entire product around a closed AI API.&lt;/p&gt;

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

&lt;p&gt;I built TouchGrass-AI as a local AI application and iterated on the architecture, prompt design, JSON response format, and user experience.&lt;/p&gt;

&lt;p&gt;Agent session:&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;br&gt;
Open-Source AI / Local AI&lt;/p&gt;

&lt;p&gt;TouchGrass-AI is built around local AI inference using:&lt;/p&gt;

&lt;p&gt;Ollama&lt;/p&gt;

&lt;p&gt;Gemma open-weight model&lt;/p&gt;

&lt;p&gt;FastAPI&lt;/p&gt;

&lt;p&gt;HTML/CSS/JavaScript&lt;/p&gt;

&lt;p&gt;Touch Grass Theme&lt;/p&gt;

&lt;p&gt;The entire product is designed around the theme:&lt;/p&gt;

&lt;p&gt;Use AI to spend less time using AI.&lt;/p&gt;

&lt;p&gt;The AI creates the plan.&lt;/p&gt;

&lt;p&gt;Then the user closes the screen and goes outside.&lt;/p&gt;

&lt;p&gt;🌱 Plan less. Explore more. Touch grass.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
      <category>opensource</category>
    </item>
    <item>
      <title>AI-Lyrics-Generator</title>
      <dc:creator>Bharat Bhagat</dc:creator>
      <pubDate>Sun, 04 Oct 2026 17:03:25 +0000</pubDate>
      <link>https://dev.to/bharatefb/ai-lyrics-generator-2oec</link>
      <guid>https://dev.to/bharatefb/ai-lyrics-generator-2oec</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend&lt;/p&gt;

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

&lt;p&gt;I built AI Lyrics Generator, a local AI-powered web application that helps a friend turn an idea, topic, or feeling into an original song.&lt;/p&gt;

&lt;p&gt;The goal was simple: instead of struggling with a blank page or needing access to a paid AI service, my friend can enter a few details such as:&lt;/p&gt;

&lt;p&gt;🎵 Song name or topic&lt;/p&gt;

&lt;p&gt;🎸 Genre&lt;/p&gt;

&lt;p&gt;😊 Mood&lt;/p&gt;

&lt;p&gt;🌍 Language&lt;/p&gt;

&lt;p&gt;📝 Number of verses&lt;/p&gt;

&lt;p&gt;The application then generates an original song structure with sections such as verses, chorus, bridge, and final chorus.&lt;/p&gt;

&lt;p&gt;The project runs locally using Qwen2.5-Coder 3B through Ollama, with a FastAPI backend and a lightweight HTML/CSS/JavaScript frontend.&lt;/p&gt;

&lt;p&gt;The main problem I'm solving is making AI-assisted songwriting simple, accessible, and local.&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;🎥 Demo Video: Coming soon&lt;/p&gt;

&lt;p&gt;🌐 Live Demo: Coming soon&lt;/p&gt;

&lt;p&gt;The application can be run locally with Ollama, so users don't need a cloud AI API to generate lyrics.&lt;/p&gt;

&lt;p&gt;Code&lt;br&gt;
GitHub Repository&lt;/p&gt;

&lt;p&gt;AI-Lyrics-Generator&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Bharatefb/AI-Lyrics-Generator" rel="noopener noreferrer"&gt;https://github.com/Bharatefb/AI-Lyrics-Generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the complete frontend, FastAPI backend, prompt logic, and setup instructions.&lt;/p&gt;

&lt;p&gt;Project Architecture&lt;br&gt;
                 ┌─────────────────────┐&lt;br&gt;
                 │       Browser       │&lt;br&gt;
                 │                     │&lt;br&gt;
                 │  Song / Topic       │&lt;br&gt;
                 │  Genre              │&lt;br&gt;
                 │  Mood               │&lt;br&gt;
                 │  Language           │&lt;br&gt;
                 │  Verse Count        │&lt;br&gt;
                 └──────────┬──────────┘&lt;br&gt;
                            │&lt;br&gt;
                         HTTP POST&lt;br&gt;
                            │&lt;br&gt;
                            ▼&lt;br&gt;
                 ┌─────────────────────┐&lt;br&gt;
                 │       FastAPI       │&lt;br&gt;
                 │                     │&lt;br&gt;
                 │      /generate     │&lt;br&gt;
                 └──────────┬──────────┘&lt;br&gt;
                            │&lt;br&gt;
                            ▼&lt;br&gt;
                 ┌─────────────────────┐&lt;br&gt;
                 │       Ollama        │&lt;br&gt;
                 │                     │&lt;br&gt;
                 │ qwen2.5-coder:3b    │&lt;br&gt;
                 └──────────┬──────────┘&lt;br&gt;
                            │&lt;br&gt;
                            ▼&lt;br&gt;
                 ┌─────────────────────┐&lt;br&gt;
                 │   Generated Lyrics  │&lt;br&gt;
                 └──────────┬──────────┘&lt;br&gt;
                            │&lt;br&gt;
                            ▼&lt;br&gt;
                 ┌─────────────────────┐&lt;br&gt;
                 │       Browser       │&lt;br&gt;
                 │                     │&lt;br&gt;
                 │  [Verse 1]          │&lt;br&gt;
                 │  [Chorus]           │&lt;br&gt;
                 │  [Verse 2]          │&lt;br&gt;
                 │  [Bridge]           │&lt;br&gt;
                 │  [Final Chorus]     │&lt;br&gt;
                 └─────────────────────┘&lt;/p&gt;

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

&lt;p&gt;The project is built around open-weight AI and local inference.&lt;/p&gt;

&lt;p&gt;AI Model&lt;/p&gt;

&lt;p&gt;I use:&lt;/p&gt;

&lt;p&gt;Qwen2.5-Coder 3B&lt;/p&gt;

&lt;p&gt;through:&lt;/p&gt;

&lt;p&gt;Ollama&lt;/p&gt;

&lt;p&gt;The model runs locally on the user's machine rather than requiring a remote AI API.&lt;/p&gt;

&lt;p&gt;Backend&lt;/p&gt;

&lt;p&gt;The backend is written in:&lt;/p&gt;

&lt;p&gt;Python&lt;/p&gt;

&lt;p&gt;FastAPI&lt;/p&gt;

&lt;p&gt;Pydantic&lt;/p&gt;

&lt;p&gt;Requests&lt;/p&gt;

&lt;p&gt;Uvicorn&lt;/p&gt;

&lt;p&gt;The frontend sends the user's song requirements to the FastAPI /generate endpoint.&lt;/p&gt;

&lt;p&gt;FastAPI then builds a structured prompt and sends it to the local Ollama API.&lt;/p&gt;

&lt;p&gt;Browser&lt;br&gt;
   ↓&lt;br&gt;
POST /generate&lt;br&gt;
   ↓&lt;br&gt;
FastAPI&lt;br&gt;
   ↓&lt;br&gt;
Ollama&lt;br&gt;
   ↓&lt;br&gt;
qwen2.5-coder:3b&lt;br&gt;
   ↓&lt;br&gt;
Generated lyrics&lt;br&gt;
   ↓&lt;br&gt;
Browser&lt;/p&gt;

&lt;p&gt;Frontend&lt;/p&gt;

&lt;p&gt;The frontend uses standard web technologies:&lt;/p&gt;

&lt;p&gt;HTML&lt;/p&gt;

&lt;p&gt;CSS&lt;/p&gt;

&lt;p&gt;JavaScript&lt;/p&gt;

&lt;p&gt;No large frontend framework is required, keeping the project simple and easy to understand.&lt;/p&gt;

&lt;p&gt;Prompt Design&lt;/p&gt;

&lt;p&gt;Instead of simply asking the model:&lt;/p&gt;

&lt;p&gt;Write a song about summer.&lt;/p&gt;

&lt;p&gt;the application provides structured information:&lt;/p&gt;

&lt;p&gt;Song/topic: Summer Love&lt;br&gt;
Genre: Pop&lt;br&gt;
Mood: Happy&lt;br&gt;
Language: English&lt;br&gt;
Number of verses: 3&lt;/p&gt;

&lt;p&gt;The model is instructed to create completely original lyrics and organize them into a recognizable song structure.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;[Verse 1]&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;[Pre-Chorus]&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;[Chorus]&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;[Verse 2]&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;[Bridge]&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;[Final Chorus]&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;Local AI&lt;/p&gt;

&lt;p&gt;One of the key parts of the project is that the AI inference happens locally.&lt;/p&gt;

&lt;p&gt;After installing Ollama and the model:&lt;/p&gt;

&lt;p&gt;ollama pull qwen2.5-coder:3b&lt;/p&gt;

&lt;p&gt;the application can communicate with the local Ollama API.&lt;/p&gt;

&lt;p&gt;This means the basic application does not require an OpenAI, Anthropic, Gemini, or other paid cloud AI API.&lt;/p&gt;

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

&lt;p&gt;Open innovation made this project possible because I could build around an openly available model and run inference locally.&lt;/p&gt;

&lt;p&gt;A closed AI API would certainly make the implementation possible, but local open-weight inference gives the project some important advantages.&lt;/p&gt;

&lt;p&gt;🔒 More control&lt;/p&gt;

&lt;p&gt;The user controls where the model runs and how the application communicates with it.&lt;/p&gt;

&lt;p&gt;💻 Local-first development&lt;/p&gt;

&lt;p&gt;The project can be developed and tested without requiring a cloud AI account or API key.&lt;/p&gt;

&lt;p&gt;💰 Lower barrier to experimentation&lt;/p&gt;

&lt;p&gt;Anyone with suitable hardware can experiment with the application without paying for every generated song.&lt;/p&gt;

&lt;p&gt;🧑‍💻 Learning and customization&lt;/p&gt;

&lt;p&gt;Because the application controls the prompt, backend, frontend, and model connection, developers can modify the entire pipeline.&lt;/p&gt;

&lt;p&gt;They can experiment with:&lt;/p&gt;

&lt;p&gt;Prompt engineering&lt;/p&gt;

&lt;p&gt;Different models&lt;/p&gt;

&lt;p&gt;Temperature settings&lt;/p&gt;

&lt;p&gt;Song structures&lt;/p&gt;

&lt;p&gt;Languages&lt;/p&gt;

&lt;p&gt;Genres&lt;/p&gt;

&lt;p&gt;UI features&lt;/p&gt;

&lt;p&gt;Local AI workflows&lt;/p&gt;

&lt;p&gt;🌍 Open innovation encourages experimentation&lt;/p&gt;

&lt;p&gt;The most interesting part for me is that the AI is not treated as a black box.&lt;/p&gt;

&lt;p&gt;The project connects an open model, local inference, a Python backend, and a web interface into one small application.&lt;/p&gt;

&lt;p&gt;That makes it easier to learn how AI applications actually work from end to end.&lt;/p&gt;

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

&lt;p&gt;I did not use DevRelay for this project.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;p&gt;The project is primarily entering the categories related to:&lt;/p&gt;

&lt;p&gt;🤖 Open-source AI / open-weight models&lt;/p&gt;

&lt;p&gt;🖥️ Local AI / local inference&lt;/p&gt;

&lt;p&gt;🧑‍💻 Developer tools and AI applications&lt;/p&gt;

&lt;p&gt;Project Stack&lt;br&gt;
AI Model       → Qwen2.5-Coder 3B&lt;br&gt;
Inference      → Ollama&lt;br&gt;
Backend        → Python + FastAPI&lt;br&gt;
Frontend       → HTML + CSS + JavaScript&lt;br&gt;
API            → REST / JSON&lt;br&gt;
Runtime        → Local machine&lt;/p&gt;

&lt;p&gt;Running the Project Locally&lt;/p&gt;

&lt;p&gt;Clone the repository:&lt;/p&gt;

&lt;p&gt;git clone &lt;a href="https://github.com/Bharatefb/AI-Lyrics-Generator.git" rel="noopener noreferrer"&gt;https://github.com/Bharatefb/AI-Lyrics-Generator.git&lt;/a&gt;&lt;br&gt;
cd AI-Lyrics-Generator&lt;/p&gt;

&lt;p&gt;Install and run the Qwen model:&lt;/p&gt;

&lt;p&gt;ollama pull qwen2.5-coder:3b&lt;/p&gt;

&lt;p&gt;Set up the backend:&lt;/p&gt;

&lt;p&gt;cd backend&lt;/p&gt;

&lt;p&gt;python -m venv venv&lt;/p&gt;

&lt;p&gt;On Windows:&lt;/p&gt;

&lt;p&gt;venv\Scripts\activate&lt;/p&gt;

&lt;p&gt;On macOS/Linux:&lt;/p&gt;

&lt;p&gt;source venv/bin/activate&lt;/p&gt;

&lt;p&gt;Install dependencies:&lt;/p&gt;

&lt;p&gt;pip install -r requirements.txt&lt;/p&gt;

&lt;p&gt;Start FastAPI:&lt;/p&gt;

&lt;p&gt;uvicorn main:app --reload --port 8000&lt;/p&gt;

&lt;p&gt;Then open the frontend using a local development server such as VS Code Live Server.&lt;/p&gt;

&lt;p&gt;What's Next?&lt;/p&gt;

&lt;p&gt;I plan to continue improving the project with features such as:&lt;/p&gt;

&lt;p&gt;🔄 Generate Again&lt;/p&gt;

&lt;p&gt;📋 Copy Lyrics&lt;/p&gt;

&lt;p&gt;💾 Download Lyrics&lt;/p&gt;

&lt;p&gt;📝 Edit generated lyrics&lt;/p&gt;

&lt;p&gt;📚 Song history&lt;/p&gt;

&lt;p&gt;🌍 Better multilingual support&lt;/p&gt;

&lt;p&gt;🎤 More vocal and writing controls&lt;/p&gt;

&lt;p&gt;🎶 Custom verse/chorus structures&lt;/p&gt;

&lt;p&gt;🎨 Improved UI&lt;/p&gt;

&lt;p&gt;🌙 Dark/light mode&lt;/p&gt;

&lt;p&gt;⚡ Streaming generation&lt;/p&gt;

&lt;p&gt;The long-term goal is to make AI-assisted songwriting a simple local-first experience that anyone can experiment with.&lt;/p&gt;

&lt;p&gt;Built with ❤️, open-source AI, and a little musical inspiration.&lt;/p&gt;

&lt;p&gt;Thanks for checking out AI-Lyrics-Generator! 🎵&lt;/p&gt;

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