The VibeFlow Blog
Notes on moderating a community page
How the AI stack works, what it catches, and what we ship next — written for the people
running confession and community pages, not for a press release.
What the VibeFlow app does with your location — and what it never does
Product · 21 August 2026 · 5 min read
Every location feature in the VibeFlow mobile app is optional and off until you turn it
on, and the app stays fully usable if you never grant the permission. That is the design
rule, and our privacy policy states it in writing. This post walks through what each
feature actually collects, who can see it, and where the off switches are.
The friends map
Location sharing is off by default. When you turn it on, your current coordinates and a
coarse place label — for example "Petaling Jaya, Malaysia" — are stored on our servers
and shown only to your mutual follows: people you follow who also follow you back. That
rule is enforced on our servers, not just in the app, so it holds even for an
out-of-date client.
- "While using the app" — the default. Your position refreshes when you open the app
or the map.
- "Always allow" — separately opt-in background sharing. Your position updates roughly
every 2 minutes, or after about 150 metres of movement, and while it is running
Android displays a permanent notification reading "Location sharing on".
You can also define up to 10 restricted areas — home, workplace, anywhere you choose.
While you are inside one, your position is hidden from everyone. This too is applied on
the server. Retention is deliberately boring: we store only your most recent position,
each update overwrites the previous one, and a stored position stops being shared with
anyone once it is more than 7 days old.
Place tags, stories and rides
Adding a place to a post or story is optional and happens only when you choose it while
composing. A place-tagged story also appears on the story map, visible to signed-in
users for as long as the story is live — 24 or 48 hours, as you chose when posting.
Deleting the post or story removes the tag with it. Community rides store your pickup
coordinates and destination with the ride request; once a ride is confirmed, your
position is sent roughly every 12 seconds so both parties can watch each other approach
— and that stops the moment the ride ends.
What never leaves your device
Choosing your content region takes a one-off, approximate reading, matches it to the
nearest supported region, and saves the result on your device only. Those coordinates
are not transmitted to our servers at all.
Who else processes coordinates
Mapbox converts coordinates into place names, searches destinations, and calculates
driving routes and arrival estimates, under its own privacy policy. We do not sell
location data, do not share it with data brokers, and do not use it for advertising or
profiling. The full detail lives in the
privacy policy.
Anonymous, with an undo button: how the recall key works
Guides · 21 August 2026 · 3 min read
Anonymous submission tools have a structural problem. If there is no account, there is
no obvious way for a submitter to prove a post is theirs later — which means no way to
take it back. The confession written at 1am in anger is published, regretted, and out
of the submitter's hands.
VibeFlow's answer is a private access key. Every submission gets one at the moment it
is sent, shown to the submitter and to nobody else. No account, no email address, no
login wall — the things that make an anonymous page anonymous stay intact.
What the key can do
The key lets the submitter recall — withdraw — their own submission at any time: before
it is published, while it sits in the admin review queue, or after it has gone live on
the page. That matters for the submitter, obviously. It matters just as much for the
page admin: a page where people can un-say things generates fewer takedown demands,
fewer panicked DMs, and less of the legal and reputational risk that comes with hosting
other people's secrets.
The admin side of the same coin
Recall is the submitter's own channel. For everyone else there is the report workflow:
any submission can be reported and reviewed through a structured queue, with the
conversation between reporter and admin kept in one place. Between the two, both
directions are covered — the person who wrote a post can withdraw it, and the person
affected by a post can challenge it — without either of them needing to create an
account.
The Crush Ninja alternative for Malaysian confession pages
Comparisons · 25 July 2026 · 8 min read
If you run a Facebook confession or anonymous submission page in Malaysia, you have
almost certainly used Crush Ninja. It does the obvious job well: it gives your community
a form, and it gives you the submissions.
The trouble starts at scale. A page that takes fifty submissions a week is a page where
somebody has to read fifty submissions a week before any of them are safe to publish —
and the ones that matter, the post naming a lecturer or the image nobody should have
sent, are the ones a tired human at 1am is most likely to wave through.
That is the gap VibeFlow was built for. It is not a prettier submission form; it is the
screening and publishing layer that sits behind one.
The part that matters: what happens before you read it
Every submission to a VibeFlow page is screened by four independent engines, all of
them, on every post:
- A named-person pre-check that runs locally at no API cost — honorifics (Dr, Prof,
Encik, Puan, Cikgu, Ustaz, Ustazah, Haji), bin/binti/bte lineage markers, Malaysian
Chinese and Indian surnames, and Chinese character name sequences.
- OpenAI omni-moderation-latest, for category-level harm scores.
- Meta Llama 4 Scout, which reasons about whether a name is being used to defame
someone and whether a claim is unverifiable — the two judgements behind most of what
actually gets reported on a confession page.
- An on-premise NSFW classifier running on our own hardware, over every image and
every sampled video frame.
None of these is a standby for another. They run in parallel, and any one of them
flagging holds the post for review — so a call one model gets wrong is still caught by
the others.
Your admin panel shows the evidence rather than a verdict: per image and per video
frame, what the NSFW classifier scored, what Scout vision said, and what
omni-moderation returned. A video clip expands into a frame-by-frame table. When a post
sits at 38% NSFW on one frame and 2% on the rest, you can see exactly which frame to
look at instead of guessing.
Naming a real person is the risk Crush Ninja never covered
Ask a general moderation API whether "Tan is unfair in grading" is harmful and it will
say no. There is no slur, no threat, nothing explicit. By its taxonomy the post is
clean. On a university confession page that post is the whole problem. It identifies a
real person and accuses them of something, and it is the kind of post that becomes a
complaint to your faculty.
Catching it needs local knowledge, not a bigger model. A surname alone can identify
someone in a small community — while the same surnames in a school or neighbourhood
name are a school and a neighbourhood. Just as important is what VibeFlow does not
flag: place names, institution names, and the contact people listed on a legitimate
event poster.
From submission to a posted Instagram image
A confession page is a publishing pipeline pretending to be an inbox, so the rest of
VibeFlow treats it as one. A submission arrives anonymously with no account needed, and
the submitter keeps a private access key they can use to recall it later — before or
after publication. Once it clears moderation you approve it, pick one of twelve
hand-crafted gradient themes, and VibeFlow renders the confession as a 1080×1080 image
sized for Instagram. From there you publish immediately or schedule it, and the
calendar lays out everything scheduled and published together.
Migrating from Crush Ninja, in four steps
- Create a free account — open sxagg.com and click Get Started. No
credit card.
- Connect your Facebook Page — authorise VibeFlow through Facebook
Login; it works with the page you already run.
- Configure your portal — pick a theme, set your moderation
thresholds, and turn on named-person detection.
- Share your link and go live — post your VibeFlow submission URL.
You can keep Crush Ninja running alongside it while you switch over.
See the full side-by-side on the
Crush Ninja alternative comparison page, or
get help migrating.
One moderation stack, four engines — and a report for every frame
Moderation · 25 July 2026 · 6 min read
Until this week VibeFlow ran its moderation models in two places. The submission app
screened text; a separate detector service screened images and video. Both grew their
own copy of the same taxonomy, and the two drifted — a rule added on one side never
reached the other.
Everything now runs in one service. A submission is screened by four independent
engines, all of them on every post: a named-person pre-check that runs locally, OpenAI
omni-moderation-latest, Meta Llama 4 Scout, and an on-premise NSFW classifier over
every image and every sampled video frame.
The bigger change is what you can now see. The detector was always scoring every frame
of a video — but the admin panel only showed a single verdict, so a clean pass looked
identical to moderation never having run. Your moderation panel now shows the evidence:
per image, and per video frame, what the NSFW classifier scored, what Scout vision
said, and what omni-moderation returned. A video clip expands into a frame-by-frame
table.
That matters most on the borderline cases. When a post sits at 38% NSFW on one frame
and 2% on the rest, you can see exactly which frame to look at instead of guessing.
VibeFlow now reads in Bahasa Melayu and 中文
Product · 18 July 2026 · 3 min read
Every button, label, help text and error message in VibeFlow is now translated on the
fly into Bahasa Melayu and 中文 by Google Gemini 2.5 Flash.
Translations are batched a page at a time rather than requested string by string, and
cached once fetched, so switching language is instant and nothing is ever sent to the
model twice.
One deliberate limit: submissions themselves are never machine-translated. A confession
written in Manglish, in Bahasa, or in Chinese characters reaches your review queue
exactly as it was written. Moderation reads the original too — translating before
screening would launder the tone that moderation needs to judge.
Why naming a lecturer is the hardest thing to moderate
Guides · 4 July 2026 · 5 min read
Ask a general moderation API whether "Tan is unfair in grading" is harmful and it will
tell you no. There is no slur, no threat, no explicit content. By its taxonomy the post
is clean. On a university confession page that post is the whole problem.
Detecting it needs local knowledge, not a bigger model. A surname alone can identify
someone in a small community. VibeFlow checks for the shapes that matter here:
- Honorific plus name — Dr, Prof, Encik, Puan, Cikgu, Ustaz, Ustazah, Haji.
- bin / binti / bte lineage markers.
- A known Malaysian Chinese, Malay or Indian surname sitting near an educational
context word — taught, class, grade, fail, unfair, biased, cikgu, pensyarah.
- Chinese character name sequences next to the same context words.
Just as important is what it does not flag: place names, school and institution names,
organisation and event names, and the contact people listed on a legitimate event
poster. A camp announcement with a coordinator's name and phone number is not a
named-person attack, and a moderation queue that treats it as one gets ignored within a
week.
A regex catches the obvious shapes cheaply; Llama 4 Scout catches the romanised
spellings and unusual names the patterns miss. Both report separately in your panel, so
you can see which one raised the flag.
From anonymous submission to a posted Instagram image
Product · 20 June 2026 · 4 min read
A confession page is a publishing pipeline pretending to be an inbox. VibeFlow treats
it as one.
A submission arrives anonymously — no account needed — and the submitter keeps a
private access key they can use to recall it later, before or after publication.
Once it clears moderation, you approve it and pick one of twelve hand-crafted gradient
themes. VibeFlow renders the confession into a 1080×1080 image sized for Instagram,
with no Canva, Photoshop or design step in between.
From there you either publish immediately or schedule it. The calendar view lays out
everything scheduled and published together, so you can spot a three-day gap or two
posts stacked on the same evening before your audience does.
Attached images and video are screened before any of this — including frame by frame
for video — so nothing reaches the queue unseen.