Port u/RemindMeBot to Devvit with one trigger, one scheduler, zero servers. We are NOT rewriting Watchful1's 7-year PRAW + sqlalchemy stack. We are shipping the thinnest credible port that survives Data API deprecation — and nothing else.
Each day = one shippable artifact. No carry-over. No rewrites.
devvit init, onCommentSubmit hook, regex match !RemindMe <duration>.
chrono-node parses duration → Scheduler.runJob() at absolute timestamp.
Job fires → reply-comment with mention. Redis dedupe by comment-id + latency counter.
Install on a ≥500 WAU sub, capture before/after latency vs legacy PRAW, record 90s demo.
// The whole port. One trigger. One scheduler. That's it. import { Devvit } from '@devvit/public-api'; import * as chrono from 'chrono-node'; Devvit.addTrigger({ event: 'CommentSubmit', onEvent: async (e, ctx) => { const m = e.comment.body.match(/!RemindMe\s+(.+)/i); if (!m) return; const when = chrono.parseDate(m[1]); if (!when) return; await ctx.scheduler.runJob({ name: 'remind', runAt: when, data: { commentId: e.comment.id, author: e.author.name } }); } }); Devvit.addSchedulerJob({ name: 'remind', onRun: async (job, ctx) => { await ctx.reddit.submitComment({ id: job.data.commentId, text: `u/${job.data.author} ⏰ here's your reminder.` }); } }); export default Devvit;
Every "nice-to-have" Watchful1's PRAW bot supports — deferred to v1.1. Speed wins.
Watchful1's 1.5M reminders survive Data API deprecation with the smallest diff possible.
P03 · The Speed-Obsessed · Reddit Mod Tools Migration Hackathon · $10K Best Ported Data API App