soulyap is an app for the one thing you can't say out loud. You write it anonymously. It gets sorted by what it's about. Then you're shown one real confession from someone carrying the same kind of weight, and how many people felt that one.

That's the whole loop. No feed to scroll, no comments to dread, and no way for anyone to reply to you, follow you, or message you. I designed and built it end to end — the product, the safety model, the illustration system, the motion spec and the React Native app.

Live on Google Play · me.soulyap.app · site at soulyap.me
Android today, iPhone in progress. Free, anonymous, adults only.


The problem

People carry things they will not say to anyone they know. The places that exist for saying them are all built the same way: you post into a feed, strangers reply, and the reply channel is where the harm arrives. Every confession app I looked at had solved the writing and left the aftermath to moderation.

So the question was not “how do we let people confess?” — that part is easy. It was what has to be absent for someone to say the true thing and not regret it an hour later.

The decision the whole product hangs on

There is no reply channel. No comments, no DMs, no profiles, no following, no way to contact another person at all. That reads as a missing feature until you notice it is the only feature that matters: you cannot be targeted for what you said if there is no mechanism to reach you.

It costs something real. No replies means no community, no thanks, no conversation — the things that normally make a social product sticky. What replaces them is the counter: the number of other people who felt the same thing. That is the entire reward, and it turned out to be enough.

Sign-in: Continue with Google or an email code — no profile, photo or handleThe Read tab: one confession at a time, each with a felt-this-too count and a report controlThe You tab: pick a character for yourself — it never travels with what you write
Sign in, read, and the character you pick for yourself. Shipped on Google Play.

What's in it

  • Write — one true thing, with no title, no tags to pick and no audience to imagine. It is routed by what it is about after you write it, not before.
  • Read — confessions one at a time from the categories you choose, each with a “felt this too” count and a report control on every card.
  • You — a character you pick for yourself (not a profile). It never travels with what you write; confessions always appear under a random character, never the one you chose. Your own confessions live here.
  • Alerts — the only thing that can reach you is a count going up. Nothing anyone typed.
  • Safety and crisis — automated review on every post before it can be shown or matched, and anything signalling crisis routes to real resources rather than into the product.
  • Account — Google or an email code. No profile to build, no photo, no handle. Account deletion is in the app and on the site.

Safety is architecture, not policy

The confession is split from the identity at the source, so the connection does not exist to be leaked, subpoenaed or mis-queried. That is a different claim from “we promise not to look.” Every post passes automated review before it can ever be matched to another person, every card carries a report control, and the app is 18+.

The business model had to hold the same line. Writing is free and always will be. Reading has a free daily allowance, and the optional supporter plan buys unlimited reading — it funds human safety review and never gates writing, reporting, the felt counter, or crisis resources. If you are in crisis you get resources, never a paywall.

How it's built

React Native on Expo, with Reanimated for motion and react-native-svg for the illustrations — every scene is hand-authored SVG rather than an exported asset, so the drawings animate and scale with the type.

The design system is documented rather than implied: colour, type and radius in tokens; a motion spec with named clocks that never share a period, so nothing in a scene visibly beats; and an illustration voice with two ink weights, off-register colour fills and a pressure pass, so the drawings read as a print rather than a vector. The same spec is what this portfolio's illustrations are drawn to.

Two invariants sit above all of it: the crisis path gets no illustration and no motion, only a plain fade; and the read and write cards stay text-first, because the words are the product and the drawing is only a doorway to them.

What I'd watch next

  • Whether the felt counter is enough reward over months, not days — it is the only feedback the product gives, and the thing most likely to wear out.
  • Whether automated review holds as volume grows, and at what point human review has to be funded rather than optional.
  • iPhone, which is in progress.