Skip to content

A Bluesky Feed Generator that curates SEO content based on community interaction patterns. The algorithm ranks discussions based on likes, reposts, and replies, with a 48-hour content lifespan and recency boost for fresh content.

License

Notifications You must be signed in to change notification settings

jroakes/DailySEOFeed

Repository files navigation

Daily SEO Feed (Bluesky)

A custom feed generator for Bluesky that surfaces high-quality SEO content based on expert engagement. Built with Python using the AT Protocol SDK.

Features

  • Custom algorithm tracking engagement from verified SEO experts
  • Weighted scoring system for likes, reposts, and comments
  • Time-decay factor for content freshness
  • MySQL database for efficient data storage
  • Web interface to view current feed content
  • Configurable engagement thresholds and weights
  • Automatic cleanup of outdated content

Requirements

  • Python 3.9+
  • MySQL Database
  • Bluesky account for feed publication

Setup

  1. Clone the repository

  2. Install dependencies:

pip install -r requirements.txt
  1. Configure environment variables:

    • Copy .env-prod to .env
    • Update the database credentials
    • Set your FEEDGEN_HOSTNAME
  2. Initialize the database:

python -m server --rebuild_database
  1. Publish your feed:
python publish_feed.py
  1. Update your .env with the generated feed URI

Running the Service

There are several ways to run the service based on your needs:

Full Service Mode

Run both the API server and Jetstream processor together:

python -m server

Component Separation

You can run components separately:

API Server Only

Run just the web API and interface:

python -m server --app_only

Jetstream Processor Only

Run just the data processing component:

python -m server --jetstream_only

Development Mode

Run with debug logging enabled:

python -m server --debug

Endpoints

  • /.well-known/did.json - DID document
  • /xrpc/app.bsky.feed.describeFeedGenerator - Feed metadata
  • /xrpc/app.bsky.feed.getFeedSkeleton - Feed content
  • /health - Service health check
  • / - Web interface showing current feed content

Customization

  • Adjust scoring weights in .env
  • Modify user_list.txt to update tracked experts
  • Configure post lifetime and minimum engagement score

License

MIT

About

A Bluesky Feed Generator that curates SEO content based on community interaction patterns. The algorithm ranks discussions based on likes, reposts, and replies, with a 48-hour content lifespan and recency boost for fresh content.

Topics

Resources

License

Stars

Watchers

Forks