Skip to main content

Overview

Gaslighter is a unique Reddit content browser that displays posts from a target subreddit while replacing the media with content from source subreddits. This creates an entertaining mismatch between post titles and the actual media shown.

How It Works

1

Configure Subreddits

Choose a target subreddit whose titles you want to see, and one or more source subreddits whose media will be displayed.
2

Set Viewing Options

Adjust view mode (large/compact), sort order (hot/new/top), and media filters to customize your browsing experience.
3

Browse Content

Scroll through posts where titles from the target subreddit are paired with media from your source subreddits.
4

Optional: Enable Autoscroll

Turn on autoscroll for hands-free browsing with adjustable speed controls.

Configuration Options

Subreddit Settings

The subreddit whose post titles will be displayed. Enter the subreddit name without the “r/” prefix.Examples:
  • pics
  • funny
  • aww
One or more subreddits whose media will replace the target subreddit’s media. Separate multiple subreddits with commas.Examples:
  • earthporn, spaceporn
  • art, itookapicture
  • natureisfuckinglit
The app automatically normalizes subreddit names by removing “r/” prefixes and converting to lowercase.
Replace occurrences of the target subreddit name in post titles with custom text. This adds an extra layer of the “gaslighting” effect.Example:
  • Target: cats
  • Replacement: dogs
  • Result: “My cat loves treats” becomes “My dog loves treats”

View Settings

Choose how posts are displayed:
  • Large: Full-size media with prominent titles
  • Compact: Smaller thumbnails with condensed layout for faster browsing
Control the order of posts from the target subreddit:
  • Hot: Currently trending posts
  • New: Most recent posts
  • Top: Highest-rated posts within a time period
When using “Top” sorting, select the time range:
  • Hour: Top posts from the last hour
  • Day: Top posts from today
  • Week: Top posts from this week
  • Month: Top posts from this month
  • Year: Top posts from this year
  • All Time: All-time top posts

Media Filters

Control which types of media appear in your feed:
  • Images: Static image posts (JPEG, PNG, WebP)
  • Videos: Video content (MP4, WebM)
  • GIFs: Animated GIF content
At least one media type must be enabled. The app will automatically re-enable images if all types are disabled.

Autoscroll Feature

Gaslighter includes an autoscroll feature for hands-free browsing:

Enabling Autoscroll

  1. Toggle the autoscroll switch to ON
  2. Adjust the speed slider (1-20)
  3. Use the pause button to temporarily stop scrolling
  4. Autoscroll automatically pauses when you open media in fullscreen

Speed Presets

  • Slow (10): Leisurely browsing pace
  • Medium (15): Moderate scrolling speed
  • Fast (20): Quick browsing
Autoscroll will automatically pause when you interact with posts or open media modals. Resume it manually when ready to continue.

Practical Examples

Example 1: News Headlines with Cat Pictures

Target: worldnews
Source: cats, aww
Replacement Name: (leave empty)
Result: Serious news headlines paired with adorable cat photos.

Example 2: Funny Titles with Nature Photos

Target: funny
Source: earthporn, natureporn
Replacement Name: (leave empty)
Result: Humorous titles with stunning landscape photography.

Example 3: Relationship Advice with Food

Target: relationship_advice
Source: food, foodporn
Replacement Name: partner → sandwich
Result: Relationship posts where “partner” is replaced with “sandwich” and paired with food images.

How Media Selection Works

1

Fetch Target Posts

Gaslighter retrieves up to 100 posts from your target subreddit based on your sort settings.
2

Load Source Media

Media is fetched from your source subreddits and pooled together.
3

Random Pairing

Each target post is randomly paired with media from the source pool, creating unexpected combinations.
4

Infinite Scrolling

As you scroll, more posts are automatically loaded and paired with fresh source media.

Storage and Persistence

Your Gaslighter settings are automatically saved to browser localStorage:
  • Target and source subreddits
  • View mode and sort preferences
  • Media filter selections
  • Autoscroll state and speed
  • Replacement name configuration
Settings persist across sessions, so your preferred configuration is remembered when you return.

Tips and Best Practices

The most entertaining results come from pairing subreddits with very different themes. Try news with memes, serious topics with cute animals, or technical content with art.
Adding 2-3 source subreddits provides more variety in the media pool and prevents repetition.
The replacement name feature can create hilarious effects. Try replacing technical terms with casual words, or serious topics with silly alternatives.
Use compact view on mobile for faster loading and easier scrolling. Large view works great on desktop for enjoying media in full detail.

Technical Details

API Integration

  • Uses the /api/fetch-reddit endpoint which filters for media URLs
  • Fetches up to 100 posts per request for optimal performance
  • Implements rate limiting with exponential backoff
  • Supports jittered one-time retries to reduce transient failures

Deduplication

  • Tracks shown target post IDs to prevent duplicates
  • Normalizes media URLs to avoid showing the same content twice
  • Maintains a queue system for smooth infinite scrolling

Performance Optimizations

  • Lazy loading of media as you scroll
  • Efficient state management with React hooks
  • Debounced settings updates to prevent excessive re-renders
  • IntersectionObserver for efficient load-more triggering

Troubleshooting

  • Verify subreddit names are spelled correctly
  • Check that at least one media filter is enabled
  • Try a different target or source subreddit
  • Ensure you have a stable internet connection
  • Check your media filter settings
  • Some subreddits may have limited media content
  • Try adding additional source subreddits
  • Clear browser cache and reload the page
  • Ensure autoscroll is toggled ON
  • Check that you’re not in a paused state
  • Try adjusting the speed to a higher value
  • Close any open media modals
  • Check browser localStorage is enabled
  • Verify you’re not in private/incognito mode
  • Try clearing site data and reconfiguring

Build docs developers (and LLMs) love