Gator – RSS Feed Aggregator CLI
Gator is a command-line RSS feed aggregator written in Go. It lets you register users, add RSS feeds, follow/unfollow them, run a background scraper, and browse collected posts — all backed by PostgreSQL.
Requirements
You must have these installed:
Go 1.22+
PostgreSQL 14+
Verify:
go version psql --version
Installation
Go programs are statically compiled binaries. Once installed, you can run gator without Go installed.
Install directly from GitHub: go install github.com/jsbaartz/gator@latest
After install:
gator
Database Setup
Create a database:
sudo -u postgres psql CREATE DATABASE gator;
Create an app user:
CREATE USER gator WITH PASSWORD 'gatorpass'; GRANT ALL PRIVILEGES ON DATABASE gator TO gator;
Exit psql:
\q
Config File
Gator uses a simple config file to store your database connection and current user.
Create:
~/.gatorconfig.json
With:
{ "db_url": "postgres://gator:gatorpass@localhost:5432/gator?sslmode=disable", "current_user_name": "" }
Running Migrations
From the project root:
cd sql/schema goose postgres "postgres://gator:gatorpass@localhost:5432/gator?sslmode=disable" up
Usage Register a user gator register lane
Login gator login lane
Add feeds gator addfeed "Hacker News" "https://news.ycombinator.com/rss" gator addfeed "Boot.dev Blog" "https://blog.boot.dev/index.xml"
Follow / Unfollow gator follow https://news.ycombinator.com/rss gator unfollow https://news.ycombinator.com/rss
See followed feeds gator following
Run background scraper gator agg 30s
(Leave running in another terminal)
Browse collected posts gator browse gator browse 10
Build Locally git clone https://github.com/jsbaartz/gator cd gator go build ./gator