Announcer automatically syncs comments on your content to your Monday boards. It lets content marketers create custom Monday workflows to ensure that their team is properly handling every single comment. In my experience, comments can make or break a post, so it's critical to make sure they're tracked and handled.
Announcer currently only supports Reddit links, but integration with other sites like HackerNews and Medium is planned.
See here for installation instructions.
At my previous company, I noticed that we created great content, but lost track of comments after we shared our posts to sites like Reddit, HackerNews, and Medium. Our poor comment management cost us potential users. Sometimes, misconceptions in the comments would confuse other readers; other times, we would miss great opportunities for discussions with the community.
Over time, I learned that comments can be more important than the post itself:
- Negative comments drove people away, while positive comments drove more clickthroughs.
- Discussions in the comments were a great opportunity to build personal connections with the community.
- Many people would only read the discussions in the comments, and wouldn't read the post.
However, even after we decided that responding to comments was a priority, a couple factors made it surprisingly hard to stay on top of comments:
- We shared each post on many different sites and subreddits, so it was easy to miss comment notifications.
- The content author (the technical domain expert) was almost always different than the owner of the social media accounts (the content marketer), so comments would get lost even after the account owner received notifications.
- The content author was busy with other tasks -- they couldn't spend all day waiting for new comments and neglect their other tasks.
Announcer is the tool I wish I had. I was inspired by Monday's powerful workflow and collaboration features, and designed Announcer to cleanly integrate with the existing Monday ecosystem. With Announcer, teams can design personalized comment management systems that let them stay on top of their comments, and get the most out of their posts.
What It Does
Automatically creates items for new comments
The core of Announcer is an integration that watches for comments in your Post Board, and adds them to your Comments Board. Announcer also automatically groups the comments, and notifies the author of new comments.
Visualizes comment status in alternate board views
Monday's Kanban view works out of the box so that you can quickly see what comments still need to be processed. Cleanly integrating with Monday's built-in features was a key design goal of Announcer.
View comments in context
Announcer includes a threaded comments view that lets you visualize comment threads right from Monday.
Smooth integration with Slack (and other Monday apps)
Announcer works out of the box with integrations like Slack. Leveraging other Monday apps lets you build on top of Announcer to create more powerful and personalized workflows.
How I Built It
I spent the bulk of my time on the comment watcher integration.
It fetches the user's watched posts from Monday, and polls their comments intermittently. It stores subscriber information in a Mongo database, and caches requests to Monday to avoid exceeding rate limits.
The comment thread item view was made with React.
Both services are hosted with Docker Compose. They run behind a LetsEncrypt container that handles TLS, and forwards traffic to the appropriate service.
Challenges I ran into
Designing Announcer to stay within Monday and Reddit's rate limits took multiple iterations. I wanted to minimize the number of API calls Announcer made, while making sure new comments were quickly synced.
For the Monday API, I wrote a read-through cache to keep track of what comments were already synced to Monday, and what posts each user was watching. This was possible because Announcer is the only writer that creates new items in the Comments Board.
For the Reddit API, I limited concurrency by using a work queue so that even if lots of posts had to be processed, Announcer would only make a couple requests at a time.
Accomplishments that I'm proud of
I'm proud of the syncing architecture described above. I expect it to scale up easily since the in-memory work queue can be converted to a distributed work queue like Redis. And the in-memory Monday cache can remain the same as long as the work queue is sharded by Monday users.
I'm also proud of the Announcer's UX in Monday. I took care to make sure that native Monday integrations like Slack and the Kanban view worked smoothly. I also decided to make it so users added new posts as items in the Posts Board, rather than manually setting up an integration for each post. This was more work, but it makes it easy for users to add extra information to each post.
What I learned
This was my first time working with GraphQL. It was cool seeing the power of the query language.
I also learned a lot about modularization from seeing how Monday breaks up board views, item views, integrations, workspace templates, etc.
What's next for Announcer
While Announcer is already usable, I want to turn it into an end-to-end tool for content marketers. Tools like Hootsuite are helpful for scheduling posts, but I think there's a ton of untapped opportunities for improving the content marketing workflow.
I'd like to add:
- Support for other sites, like HackerNews, Medium, and Stackoverflow.
- Automations for automatically reminding authors of urgent comments, and escalating the comments to other members of the team if they're unavailable.
- Automatically watching posts that are shared by people outside your organization. This could be configured based on URL, or by keyword (e.g. when someone mentions your product).
- Support for scheduling posts so that users can manage their full content pipeline right from Monday.