Automated pipeline to fetch AWS Builder articles and post them to Twitter/X.
Follow the bot: @uAWSBuilderFeed
This bot automatically:
- Fetches new articles from AWS Builder every hour
- Formats tweets with title, hashtags, and URL
- Posts one article per hour to Twitter via Make.com → Buffer
- Prevents duplicate posts using SQLite database
Prefect (Scheduler)
↓ Every hour
Fetch Articles → SQLite Queue
↓ Every hour
Post Tweet → Make.com Webhook → Buffer → Twitter
Key Features:
- ✅ LIFO queue ensures articles posted in order
- ✅ Duplicate detection (never posts same article twice)
- ✅ Hashtags from article tags (first 3)
- ✅ Automatic scheduling with Prefect
- ✅ Webhook delivery for instant posting
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtPYTHONPATH=. python -c "from src.database import init_db; init_db()"For automated posting to Twitter:
- Create webhook in Make.com
- Connect to Buffer → Twitter
- Add to
.env:MAKECOM_WEBHOOK_URL=https://hook.us2.make.com/your_webhook MAKECOM_API_KEY=your_api_key
See WEBHOOK_SETUP.md for detailed instructions.
# Fetch articles
PYTHONPATH=. python -c "from src.fetcher import process_articles; print(process_articles())"
# Post one tweet
PYTHONPATH=. python -c "from src.twitter import post_tweet; result = post_tweet(); print(f'Mode: {result[\"mode\"]}')"Terminal 1 - Start Prefect Server:
prefect server startTerminal 2 - Deploy Flows:
source .venv/bin/activate
PYTHONPATH=. python deploy.pyMonitor: Open http://localhost:4200
./scripts/reset_db.sh # Reset database and fetch articles
./scripts/delete_db.sh # Delete database onlybuilderfeed/
├── src/
│ ├── database.py # SQLite operations
│ ├── fetcher.py # AWS Builder API
│ ├── twitter.py # Tweet formatting & webhook
│ └── flows.py # Prefect flows
├── data/
│ ├── builderfeed.db # SQLite database
│ ├── tweets_queue.json # JSON backup
│ └── mock_tweets.txt # Human-readable log
├── scripts/
│ ├── reset_db.sh # Reset database
│ └── delete_db.sh # Delete database
├── deploy.py # Prefect deployment
├── config.py # Configuration
└── dev_log/ # MMDD development log
- Fetch Flow: Every hour (
0 * * * *) - Tweet Flow: Every hour (
0 * * * *)
Article Title
#hashtag1 #hashtag2 #hashtag3
https://builder.aws.com/content/...
Built using MMDD (Micromanaged Driven Development) methodology.
See dev_log/ for complete development history:
- Unit 01: Database setup
- Unit 02: Article fetching
- Unit 03: Tweet formatting
- Unit 04: Prefect orchestration
- Unit 05: Make.com integration
- Python 3.12+
- Prefect 3.x - Workflow orchestration
- SQLite - Article queue and duplicate tracking
- httpx - HTTP client for API calls
- Make.com - Webhook automation
- Buffer - Social media scheduling
- Twitter Bot: @uAWSBuilderFeed
- AWS Builder: https://builder.aws.com
- Make.com: https://make.com
- Buffer: https://buffer.com
- Prefect: https://prefect.io
MIT License - See LICENSE file