-
-
PSI is a card game that trains your intuition. A card sits face down, and you call it before it flips.
-
The whole game is one move. Call the card, watch it flip, and see your score against chance.
-
The Signal Index reads your last 100 calls. Round Robin passes one phone between 2 and 8 friends. Marco Polo turns sound into patterns.
-
Learn is the training manual, in 21 pieces. The League ranks your best runs under a codename. There are eight card backs to choose from.
-
Onboarding is a CRT terminal. You swipe through fourteen moments in psychic research, then you get your codename.
-
Before a run you pick its length and its mode. Arcade scores every call on the spot. Focus holds the results until the end.
-
First Sight uses the five symbols from J. B. Rhine's ESP experiments at Duke in the 1930s. Chance is 1 in 5.
-
Swipe up and the ranks appear while the card grows with the sheet. Tap a suit and then a rank to call the whole card.
-
After each call the card zooms in. A 1.2 second undo covers a slip of the thumb before the call is locked.
-
Focus holds every result until the end, then reveals the whole run at once: each call, the card, and whether it hit.
-
Your profile is an ID badge. It carries your codename, your level and your daily streak.
-
A solo run ends on the score, the top streak and the accuracy. Share it to your socials!
-
Round Robin ends on a scoreboard for 2 to 8 players on one phone, with the winner, top streak and best run. Share it to the group chat!
-
PSI PRO lifts the daily cap. Paying buys more sittings and never touches the score. Prices here are in Australian dollars.
-
The PSI app icon
For judges: I'm entering Best Game and the RevenueCat Design Award.
Inspiration
As a kid I skipped a lot of school. Instead I spent my days in net cafes and local libraries, and roaming the streets, so I experienced a different slice of reality to my friends and family: fringe science, metaphysics, spirituality.
Along the way I sat ten-day silent Vipassana courses in the Blue Mountains, and I ran the rice experiment, giving positive thoughts and words to one jar of rice and negative ones to another. The two jars went different ways. I can't tell you why, but it changed me. It felt like the magic in movies and fairy tales, the kind I was told was impossible.
Now, seeing is believing, so over the next ten years I ran it eight more times and shared it with friends and family. The best part was watching their minds change too.
From there, one rabbit hole after another led me to the declassified ESP files, and then to the books by the people who worked in those programmes, like Ingo Swann and Joseph McMoneagle.
But then there were bills to pay. I got caught in the agency rat race, chasing client results, and over time I drifted from my childhood calling.
Then one night at an after-party we played a card-calling game with a pack of 52, and my friend called three exact cards in a row. The room went crazy. I got goosebumps. Is she psychic? Is the deck rigged?
Everybody has a story about a gut feeling that turned out right. Almost nobody has kept score of their intuition.
And that same week I was served an ad for RevenueCat's Shipaton. That's when I knew it was game time.
What it does
PSI is a card game that trains your intuition. A card sits face down on your screen, and before it flips, you say what it is. It's set in a world where our superhuman senses have been powered down and forgotten, and your mission is to bring the signal back online. I built it to make our sixth sense as ordinary as the other five.
Any skill needs two things to grow: practice, and feedback you can trust. Every part of the game is there for one of them.
Feedback you can trust
The shuffle is cryptographic randomness, the card is locked in code before you call it, and every hit and miss goes on your record, scored against chance. Most calls miss, and the game never hides it. That's what makes a hit mean something.
Practice that grows with you
| Deck | Your call | Chance | Score |
|---|---|---|---|
| First Sight | A Zener symbol: ○ circle, + cross, ≋ waves, □ square, ☆ star | 1 in 5 | 2x |
| Night Glass | Red or black | 1 in 2 | 1x |
| Suit | 1 in 4 | 2x | |
| Rank | 1 in 13 | 3x | |
| The whole card | 1 in 52 | 4x |
Start with red or black and work up to the whole card. When nothing comes, you pass, and a pass never counts against you. Call three exact cards in a row, like my friend did that night, and you've beaten odds of 1 in 132,600.
More ways to play
A run is 12 or 24 calls, or Survival on 5 lives. Focus mode holds your results until the end, so hits can't hype you and misses can't rattle you. The Signal Index tracks your last 100 calls against chance, and it can go down, so your training is never really done. Round Robin is the after-party game that started it all: two to eight friends, one phone. And the League ranks your best runs under your codename while you level up from Prospect to Cosmic.
How it makes money
PSI is free, with no account and no ads. Every install gets 14 days of full access, and after that 3 sessions a day stay free for good. PSI PRO, sold through RevenueCat, lifts the cap for US$7.99 a month or US$49.99 a year. Paying buys more sittings and never touches the score.
How I built it
PSI is built with Expo and React Native, with Skia for the shaders, Convex for the League and RevenueCat for PSI PRO. I'm a designer, so I built it with AI: Claude Code inside the Superset agent IDE, a custom orchestrator that routes each task to the model that suits it, across Claude, GPT, Kimi and Qwen, and the Compound Engineering workflow to ship one feature at a time.
The mechanic. I started by turning a card game you play with your hands into one you can play with your thumb. Every call is saved as a record, and every score, streak and stat is worked out from those records.
The world. Then I built the world around it, mostly out of shaders. The tube (0:15) is the instrument: a CRT terminal like the one an intelligence operative would have sat at. The field, behind every screen, is what you see when you close your eyes to call a card. And Marco Polo (1:25) is sound made visible: the tones are synthesised live, and a small physics solver works out the cymatics pattern each one draws.
I can't tune a look by reading code. So every visual got its own parametric design lab, built by my agent: the tube, the field, the cymatics figures, even the dithering on the archive photos and the eyes in the profile art. I iterated with my eyes, and the lab wrote the final values back into the code.
The money. My agent set up most of RevenueCat through RevenueCat's own MCP server. The app fetches prices and offers live. An intro price appears only when RevenueCat confirms you're eligible for it, so nobody sees a discount they won't get.
Challenges I ran into
The mechanic. I thought I could one-shot it, and every model I tried was great for brainstorming. But none of them could solve the drawer for the 52-card deck (1:04 in the video). A card can be called as a colour, a suit, a rank or the whole card, which is 2, 4, 13 or 52 options. After weeks of prompting I went back to a sketchbook and a whiteboard, and the answer finally came: red, black and the suits are one tap away, and a swipe up brings the ranks.
The world. The shaders looked right in the lab and lagged on the phone. That's where creative freedom met the limits of the device: the first version of the field cost about 31 ms a frame in the lobby, twice what a 60 Hz screen allows. So my agent ran automated loops, changing one variable at a time, until I had the look and the frame rate together. Now the field redraws 8 times a second in the lobby and every frame during a run, and swiping through the lobby feels smooth. Marco Polo hit the same limit: the first tap on a tone froze the app for five seconds while the phone solved the pattern. Now that's solved when the app is built, and the pattern appears in under a second.
The money. I couldn't test a purchase, because App Store Connect had no subscriptions yet. So I ran StoreKit locally and checked every test purchase against RevenueCat's own server. Later Apple sent the app back twice, and each round meant days to a week of delays. PSI went live on 25 September.
And me. My biggest challenge was my own perfectionism. I thought I'd dealt with it years ago, but it came straight back when I worked on something that means this much to me. Creativity expands to fill the time allotted, and mine filled all of it.
Accomplishments that I'm proud of
Being here. For most of my career I designed products and handed them to developers. This time I designed it, built it, tested it, got it through App Review and launched it myself. One of RevenueCat's ads said something like "launch that app you've been dreaming of." Mama, I shipped it.
What I learned
Two things. First, AI can build almost anything I can describe, but my hardest design problem still got solved with a pen and a whiteboard. Second, a deadline is a gift. I could have polished PSI forever, and it took Shipaton's closing date to make me ship it. It's a beautiful time to be alive.
What's next for PSI: ESP Training
More players, first. PSI has been live for a week, and every person who plays it shows me something to fix, so the plan is to listen, improve and ship again. Then content: sharing the research and the stories behind it, and turning that research into training, for me and for everyone who plays. Three superpowers spent decades studying this in secret. I want the next decades to happen in the open, until a sixth sense is as ordinary as the other five.
Download PSI and run 12 calls. See if you can beat chance.
Built With
- astro
- convex
- eas
- expo-router
- expo.io
- heroui-native
- posthog
- react-native
- react-native-audio-api
- react-native-skia
- react-native-true-sheet
- reanimated
- revenuecat
- typescript
Log in or sign up for Devpost to join the conversation.