Skip to content
SwiftSwiftUIKotlinJetpack ComposeSupabasePostgreSQLTypeScript

porpor

porpor is a GeNx app of our own for iPhone and Android: one tap and your bestie gets a poke. Around that we built streaks per duo, games to send back and forth, badges and leaderboards, in four languages and without an account that needs an email or password.

Client

GeNx

Role

Design & Development

porpor website with its tagline about poking your besties and an iPhone showing the app

One tap to say you are thinking of someone

A poke (a "por" in Dutch) is a small digital nudge: you tap the button, your bestie gets a notification and can poke back right away, even without opening the app. After your poke it is their turn. Poke each other on the same day and your streak grows.

You add friends by scanning each other's QR code or by sending a short code, which also works when your bestie lives on the other side of the world. A poke can carry an emoji, a short message or your location. That message disappears once it has been seen, and it never appears in the notification itself.

  • Streaks per duo, with a single reminder at 8 pm when a streak is waiting on you
  • POR GAMES to send back and forth, such as Higher or Lower, Hangman and Draw & Guess
  • SUPERPOR: only available when you are actually together, detected over Bluetooth
  • More than thirty badges, a few of them secret, and GOAT status for whoever collects them all
  • Leaderboards worldwide, per country and per neighbourhood, storing only a rough region
  • No email, password or phone number needed, in Dutch, English, French and German

Two native apps on one backend

porpor started out as a React app wrapped with Capacitor. For this version we rebuilt it fully native: SwiftUI on iPhone, Kotlin with Jetpack Compose on Android. Both apps share the same structure, screen by screen, so every change lands in both.

The backend runs on Supabase. Each device signs in anonymously, and everything that counts, such as pokes, streaks, badges and the rules of every game, is enforced in the database itself through Postgres functions. That way nobody can fake a streak or a badge. Edge functions written in TypeScript send notifications straight to Apple and through Firebase to Android, in the language the recipient picked. A realtime channel per user keeps the friends list live.

The app is in the App Store, with the Android version to follow. We also built the website at porpor.be ourselves: a static site in four languages, with the screenshots and the video of the app.

Video

porpor.be with the try it yourself demo

Impressions

An app for iPhone and Android?

We build native apps and the backend behind them, from idea to the App Store.

Get in touch