Simple RSS feed aggregator CLI app written in Go. Part of Boot.Dev coursework.
Requires Go 1.25.5+ Requires Postgres version 15+ Built and tested for WSL
go install github.com/dylansbyrd/gator@latest
Gator configuration is specified in a .gatorconfig.json file stored in the home directory. The following fields are
supported:
db_url- the url for the Postgres database used to store information.- (Optional)
current_user_name- set by Gator when "logging in", this is the username for the current user.
Gator is driven by CLI commands. Except for the agg command, all commands execute immediately to manage and browse RSS
feed entries. agg is used as a long-running process to fetch posts from RSS feeds at a regular cadence. The general idea
is there's a gator agg process running constantly to fetch post data while separate gator commands are fired to manage
the data.
gator register <username>- Creates a new user withusernamegator login <username>- Switches the current user tousernamegator users- Lists all registered usersgator addfeed <feed_name> <feed_url>- Fetches the RSS feed located atfeed_urland stores it asfeed_name. The current user automatically follows the added feedgator feeds- List all added feedsgator follow <feed_url>- Causes the current user to follow the specified feed url if it is addedgator unfollow <feed_url>- Causes the current user to stop following the specified feed urlgator following- Lists all feeds followed by the current usergator browse <post_limit=2>- Lists up topost_limitRSS feed entries order by most recentgator agg <time_between_requests- Fetches all available posts from the oldest updated feed everytime_between_requests.time_between_requestsis specified as a duration string, e.g.1s,1m,1hetc. Please try not to spam requests and DOS anyone's servers.gator reset- Clears all information (i.e. users, feeds, and posts) from the database