💡 From Scattered Scripts to Structured Systems
For the past few months, I’ve been building a suite of internal AI tools — mini utilities to help me generate content ideas, track trends, and push everything into Notion where I manage my entire content and creator system.
But here’s the thing:
These tools lived as Python scripts
I had to run them manually via CLI
Each one required
.env
configs, log checks, and copy-pasting output
It worked... but it wasn't scalable. And definitely not smooth.
So I decided to take a step forward and build a web-based control panel for myself — something I could run locally, click buttons, and get instant feedback on what’s working, what’s syncing, and what’s getting published.
That’s when Streamlit entered the picture.
🎯 What I Wanted to Build
I called it: BitByBharat AI Toolkit — Internal Radar UI
A single browser-based app that could:
✅ Trigger my custom-built Python tools
✅ Show how many records were processed
✅ Log what was pushed to Notion
✅ Display clickable summaries of results
✅ Help me test, optimize, and expand — fast
And I wanted to build it without getting into full frontend/backend complexity — at least for version 1.
🧰 Tools I Used
Layer | Stack |
---|---|
UI | Streamlit |
Backend Logic | Python scripts (existing) |
Data Store | Notion API (for both tools) |
Logs | Plaintext + JSON in |
Output | CSV export for Quora |
Version Ctrl | GitHub: BitByBharat_Tools Repo |
⚒️ The Two Tools I Started With
1. 🧠 Content Idea Radar
A Python script that:
Pulls trending articles using NewsAPI
Categorizes them into my 4 core content themes
Pushes unique topics to my Notion idea board
Logs duplicates and errors for review
2. ❓ Quora Trend Scraper
A Python tool that:
Uses SerpAPI to search Google for Quora questions based on keywords
Filters questions by visibility and keyword match
Pushes selected questions to a Notion database
Backs up all results in a CSV
These were already working well — but lived in silos. I wanted to unify them under one interface.
🧱 The Folder Structure I Designed
Here’s how I organized everything:
🧠 Why Streamlit Was the Perfect First Choice
Runs in browser, no UI coding needed
Integrates seamlessly with existing Python scripts
Supports buttons, logs, text rendering, and status spinners
Can read from and write to logs/JSON easily
My goal wasn’t to build a full SaaS — it was to create a personal operating system for my creator tools.
And Streamlit delivered that in a weekend.
🧩 How It Works (Behind the Scenes)
✅ 1. Tool Launcher via app.py
The core of the app is a dropdown menu with a “Run” button.
Each tool is defined in tools_config.json
, so I can add new tools just by dropping a folder and updating one file.
✅ 2. Real-Time Run Summary via JSON
Each tool writes a JSON file at the end of its run:
Streamlit reads this and renders:
✅ Total processed
❌ Skipped due to duplicates
🔗 Clickable links for quick review
✅ 3. Logs and Output Files
Each run also generates:
Plaintext logs (
quora_scraper.log
)A CSV output (for Quora)
Notion sync summaries (
notion_summary.json
)
All visible, all organized.
⚔️ The Challenges I Faced
🟥 1. .env
confusion between tools
I initially had separate .env
files in each folder. But Streamlit ran from root and loaded only one — leading to API key errors.
Fix: Moved everything to a single root .env
🟥 2. Notion duplicate detection
Notion has no native deduplication. I had to query each title before inserting.
Fix: Added a question_exists_in_notion()
and article_exists_in_notion()
check before syncing.
🟥 3. API Rate Limits
NewsAPI and SerpAPI both limit requests per day/hour. When testing rapidly, I hit limits and got blocked.
Fix: Added threading + reduced article/question limits during testing.
🟥 4. Streamlit Not Showing Real-Time Info
Initially the UI just showed a spinner with no feedback. I wanted more.
Fix: Each tool now outputs a JSON file with detailed run info, and Streamlit renders it post-run.
📸 What It Looks Like
Here’s what you see in the browser:

Clean, click-and-go productivity — no terminal needed.
🎁 What I Learned
You don’t need a full stack to build something powerful
Streamlit is perfect for internal tooling and MVPs
Logs + JSON + subprocess can scale well for modular tools
Simplicity always wins for local utility scripts
🚀 What’s Next
✅ Add scheduling (daily runs, email summary)
✅ Deploy to Render or Streamlit Cloud for access from any device
❓ Add login (if I ever make this multi-user)
📦 Build a plug-and-play template for other creators
💾 The Code
All source code is available here:
👉 GitHub – BitByBharat/BitByBharat
Feel free to explore it, fork it, or drop me a DM if you’re trying to build something similar.
🧵 Final Thoughts
If you’re sitting on scattered Python scripts, and you want a visual control panel to run them, don’t overthink it.
Use Streamlit. Build it. Ship it.
Then improve it — one button at a time.
I’m BitByBharat, and this is one small step in my digital rebuild journey.
Related Post
Latest Post
Subscribe Us
Subscribe To My Latest Posts & Product Launches