DEV Community

Apoorv Darshan
Apoorv Darshan

Posted on

A scheduler calendar that's just a view over a JSON file

Crossposter has a scheduling calendar at /scheduled, and I want to show how little machinery sits behind it.

What you get in the UI:

  • A month calendar view by default.
  • Click a date to review every post scheduled for that day.
  • Edit a queued post's timing.
  • Discard queued or failed posts.
  • Review each post's target channels, media, and last publish error.

What's behind it: that calendar is a rendering of scheduled entries stored in poster.config.local.json. There's no jobs table, no scheduler service, no cron daemon. Editing a time rewrites the entry. Discarding deletes it. The runtime side is the ~30-second tick that checks for due posts while the server runs.

Failed posts are first-class, which I added deliberately: if a publish errors (a platform challenge, a rate limit, a broken unofficial integration), the post doesn't vanish. It stays visible with its last error so you can fix and retry, rather than wondering whether it ever went out. When a scheduled post does publish, it moves to local publish history and leaves the queue.

It's a good reminder that a useful scheduler UI doesn't require a heavyweight backend when the product is single-user and local.

Open source, MIT.

https://crossposter.apoorvdarshan.com/

Top comments (0)