Skip to content
Open Source·

Reddit Rollme

A distraction-free Reddit media viewer with infinite scroll, multi-subreddit feeds, DASH video playback, and cinematic mode.

ReactTypeScriptViteNestJSMongoDBPrismadash.jspnpm Workspaces

Reddit Rollme

Reddit's video player is bad. The UI is cluttered. Rollme strips all of that away — infinite vertical scroll with native video+audio playback, multi-subreddit feeds, and a clean interface that gets out of your way.

Features

FeatureWhat it does
Infinite Vertical ScrollSmooth scroll-snapping for seamless browsing
Multi-Subreddit FeedCombine multiple subreddits into one unified feed
DASH Video + AudioNative playback via dash.js, including sound
Sorting & FiltersHot, New, Top (Day/Week/Month/Year/All), Rising
Content FilteringShow all, videos only, or photos/GIFs only
Visual ThemesDefault, Grayscale, Vintage (Sepia)
Cinematic ModeLetterboxing for a focused viewing experience
Ambiance ModeBackground glow matching the dominant color of the current image
Video Quality SelectorSwitch playback quality on the fly
Keyboard ShortcutsJ/K (next/prev), L (upvote), M (mute), F (focus)
Auto-Scroll / SlideshowHands-free browsing with configurable speed
Persistent SettingsSubreddits, filters, and preferences saved in localStorage
Media ProxyBackend proxy to prevent 403 errors on Reddit media

Architecture

Browser → React + Vite Frontend → NestJS Backend → Reddit API
                                        ↓
                                     MongoDB
                                        ↓
                              Media proxy → Client
  • Backend: NestJS (Node.js)
  • Frontend: React + Vite (TypeScript)
  • Database: MongoDB via Prisma
  • Monorepo: pnpm Workspaces
  • Video: dash.js for adaptive streaming

Running locally

git clone https://github.com/higgn/reddit-rollme.git
cd reddit-rollme
pnpm install
cp apps/backend/.env.example apps/backend/.env
# Add your MongoDB URL and Reddit user agent
pnpm --filter backend exec prisma db push
pnpm run dev

App runs at http://localhost:5173.