The Feed is where GCCR’s social layer meets the open web: images, screenshots, and moments shared beyond the live channel. Moderation at human speed cannot scale to every post the instant someone taps publish. On-device safety gates run first — locally, before upload — to catch obvious policy violations and give the poster immediate feedback instead of a silent takedown hours later.
The problem
Community radio attracts creativity and chaos in equal measure. A single explicit screenshot or slur baked
into an image can harm listeners, trigger store-policy risk, and burn moderator goodwill. Sending every image
to a cloud classifier solves accuracy for big platforms but introduces latency, cost, and “why is my screenshot
on your server?” friction. Hobbyists and operators deserve safety tooling that feels like part of the app — not
surveillance bolted on after the fact.
What GCCR does
- Pre-publish screening. When you attach media to a Feed post, the client analyzes it on-device before the publish request completes.
- NSFW vision gate. Image classifiers flag adult or otherwise disallowed visual content locally; blocked posts never leave your phone in that state.
- OCR text scan. Text embedded in screenshots — memes, DMs, cropped posts — is read and checked for disallowed content, not just the pixels you meant to show.
- Clear user feedback. When a gate trips, you see why publication stopped and can edit or choose a different image — no mystery failures.
- Server moderation still exists. On-device gates are the first line, not the only line. Human and automated review on the backend remains for edge cases and abuse patterns.
Why this is hard in a browser
Vision and OCR models are heavy. Running them inside a PWA means juggling worker threads, canvas readbacks,
memory spikes on older phones, and false positives that annoy legitimate posters. Thresholds tuned for one
culture’s meme format fail on another. GCCR optimizes for fast local inference and conservative blocking at
publish time — accepting that perfection is impossible but silent failure is worse.