EN BM 中文

VibeFlow

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

  1. Create a free account — open sxagg.com and click Get Started. No credit card.
  2. Connect your Facebook Page — authorise VibeFlow through Facebook Login; it works with the page you already run.
  3. Configure your portal — pick a theme, set your moderation thresholds, and turn on named-person detection.
  4. 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.