A command-line RSS aggregator built with TypeScript, Postgres, and Drizzle ORM. This tool allows multiple users to subscribe to RSS feeds and browse posts directly in the terminal.
Before running this project, ensure you have the following installed:
- Node.js (v18 or higher)
- PostgreSQL (running locally or via Docker)
- npm
-
Clone the repository:
git clone [https://github.com/YOUR_USERNAME/gator.git](https://github.com/YOUR_USERNAME/gator.git) cd gator -
Install dependencies:
npm install
-
Database Setup: Make sure your Postgres database is running. Update the connection string in your code or
.envfile (if applicable) to match your local setup.Run the migrations to create the tables:
npx drizzle-kit migrate
The CLI uses a configuration file stored in your home directory (.gatorconfig.json) to track the currently logged-in user.
You do not need to create this manually; the register command handles it for you.
Here are the available commands:
- Register a new user:
npm run start register <username>
- Login:
npm run start login <username>
- List all users:
npm run start users
- Add a new RSS feed:
npm run start addfeed <feed_name> <url>
- List feeds you follow:
npm run start following
- Follow an existing feed:
npm run start follow <url>
- Unfollow a feed:
npm run start unfollow <url>
- Start the aggregator (Long-running process):
<time_between_reqs>: e.g.,10s,1m,1h
npm run start agg 1m
- Browse saved posts:
- Optional limit (default: 2)
npm run start browse 5
- Wipe the database:
npm run start reset