Skip to content

Repository files navigation

Node.js CI

SiftVault

RSS aggregator (MVP). TypeScript monorepo.

Stack

  • Frontend: TanStack Start, TanStack Query, Zustand, Tailwind CSS, Shadcn/ui
  • Backend: Node.js, Fastify, Mongoose
  • Database: MongoDB

Structure

SiftVault/
├── client/   # TanStack Start frontend
└── server/   # Fastify + Mongoose API

Managed with npm workspaces. Tasks are run through the root Makefile.

Getting started

Requires Node >=24 (see .nvmrc) and a running MongoDB instance.

cp server/.env.example server/.env   # fill in MONGODB_URI, JWT secrets, etc.

make install      # install all workspace dependencies
make dev-client   # start the frontend at http://localhost:3000
make dev-server   # start the backend at http://localhost:3001
make dev          # start both frontend and backend
make build        # build both frontend and backend
make test         # run tests across all workspaces
make lint         # run ESLint across all workspaces

API docs (Swagger UI) are served at http://localhost:3001/docs in development.

Linting

ESLint is configured for both workspaces on the Airbnb style guide (eslint-config-airbnb / eslint-config-airbnb-typescript), with semicolons enforced. Run make lint to check both, or npm run lint -w @siftvault/client / -w @siftvault/server individually.

A Husky pre-commit hook runs npm test and npm run lint to block commits that don't pass tests or linting.

Run make help to list available commands.

MVP scope

  • Auth: user registration & login (JWT access/refresh tokens in cookies)
  • Subscriptions: add/remove RSS feeds
  • Parsing: fetch feed items (title, link, source, image, sanitized HTML content)
  • Home page: shows latest items from subscribed feeds, with inline "read here" expand
  • Sifted items: save/remove feed items per user, view them on the /sifted page
  • PWA: installable app with manifest, generated icons, and offline support via a service worker
  • Responsive, mobile-friendly UI

Not yet implemented: per-item read-status tracking.

About

SiftVault — RSS aggregator (MVP)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages