Oh. Funny. I was going to link to that. I’m pretty sure that it’s still working. (!)
I’d start with a clean skeleton and add stuff to it as you’re sure you need it. I wrote that a long time ago and Discourse has changed and I wasn’t very good at writing plugins then. ![]()
I’d also look for examples that use Discourse.cache so that you’re not needlessly pulling the same jobs from the API over and over again.