ᕕ( ᐛ )ᕗ Herman's blog

From 5 hours to 15 minutes per week

At Bear I have a manual review process for each blog that is created on the platform. As anyone who has created a free, B2C, public content platform will know, spam is a big issue.

Even though I have systems in place to make it difficult to open spam accounts, about 20% of blogs opened on the platform are still a combination of different forms of backlink spam (SEO boosts, prostitution websites, online gambling, etc). Due to this every new blog is hidden from search engines and not linked in the discovery feed until it has been reviewed. This is important as it would be unfortunate if Google or one of the other search providers blacklisted https://bearblog.dev.

My old process required me to log into my admin panel, open each new blog and select the approved or blocked tags manually. This took about 35 minutes to an hour a day, every day.

This morning I was thinking about getting an intern to review each post and how I could make it incredibly easy for them. This sparked an idea and I built out a review pipeline to accomplish this. It took me 2 hours to complete this pipeline.

Here's how it works:

I go to a url I've set up (assuming I'm logged in as an admin) and it automatically starts feeding me unreviewed blogs with all of the user content displayed on one big page. This is homepage content, url, posts and post content, email, etc.

I can tell at a glance whether it's spam or real content by a few things other than just spammy content. They generally don't bother to remove the "new" from their subdomain, nor do they have a decent looking email address. I then click Approve or Block and it immediately feeds me the next blog. I keep doing this until there are no more blogs to review.

This entire process takes about 5 minutes every 2 days and I don't even need to consider getting an intern to do it. I can do it on my phone while sitting in an Uber or while waiting for a coffee.

I had previously played around with auto detection and flagging of malicious blogs, but that caused so much hassle and I didn't catch everything (and sometimes accidentally blocked actual user blogs). It ended up with me reviewing everything by hand again.

I'm pretty happy with this morning's work. I'm going to reward myself with another coffee. ☕️


- 62 toasts