Inspiration

Running a movie community on Reddit means posting discussion threads with the right poster image at exactly the right time, not too early (spoilers), not too late (the conversation has moved on). Our mod team covers a film industry whose releases land in a timezone far from where most of us live. For years, that meant someone setting an alarm at 2am, uploading a movie poster, picking the right flair, and hitting submit. Every. Single. Week.

Reddit's built-in post scheduler supports text and link posts, but not image posts. The workarounds all involved third-party image hosts, which introduced privacy concerns and friction. We needed a native solution, one that lives entirely on Reddit's infrastructure, respects user privacy, and doesn't require mods to leave the platform.

That's what started Image Post Scheduler. The foundational version (v2.0) solved the core problem: upload, schedule, post. It worked, and 165+ communities adopted it in 5 weeks.

v3.0 was built entirely during the hackathon period and represents a ground-up feature expansion: recurring posts with custom intervals, dynamic date tokens, calendar view, post templates, inline queue editing, live post preview, clipboard paste, timezone picker, and server-side verification were all designed, built, and shipped during this submission window.

What it does

Image Post Scheduler is a moderator-only tool that lets you schedule image posts with flair on Reddit - the one post type Reddit's native scheduler doesn't support.

Core scheduling:

  • Upload an image (drag-and-drop, file picker, or clipboard paste) hosted directly on Reddit's CDN
  • Set a title, optional body text (markdown supported), and post flair from the subreddit's live flair list
  • Pick a date, time, and timezone. No more mental UTC math
  • Choose whether the post appears under your username or the app account
  • Queue up to 50 posts across different times

Recurring posts:

  • Preset intervals: hourly, daily, weekly, monthly; matching Reddit's native recurring options
  • Custom intervals: every N hours, days, weeks, or months with perfectly even gaps
  • Recurring posts survive failures

Dynamic date tokens:

  • Use tokens like {{date %B %d, %Y}} in titles and they resolve at post time
  • Combine with recurring posts to fully automate titled discussion threads: For instance, "Weekly Thread - {{date %A, %B %d}}" becomes "Weekly Thread - Monday, June 02" on each firing
  • Timezone-aware: tokens resolve in the post's selected timezone, not UTC

Calendar view:

  • Visual month grid showing all scheduled and recurring posts
  • Click any day to see queued posts with thumbnails, titles, and times
  • Toggle recurring posts on/off to declutter the view

Templates:

  • Save an entire form configuration as a reusable template
  • Templates store title, body, flair, post-as preference, sticky, distinguish, and recurrence settings
  • Load a template, pick your image and time, done

Other features:

  • Edit title or flair of queued posts inline
  • Live Reddit-style post preview as you fill in the form
  • NSFW safety: app account posting automatically disabled on NSFW subreddits, enforced server-side
  • Failed post badges in queue with reasons in history

How we built it

Built entirely on Reddit's Developer Platform (Devvit) using the Devvit Web architecture. Server-side logic paired with a lightweight client WebView.

The server handles scheduling logic, Reddit API interactions, and job management. The client is vanilla JavaScript with no framework dependencies, keeping the UI fast and lightweight. All storage uses Devvit's built-in data layer, and images are uploaded directly to Reddit's CDN - no third-party hosting.

Timezone handling ensures date tokens resolve in the poster's local timezone, not the server's, regardless of when or where the post was scheduled.

Everything runs on Reddit's infrastructure. No external services, no third-party APIs, no data leaving the platform.

Challenges we ran into

Custom recurring intervals: - Standard scheduling tools handle "daily at 9am" well but break down for arbitrary intervals like "every N hours"; gaps appear at day and month boundaries. Getting perfectly even intervals that never drift took significant effort, verified across days of continuous testing.

Timezone-aware date tokens: - A post scheduled for midnight in New Zealand should show the NZ date in its title, even when UTC is still on the previous day. Making dynamic tokens that respect the post's timezone and not just the server's, was deceptively tricky.

Failure resilience:- A single failed post shouldn't break a recurring schedule. Building a system where failures are caught, recorded, and surfaced to the moderator while the schedule continues uninterrupted required careful handling of every edge case.

Accomplishments that we're proud of

  • 165+ communities trust and actively use the foundational version (v2.0) of this app in production - from small hobby subreddits to large communities
  • Zero-drift recurring scheduling verified across continuous multi-day test runs with perfectly even gaps, crossing midnight and date boundaries without a single timing irregularity
  • Entirely on Reddit's infrastructure - no external services, no third-party image hosts, no data leaving the platform. Privacy by architecture, not by policy
  • Solves a real gap - Native image post scheduling is the one post type Reddit doesn't natively support. Started off as a private app idea for my subreddit, this app now fills that gap for 165+ communities and counting.

What we learned

  • Standard scheduling tools aren't designed for arbitrary intervals. As such, building truly even recurring schedules required rethinking the approach from scratch.
  • Timezone handling looks easy on the paper but is deceptively hard. Making scheduled posts and date tokens respect the poster's local timezone, and not just the server's, required more care than expected.
  • Building on a platform (Devvit) means working within its constraints, but also getting authentication, hosting, storage, and distribution for free. Indeed, a worthwhile tradeoff
  • Real-world testing with actual Reddit communities surfaced edge cases that no amount of unit testing would have caught

What's next for this project

  • Exploring support for additional post types as Reddit's API evolves
  • Enhanced analytics giving moderators insight into posting patterns and engagement across scheduled content
  • Continued refinement based on feedback from the 165+ communities using the app

Built With

Share this project:

Updates