Vitor Lopes
← Back to projects
iOS App

Blindly

An iOS app where friends point out your blind spots, anonymously. Anonymity here is not a marketing promise: it is architecture.

Visit product
Blindly
Type
iOS App
Status
In development

How it works

  1. 01Creator shares the link
  2. 02Friends answer without an account
  3. 03Responses stay unreadable
  4. 04Minimum responses reached
  5. 05Only aggregates reach the app

Inside the app

  • New session: the creator enters a first name
    Creating the link
  • Share screen: no account needed to respond
    Sharing
  • Home with the active link and response progress
    Waiting for responses
  • Anonymous response flow, one question at a time
    Responder view
  • Results locked until the minimum number of responses
    The anonymity gate
  • Aggregated results per question, no individual answers
    Results

The context

Honest feedback is rare. People who like you soften it, people who don’t stay silent. Blindly creates the missing space: you pick a question pack, share a link, and friends answer without creating an account.

The real problem

Promising anonymity in marketing copy makes no one tell the truth. People only open up when the system makes re-identification impossible. The challenge was designing verifiable trust on both sides: safety for those who answer, courage for those who receive.

The critical decisions

01

Responders never create an account

Every signup screen kills a truth. The responder opens the link, answers, and leaves. Zero friction is what makes the feedback possible at all.

02

Results only open after a minimum number of responses

With too few responses, it would be easy to deduce who said what. The gate is enforced on the server: not the creator, not the app, not even me can open it early.

03

Individual responses never reach the client

The responses table is readable by no one, not even the creator. Only aggregates leave the server, with free texts shuffled and no timestamps. Anonymity by architecture, not by trusting whoever operates it.

04

Native for the creator, web for the responder

Whoever creates the session is invested and deserves the best experience. Whoever responds is doing a favor: any barrier kills the answer.

My role

  • Designed and built the native SwiftUI app on top of its own design system.
  • Modeled the Supabase backend: schema, RLS policies, and the edge function that enforces the guarantees.
  • Designed the dual journey: creator in the native app, responder on the web with zero friction.

Outcomes

Anonymity architecture implemented and verifiable: RLS, aggregates via RPC, and a server-enforced response gate.

The full journey works end to end: create a session, share the link, answer without an account, open the results.

A product in active development, with its own design system and visual identity.

What I’d do differently

Blindly reminded me that the most important design is invisible. The guarantees that make someone tell the truth never appear on any screen.