The Incident That Started Everything
A few years ago, I was doing some freelance social media consulting for a small e-commerce brand. Their marketing coordinator — smart, detail-oriented, genuinely good at her job — spent an afternoon crafting the perfect product launch post. Right hashtag count, good mix of niche and broad tags, timed for peak engagement.
One of the hashtags she picked had been quietly banned by Instagram months earlier. Not flagged, not removed — just silently suppressed. The post went out to 50,000 followers and effectively went nowhere. No reach. No engagement spike. The launch flopped, and it took us three days to figure out why.
That stayed with me. It's such a solvable problem.
What HashtagSafety Actually Does
I built HashtagSafety to catch exactly that kind of mistake before it costs you. Paste in a hashtag, and it checks for:
- Banned or restricted status — tags that platforms have flagged and suppressed
- Inappropriate associations — tags that look harmless but are commonly used alongside problematic content
- Risk scoring — a simple indicator of whether a tag is likely to hurt your reach
The target user isn't a developer. It's a social media manager who has fifteen minutes before a post goes live and needs a quick gut-check.
The Technical Side
The stack is deliberately boring in a good way:
- Frontend: Vanilla JS, no framework. The UI is simple enough that React would've been overkill and would've added load time I didn't want.
- Backend: Node.js with a lightweight Express server
- Data layer: A combination of a maintained banned hashtag dataset (community-sourced, periodically updated) and some pattern-matching logic I wrote for detecting contextual risk
- Hosting: Deployed on a simple VPS — nothing fancy
The hardest part wasn't the tech. It was the data.
The Real Challenge: Hashtag Data Is a Moving Target
Platforms don't publish lists of banned hashtags. There's no API for it. Instagram, TikTok, and Twitter/X have never made this information officially accessible — probably intentionally.
What exists is a patchwork of community-maintained lists, anecdotal reports from creators, and periodic crowdsourced audits. I spent a significant amount of time just evaluating data sources, cross-referencing lists, and building a pipeline to keep things reasonably current.
The pattern-matching layer was its own challenge. Some hashtags aren't banned outright but consistently appear alongside content that gets suppressed. Detecting that association without manual curation of every tag is genuinely tricky. I ended up building a scoring heuristic that weighs several signals rather than trying to make a binary safe/unsafe call.
False positives are a real concern here. Telling someone a perfectly fine hashtag is dangerous would be worse than not checking at all. So I err toward flagging uncertainty rather than making confident wrong calls.
Lessons From Building It
Ship something useful, not something complete. The first version of this had maybe 20% of the features I originally planned. It was still useful. I launched it, got feedback, and iterated. Waiting for the "full" version would've meant waiting another six months.
Data maintenance is a product feature. The code is the easy part. Keeping the dataset current, handling edge cases, understanding why a tag got flagged — that ongoing work is what makes the tool trustworthy. I underestimated how much time this would take.
Simple UX is a design decision, not a shortcut. I resisted the urge to add dashboards, history tracking, bulk analysis, and a dozen other features. The tool does one thing and tries to do it well. That constraint is intentional.
Who This Is Actually For
If you're a solo developer, this probably isn't your daily-use tool. But if you're building something for social media managers or content creators, or if you're doing any kind of social media work yourself, it's worth bookmarking.
The scenario that comes up most often: you're about to post something time-sensitive — a product launch, a response to a trending topic, a campaign tied to a live event — and you want a quick sanity check before you hit publish. That's exactly what this is for.
Try It
HashtagSafety is free to use. Paste a hashtag, get a result. No account required.
If you're building something in the social media tooling space and want to compare notes on data sourcing or API approaches, I'm always up for that conversation in the comments.
Top comments (1)
the uncertainty score is a good choice because a binary result would make old or mixed data look more certain than it is. i would show the data age and the source agreement next to each result, then let users report a false positive with the tag and platform. that could improve the list while giving users a reason to trust the warning.