I've spent the last few months building Misnivo — you post a mission, someone
films it, they get paid, the video stays public. Vanilla JS and Firebase, no
framework, all on free tier.
The hard part was never the app. It was making sure nobody could use it to get
someone hurt.
The filter
Two layers. A keyword blocklist first, then a Gemini call if that passes.
Eleven banned categories — heights, water, fire, vehicles, weapons, substances,
extreme eating, fighting, self-harm, minors and animals, dangerous pranks.
Both English and Hinglish, because "chhat pe chadho" and "climb the roof" are
the same mission.
Two things I got wrong on the first pass, both found in testing:
Plurals walked straight through. "Bring a knife" was blocked. "Bring knives"
wasn't. Same for "beer" and "beers". You do not want a weapons filter defeated
by a spelling technicality.
Word boundaries cut both ways. Without them, "car" matched inside "scared"
and "hit" matched inside "white". A mission called "Scared of the dark" got
blocked. That's the opposite failure and it's just as bad.
Then a bigger one. The filter was only reading the title and description. But
a mission also has a rules field, and that's where you'd actually hide the ask:












