Skip to content

Crossoufire/ScienceFeed

Repository files navigation

ScienceFeed

ScienceFeed is a small personal RSS reader for science articles. It lets users sign in with Google, add RSS feeds, define keywords, and keep a simple list of matching articles. It is built with Bun, TanStack Start, React, Drizzle, SQLite, Better Auth, and Tailwind CSS.

What it does

  • Manage RSS feeds.
  • Keep basic settings per user.
  • Filter articles by user keywords.
  • Mark articles as archived or deleted.
  • Run maintenance tasks from a small CLI.

Requirements

  • Bun
  • Google OAuth credentials

Setup

Install dependencies:

bun install

Create a .env file:

VITE_BASE_URL=http://localhost:3000

DATABASE_URL=./instance/site.db

BETTER_AUTH_SECRET=replace-with-a-long-random-string

GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret

Run database migrations:

bun run dk migrate

Start the dev server:

bun run dev

The app runs at http://localhost:3000 by default.

Useful commands

bun run lint      # run oxlint
bun run dev       # start the app locally
bun run build     # build the app and CLI
bun run knip      # check for unused files/dependencies

CLI tasks:

bun run cli fetch-rss-feeds
bun run cli cleanup-deleted-articles

Notes

RSS fetching is handled through the CLI, so run it manually or schedule it with cron/systemd if you want regular updates. Deleted articles are soft-deleted first; the cleanup command removes old deleted entries and orphaned articles.

About

Small personal RSS reader for science articles, with keyword filtering, Google sign-in, and simple article management

Topics

Resources

Stars

Watchers

Forks

Contributors