Skip to content
Back

Personal project

Nether

A discretion-first community built around events in the cities you choose: contact on your terms, trust that members earn from each other, and every safety tool free.

The problem

Dating apps and niche community platforms leave a lot of room to do better. Safety often falls on whoever gets contacted, and the tools that keep people safe often cost extra. Nether starts with gender, sexuality and relationship minorities in Sweden, and is meant to work for everyone else too.

Nether is my attempt to change that. Safety comes in layers: consent before contact, visibility each person controls, and members who can vouch for each other. The business model has to pay for running and moderating a safe platform, without tricks that work against the people using it.

And it's made for people, not users. Each person decides how visible they are, what contact they accept, which cities they follow and how much of themselves they show, and it works fully for people who never show their face.

Some apps and communities already get parts of this right, and I'd rather build on that with them than compete.

Constraints

  • Contact follows rules each member sets, and only members who opt in appear in the card stack.
  • Explicit photos have to stay hidden from anyone who hasn't chosen to see them.
  • Hosting has to be in the EU.

My part

My own project. I designed and built it on my own.

Decisions

  • No swipe deck, no open forum

    Matching is an opt-in list of cards with Like and Pass, not a swipe gesture. Instead of an open forum there are a few moderated boards, for a place or an interest, where trial members and members can meet.

  • Start from events

    Everyone starts with events in the cities they choose. Hosting, open messaging and the wider community come with membership.

  • Contact on your terms

    Each member sets what kinds of contact they accept. A first message also needs a path: a mutual like, a shared board or a vouch.

  • Trust is earned

    Everyone moves up a visible ladder, from guest to trial member to member, with a stated reason at each step. Vouches from people you've actually met open the most trusted events, and there's no single trust score to farm.

  • Money never buys around the rules

    Blocks, contact rules, discretion tools and seeing who liked you are free. Money pays for membership, never for access to other people. There are no ads on member pages, and likes, visibility and search are never for sale.

  • Rules in code, not in the screens

    The safety and privacy rules live in tested code on the server, not in the screens, so the interface can't skip them.

What people can count on

  • Your cities only

    The calendar shows events only in the cities you follow, and guests can follow cities before joining.

  • One person, three views

    One person can have a card, a profile and a personal room: three views of the same person, each optional. Filters for faces, contact intents, cities and distance decide who appears in the stack.

  • Visibility

    Everyone chooses how visible they are: sealed, careful or open.

  • Photos

    Explicit photos stay blurred until the person looking chooses to see them.

  • Blocks

    A block hides both people from each other everywhere: cards, rooms, events and messages.

  • Inbox

    Messages are text only, with no photos or link previews, and sending is paced.

  • Notifications

    A notification says that something happened. It never includes the message itself.

  • Quick exit

    One tap takes you away to a neutral page.

  • Deleting

    Deleting your account is one confirmed action, and it removes everything.

What I left out

I left out the photo-and-distance first impression, and kept each screen to a few clear choices. The interface stays calm, in three looks, Classic, Pride and Edge, each in three intensities. Meaning is written out, so it never depends on colour or an icon alone.

Result

In testing, not launched. Before launch: EU hosting, file storage on Cloudflare R2, a mail provider, payment for membership, a privacy law review and a manual screen-reader pass. I'm also exploring a link with my planning platform, so hosts can plan an event's run-of-show, tasks, venue and budget there, while invitations, addresses and attendees stay in Nether.

How I built it

  • The app is TypeScript on Next.js (App Router) and React 19. Data is in PostgreSQL, accessed through Drizzle. Sign-in is a magic link via Better Auth, and the rate limits are stored in the database.
  • The rule modules decide who may take part, when a message is allowed, when a photo stays blurred, how one member can vouch for another, who is in a private group, and which pages a search engine may list.
  • Themes are applied in the browser: colour and intensity tokens, and icons drawn as strokes. I test the looks and intensities with Playwright and axe against WCAG 2.2 AA, plus contrast unit tests.
  • Search engines are kept out unless a page is explicitly allowed, and an image file is not sent until the viewer is allowed to see it.
  • Automated tests cover the safety rules, and an accessibility scan runs on about 20 pages.
Next.jsReactPostgreSQLDrizzleTypeScriptBetter Auth

Want the details behind this? Email me at filip@heinel.dev.