Inspiration
I own far more games than I will ever play. Every evening went the same way: open the launcher, scroll a wall of covers for twenty minutes, feel guilty about everything I hadn't touched, and then play nothing. Gamers call it the "pile of shame".
Backlog apps made it worse. They turned my games into spreadsheets, stats and streaks, which is one more chore to keep up with. I wanted the opposite: something that treats a backlog like a menu, not a debt, and simply tells me what to play tonight.
What it does
PILE picks one game from the games you already own, every night, and tells you why it picked it.
- Tonight: one game sits under a lamp with a one-line reason. Swipe down to play it, swipe up to skip.
- The shelf: your whole pile, standing in cases on a real shelf, sorted by what has waited longest.
- Bring your library in: search tens of thousands of games, or import the ones you've never launched from your public Steam profile.
- Finishing means something: mark a game finished and it gets a ceremony and a trophy in your achievements room.
- One invitation a day: a single notification at the time you choose. No streaks, no nagging.
- Private by design: no account and no sign-in. Your pile, notes and trophies stay on your phone.
PILE Plus removes the daily limit on re-rolls. It is sold through RevenueCat as a monthly plan, a yearly plan with a 7-day free trial, or a one-time lifetime unlock. Everything else is free forever.
How we built it
- Android, Kotlin and Jetpack Compose, with almost everything drawn by hand: the lamp and light beam, the 3D-style ring of game cases, the shelf and the trophy ceremony are custom Compose drawing, not stock components.
- RevenueCat SDK powers all purchases: one entitlement, one offering with monthly, yearly and lifetime packages on Google Play Billing. The paywall reads prices and the free trial directly from the store, so what you see is exactly what you are charged.
- A Cloudflare Worker sits between the app and IGDB (game data) and Steam. The app never talks to those services directly and no API secret ever ships inside the APK.
- Colour from the cover art: each game's accent colour is pulled from its cover and adjusted for contrast, so the whole room (light, text, tab bar) takes on the colour of tonight's game.
- On-device storage for the pile, with a plain JSON export and import so your data is always yours.
- Built by a solo developer with Claude Code as an AI pair programmer.
Challenges we ran into
- A crash that only existed in the release build. The onboarding worked in debug and crashed after code shrinking. The cause was animations declared inside loops with early exits, which corrupted Compose's internal state once optimised. Finding it meant decoding obfuscated stack traces.
- Making a shelf of dozens of 3D-looking cases scroll smoothly. The first versions stuttered badly. The shelf is now drawn on a single canvas, and the light beam is pre-rendered once instead of recalculated every frame.
- Honest prices. Google Play prices exclude tax in some regions, so the paywall's fallback prices didn't match what people were charged. The paywall now takes every price and trial from the store itself.
- Keeping secrets out of the app. Game data needs an API secret, so all of it goes through our own proxy, including in debug builds.
- Google Play's testing rule: new developer accounts need 12 testers for 14 continuous days before production, which set the pace for the whole launch.
Accomplishments that we're proud of
- An app that feels like a place, not a list: a lamp, a shelf, a drive that loads your game and a trophy when you finish.
- A privacy stance we could actually keep: no account, no analytics, no ads, no tracking.
- A paywall that is honest: the core ritual is free forever, and Plus is one clearly explained upgrade with a free trial.
- Steam import that turns "add 200 games by hand" into about ten seconds.
- Shipping six updates during closed testing, including a full redesign of the onboarding, navigation and settings from tester feedback.
What we learned
- Less is the feature. Every time we removed something (stats, streaks, a second notification, a button that duplicated a swipe) the app got better.
- Release builds are a different app. Test the optimised build early, not the night before.
- Let the store be the source of truth for prices and trials. RevenueCat made that simple.
- Motion teaches faster than words. An arrow that drifts the way you should swipe replaced a paragraph of instructions.
- Small details (a smooth tab switch, a clean background, the right font) change how much people trust an app.
What's next for PILE: Play What You Own
- Importing from PlayStation, Xbox and Nintendo, not only Steam.
- Smarter picks based on mood and how much time you have tonight.
- A home-screen widget showing tonight's game.
- Optional encrypted cloud backup, still without an account.
- An iOS version.
Built With
- android
- android-studio
- claude
- cloudflare-workers
- google-play-billing
- gradle
- igdb
- jetpack-compose
- kotlin
- kotlin-coroutines
- material-3
- revenuecat
- room
- sqlite
- steam-web-api
- typescript

Log in or sign up for Devpost to join the conversation.