Gator - RSS Feed Aggregator

< Back to Projects

Command-Line RSS Feed Aggregator Written in Go

Gator is a powerful command-line RSS feed aggregator that allows users to manage and browse RSS feeds from the terminal. Built with Go and PostgreSQL, it supports multiple users, feed following, and automatic content aggregation.

GitHub Repository

View the source code: github.com/aidenament/Gator

Overview

Gator brings RSS feed management to the command line with a focus on simplicity and efficiency. It provides a complete ecosystem for discovering, following, and reading RSS content without leaving your terminal. The application leverages Go's concurrency features for efficient feed fetching and PostgreSQL for reliable data persistence.

Key Features

Technical Architecture

Database Schema

The application uses a well-structured relational database design:

Core Components

Usage Examples

User Management

Register a new user
gator register alice
Login as existing user
gator login bob
List all users
gator users

Feed Management

Add a new RSS feed
*gator addfeed "Tech News" https://example.com/rss
Follow an existing feed
gator follow https://blog.example.com/feed
List feeds you're following
gator following
Unfollow a feed
gator unfollow https://example.com/rss

Content Aggregation

Start aggregator with 1-minute interval
gator agg 1m
Browse recent posts (default: 2 posts)
gator browse
Browse more posts
gator browse 10

Advanced Features

Authentication Flow

  1. User runs register or login command
  2. System validates user exists (login) or creates user (register)
  3. Configuration file is updated with current user
  4. Subsequent commands requiring authentication check current user from config

Feed Aggregation Flow

agg command starts ticker with specified duration
On each tick:

Development Highlights

Technologies Used

Installation

Install directly using Go
go install github.com/aidenament/gator@latest
Set up configuration
echo '{"db_url": "postgres://user:pass@localhost/gator?sslmode=disable"}' > ~/.gatorconfig.json