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.
- 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.
- Bun
- Google OAuth credentials
Install dependencies:
bun installCreate 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-secretRun database migrations:
bun run dk migrateStart the dev server:
bun run devThe app runs at http://localhost:3000 by default.
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/dependenciesCLI tasks:
bun run cli fetch-rss-feeds
bun run cli cleanup-deleted-articlesRSS 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.