How anonymity works

You don't have to trust us. You can read the code.

Every wish and every problem posted here is anonymous by default. And because the server that runs this place is public source code, that isn't a promise you have to take on faith.

The database, honestly

An anonymous post knows nothing about you.

Every wish and problem lives in one row of one database table, called entries. Here is everything that row can hold, and everything it simply has no room for.

entries one row per post

Stored

  • text The wish or problem exactly what you typed
  • category Category e.g. transport, healthcare
  • type Type wish or problem
  • votes Vote count how many people agree
  • comment_count Comment count how many replies
  • month_year Month + timestamp for sorting and the monthly list

Never stored

  • Your name no name column for anonymous posts
  • Your account user_id is saved as null
  • Your IP address never read, never written
  • Your device fingerprint no such column exists

That's not a redaction, it's an omission. The endpoint that saves a new post, src/routes/api/entries/+server.ts, never once reads a visitor's IP address, a device id, or a name. There is no column for them, and no line of code that asks.

Optional accounts

Signed in? Still anonymous when you want.

The only way to sign in is with Google, so this app never stores a password of its own. And every time you post or comment, there is a plain toggle: "post anonymously." Flip it on, and the row saved to the database has its account link set to nothing.

Your account

Google sign-in

anonymous: on

The saved post

user_id: null

Not a name change. Not "anonymous unless someone asks." The account and the post are never linked in the database: not in a hidden column, not in a log, not anywhere.

Voting without identity

A vote can prove you're a real person, without proving who that person is.

To stop the same person voting on an idea twice, src/routes/api/vote/[id]/+server.ts needs a way to recognise "have I seen this voter before?" without ever writing down who they are.

device + cookie + PEPPER SHA-256 voter_hash
IP address + PEPPER SHA-256 ip_hash

One-way. PEPPER is a secret that lives only on the server, never in the public code, so there is no key that turns a hash back into an IP address or a person.

Both hashes live on the vote, in a separate table from the post itself. Even in the unlikely case someone got direct access to the database, a vote hash cannot be traced back to reveal who authored anything.

The honest limit

We can't see who you are. But we won't pretend the internet is magic.

This app stores nothing that identifies you, and the public code proves it. No name, no account link, no IP address, no device id is ever written to the database.

But like every website that has ever existed, your connection has to physically arrive somewhere. Cloudflare, the host running this app, sees a source address for that connection, the way a postal service sees the return address on an envelope even if it never opens it. We don't log it. We don't store it. We don't need it. But pretending the network itself is invisible would be dishonest, so here it is, in the open.

Go one step further

Want to disappear from the network too? Here's how.

01

Don't sign in

Posting, voting and commenting never require an account. Skip login entirely, or if you do have one, flip the "post anonymously" toggle before you submit.

02

Use a VPN or Tor

Route your connection through a VPN or the Tor Browser before it reaches us. The host then only ever sees the VPN or Tor exit node's address, never your own.

03

Browse privately

Use a private or incognito window and clear cookies afterward. The only cookie this app sets for anonymous visitors is a random anti-double-vote token with no identity of its own.

04

Watch the content itself

Don't name yourself in the text. And remember: photos can carry hidden location data in their metadata, so strip it first or avoid identifiable images.

The network path

Behind a VPN or Tor, the host only ever sees the tunnel, never you.

Without a VPN or Tor, the address the host sees is your own. Put a VPN or Tor between you and us, and the address the host sees belongs to the tunnel, not to you.

Verify it yourself

A privacy promise you can't check is just a promise.

So we're not asking you to trust a paragraph on this page. The server that saves a post, casts a vote, and defines the database is public source code. Anyone can open these files right now and read exactly what happens to their words before they click submit.

Nothing to leak. Nothing to trace.

You don't need a burner account or a new identity to speak honestly here. Say what's true, vote for what matters, and let the words stand on their own.

Speak freely.
No name required.

Post a wish or a problem in under a minute. No account, no name, no tracking: just your honest voice.

Post anonymously

or see what others have already spoken up about

Wish.

A citizen-driven platform to surface the problems that matter and the ideas that solve them - for a better Maldives.