"Take the Well-Maintained Road Over Risky Shortcuts": Ditching Web Scraping for an AI App Powered by Official RSS & Gemini (Lessons from Logistics) A Japanese truck driver self-studying Python built 'Puoppo,' an AI trend analysis app that uses official RSS feeds instead of web scraping to avoid IP blocks and maintenance costs. The system, powered by Google's Gemini 2.5 Flash model, aggregates up to 100 articles per query and presents them in a single scrollable pane for efficient morning news consumption. GitHub Repository: tosane932 / puoppo app https://github.com/tosane932/puoppo app An active truck driver in Japan self-studying Python, leveraging logistics domain knowledge to transition into a Web Engineer. In this article, I share the design philosophy and technical choices behind "Puoppo," an automated AI trend analysis system I built during my 42nd hour of studying Python with no IT background or prior development experience . Rather than a gimmick chasing short-lived trends, the system is built on a timeless design philosophy—like a reliable pair of jeans that never wears out—focused on "reliably controlling domain data from the field." In daily technical trend and news gathering, visiting multiple sources and digesting noisy, long articles became a major bottleneck. I needed a mechanism to consume high-density primary information within a limited timeframe each morning e.g., the few minutes it takes to cook a Japanese omelet . Simply enter topics you want to know about e.g., politics, inflation, latest music news into a text box, and the AI actively collects and structures up to 100 related articles. You can digest everything in a single screen pane just by scrolling. gemini-2.5-flash The actual running environment and UI design are available in the demo video below YouTube: 7m 49s . Click the image to watch on YouTube Initial designs tested direct web scraping from major news sites, but IP blocking and maintenance costs due to layout changes presented major hurdles. Instead of trying to technically "bypass" blocks, I pivoted to leveraging official RSS feeds provided by publisher media. This decision stems from practical logistics experience: "Taking a well-maintained, reliable road yields better overall efficiency speed than forcing a shortcut." This allowed the immediate setup of a safe and dependable data pipeline. The core value of this system is instantaneous data flow: aggregating data from dynamic keywords, passing it to an LLM, and returning results. Since authentication and ORM were unnecessary for this phase, I chose Flask, a micro-framework that enables rapid routing setup. By stripping away over-engineering, I rolled out the prototype in just one day ~10 hours . Injecting context from up to 100 article texts in a single request required an LLM model with a vast token capacity, making Gemini an obvious choice. Furthermore, balancing rapid response times 10–15 seconds with excellent cost-effectiveness for personal projects led to selecting gemini-2.5-flash , a lightweight model selected as of May 2026. Rather than building component architectures using modern JavaScript frameworks React/Vue , I implemented it with plain HTML/CSS. By eliminating resource expenditure on complex UI layouts, I prioritized pure utility: "allowing users to absorb accurate information smoothly into their minds without stopping their scroll." Steps to run locally in a virtual environment Linux / macOS : 1. Clone the repository git clone https://github.com/tosane932/puoppo app.git https://github.com/tosane932/puoppo app.git cd puoppo app 2. Create and activate virtual environment python3 -m venv .venv source .venv/bin/activate 3. Install required packages pip install -r requirements.txt 4. Set API Key export GEMINI API KEY="YOUR API KEY" 5. Run the app python app.py Steps to run locally on Windows: 1. Clone the repository git clone https://github.com/tosane932/puoppo app.git https://github.com/tosane932/puoppo app.git cd puoppo app 2. Create and activate virtual environment python -m venv .venv For PowerShell .venv\Scripts\Activate.ps1 For Command Prompt .venv\Scripts\activate.bat 3. Install required packages pip install -r requirements.txt 4. Set API Key For PowerShell $env:GEMINI API KEY="YOUR API KEY" For Command Prompt set GEMINI API KEY=YOUR API KEY 5. Run the app python app.py While current capabilities satisfy initial requirements and deliver reliable results, I plan a two-stage refactoring process by the end of 2026 to elevate the system into production-ready quality: I will organize and decouple the logic currently centralized in Flask RSS parsing, LLM control, view control , transitioning toward a decoupled layered architecture inspired by Clean Architecture. To adapt to changes in external APIs Gemini or RSS feed formats, I will introduce unit tests and mock tests using Pytest, creating a robust codebase oriented around Continuous Integration CI . Through the development of "Puoppo," I reconfirmed the power of minimalism: "simply combining only the necessary components to solve the specific problem in front of you," without getting swayed by over-engineering or trending tech stacks. Reducing wasted time spent searching for news, and using created resources to decide what to build next—this system reminds me of the true joy of engineering. GitHub Repository: tosane932 / puoppo app https://github.com/tosane932/puoppo app