↑↓ / scroll
EST. 2025 · ANONYMOUS

FoxTrail


Security & Anonymity Architecture

Leave anonymous messages on the walls of the city. Backed by 7 layers of protection, content safety in 17 languages, and 86 automated tests.

ANONYMOUS

Your Identity Stays Yours

  • Nickname + color — your real name is never asked for, never shown.
  • Field allow-list — profile updates only pass through permitted fields; there's nothing extra to leak.
  • Optional gender visibility — sharing it is entirely the user's choice.
  • Photos are optional — an avatar is never required.
FoxTrail map screen with the ANONYMOUS badge

A 7-Layer Spam Shield


01

Cooldown

A mandatory 5-minute cool-off between posts — flooding is impossible.

02

Location Limit

At most 2 posts per hour within the same 50-meter area.

03

Duplicate Detection

70%+ similarity to your posts in the last 24 hours → auto-rejected.

04

Length Bounds

10–280 characters. Neither empty noise nor a wall of text.

05

SHOUTING Filter

More than 80% uppercase → blocked.

06

Permanent-Post Zone

A 30-meter radius around permanent posts is protected.

AUTO-BLOCKED

Personal Info Never Leaks

Before a post goes live, its content is scanned — attempts to pull users off the platform are cut off at the source:

  • Phone numbers — local formats plus international patterns
  • Email addresses
  • Social handles — Instagram, Telegram, WhatsApp…
  • URLs and domains — including 18 common extensions
FoxTrail post composer screen

Content Safety in 17 Languages


~150 terms × 15 languages

Profanity, hate, sexual content, violence and drugs — a dictionary-based scan across 5 categories (Apple Guideline 1.2).

Leet-speak decoder

5hit → shit · fuuuck → fuck — number/symbol masking and letter-repeat tricks are neutralized.

Whole-word matching

Unicode-aware word boundaries: "class" is never blocked for containing "ass".

EN · TR · DE · ES · FR · PT · ID · RU · JA · KO · AR · HE · HI · FA · ZH · AZ · TH

CASE STUDY

When Languages Collide

✗ THE ISSUE The Indonesian slang term "cok" collided with the Turkish word "çok" ("very") after normalization. The result: every Turkish post containing "çok" was silently blocked — one of the most commonly used words in the language.
✓ THE FIX Colliding standalone words were removed while strong compounds (jancok, jancuk) were kept. On top of that, a 44-scenario cross-language collision suite was written — the most common innocent sentences in 15 languages are now tested on every commit.

This bug was caught on the very first run of the automated tests — in a worldwide app, language safety is never left to chance.

The Fortress Is Built on the Server


Client checks are assumed bypassable — the real boundary lives in Firebase:

309 lines of Firestore rules

isAuthed · isNotBanned · isAdmin layers. Chats are open only to participants; system collections are write: false.

7 Cloud Functions

Report review, chat cleanup, moderation and notifications run server-side — no power is handed to the client.

Reporting system

Reports are read and resolved by admins only; a banned user cannot produce content.

86

Automated Tests, All Green

  • 22 anti-spam tests — cooldown, location limit, duplicate, CAPS, personal info
  • 17-language i18n parity tests — no missing or orphaned translation key survives
  • 44 collision checks — everyday sentences in 15 languages don't trip the filter
  • Regression lock — the "çok" case can never happen again
FoxTrail profile screen with badges and level
WHAT'S NEXT

Even More Solid

→

Location-based country detection

The local-language filter is weighted by a post's country — accuracy rises while false positives drop.

→

Server-side rate limiting

Write quotas are enforced in Cloud Functions too — even if the client check is bypassed.

→

Firestore rules tests

Every scenario of the security rules is verified automatically on the emulator.

FoxTrail launch — Write on the Wall

Anonymous. Bold. Safe.

FoxTrail — Write, Shoot & Discover