<?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>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>
