# Perthro roadmap

_Updated June 3, 2026._

Perthro's path from TestFlight beta to public launch.

## Shipped

### Core platform

- Sign in with Apple
- Sign in with email + password
- Password-reset deep-link to in-app sheet
- Email confirm-signup deep link
- Age gate on first launch (16+)
- 3-step onboarding (display name, taste prefs, suggested follows)
- Following feed
- Public ranked feed
- Feed source toggle (Following / Public)
- New-post badge counts on feed tabs
- Pull-to-refresh on feed
- Bookmarked-reviews feed
- Single-entry feed RPC (deep links)
- Profile view
- Editorial profile header
- Profile activity heatmap (365-day grid)
- Recent-reviews carousel on profile
- Recently-played section on profile
- Owned-platforms badges on profile
- Favorites section on profile
- Profile visibility (Public / Followers / Private)
- Edit profile (avatar, banner, display name, bio)
- Animated GIF avatars (Hero tier)
- Profile font picker (Hero tier)
- Profile accent color picker (Pro tier)
- Hidden + muted view (users / games / posts)
- Connected-accounts management page
- Settings hub (Account, Privacy & feed, Notifications, Appearance, Connections)
- Sign out
- Account deletion (reauth + email OTP + rate-limit)
- Five-star ratings
- Written reviews (short or long-form)
- Spoiler tag on reviews
- NSFW / mature tag on reviews
- “Played on” platform + date per log entry
- Edit / delete own log entries
- Search all-time logs
- Game search (IGDB)
- Game detail: cover, summary, releases
- Game detail: trailer (YouTube embed)
- Game detail: screenshots viewer
- Game detail: time-to-beat (3 styles)
- Game detail: rating distribution chart
- Game detail: community reviews list
- Game detail: “you might also like”
- Game detail page (IGDB-sourced metadata)
- 18+ gating on adult-rated games
- Lists: create / edit / delete
- Lists: add + remove games via picker
- Lists: grid / list layout toggle
- Library tabs: Reviews / Backlog / Wishlist / Lists / Studios
- Library sort: recent / A–Z / release year
- Library: grid + list views
- Backlog + Wishlist add from game detail
- Studios tab (publishers / devs you follow)
- Studio page (catalog + follow)
- IGDB game catalog + full data-dump mirror
- IGDB response cache + rate-limit governor
- Local trigram search across IGDB mirror
- IGDB game-detail RPC
- Game-name normalization for matching
### Platform integrations

- Steam — link, library sync, owned-games stats, achievements, play dates, Steam level
- Xbox — OAuth (XBL + XSTS), library + achievements sync, IGDB resolution
- PSN — link + library sync
- Verified-ownership review badges
- Per-platform stats card (Steam / Xbox / PSN)
- Unified Recently Played across platforms
- Disconnect account (cascade cleanup)
- OAuth via ASWebAuthenticationSession
### Core platform

- Play-status taxonomy (Playing / Completed / Mastered / Retired / Shelved / Abandoned)
### Social & XP

- Follow / unfollow players
### Core platform

- Log vs review entry-kind split, per-log playtime minutes, started / finished dates
### Social & XP

- Block / unblock
- Mute users (silent)
- Mute games (filter from feed)
- Hide individual posts
- Like reviews
- Comment on reviews
- Comment likes + votes
- Review votes
- Bookmark reviews
- Report users / content
- Find People view (search + suggested)
- Recommended people (taste-based)
- View other users’ profiles
- Floating follow button on profiles
- Share-profile sheet
- Copy username action
- Owner-only edit/delete on feed rows
- XP system (server-authoritative ledger)
- XP awarded across 20+ player actions (logs, ratings, reviews, follows, comments, lists, daily check-in, weekly/monthly active, profile setup, account connections, verified reviews, streak milestones, etc.)
- Daily-XP cap (anti-grind)
- Login-streak tracking + milestones
- Level-up sheet + XP toast
- Level + XP bar on profile
- Recommendations engine (game suggestions)
- Taste preferences
- Taste-affinity ranking wired into public feed + people recommender (Jaccard over shared taste picks)
### Notifications & subscriptions

- In-app notifications feed
- Mark-all-seen action
- APNs push notifications
- Push triggers (follower, like, comment, vote)
- Release-day local push reminders for wishlisted games (UNUserNotifications, 9am local, auto-sync on launch)
- Per-channel push preferences (master + 4 channels)
- Per-device APNs token routing (sandbox vs production)
- StoreKit 2 subscriptions
- App Store server-notifications webhook
- Subscription state hardening (refunds, expirations)
- Server-side entitlement verification
- Free tier
- Perthro Pro (monthly + yearly)
- Perthro Hero (monthly + yearly)
- Tier-gated feature modifier
- Paywall view
- Alternate app icons (5 styles — Hero tier)
- Hero badge on profile
### Trust & telemetry

- Telemetry stack (Sentry, PostHog, AdServices, SKAN, OSLog, PrivacyInfo)
- Apple ATT prompt coordinator
- Age-gate enforcement (16+ globally)
- 18+ NSFW review tier RLS
- Reports / moderation pipeline
- AdMob native-ad cards on feed surfaces
- Security hardening pass (token leases, query validation, OpenID, install_id, RLS, etc.)
- Profile + follow-graph access control
- OAuth refresh tokens encrypted at rest via Supabase Vault (PSN + Xbox credentials)
- Branded auth email templates
- Audit security advisor pass (medium + high closed)
### Polish

- SwiftData on-device cache (games, logs, backlog)
- Image pipeline (memory + disk cache + prefetch)
- Custom tab bar + back bar
- Apple Glass blur surfaces
- Skeleton + shimmer loading states
- Centered loading + empty states
- Smooth empty + reveal transitions
- Profile snapshot caching across sessions
- Haptic feedback hooks
- Public feed v2 (clean schema, score clamping, single-entry RPC)
- Brand rename + icon-asset refresh
- Editorial header refinement (rounding, softened logo)
- Game detail + community reviews polish

## In Progress

- AdMob unit setup (profile + gameDetail)
- Production verification of ownership badges
- Push-notification delivery verification
- ATT prompt analytics
- Supabase RLS audit
- Enable leaked-password protection
- Deployment-target reconciliation (iOS 16+ vs 17)
- Weekly TestFlight feedback triage

## Up Next

- **App Store-ready screenshots and listing copy** drafted, with library-import featured early in the carousel — it's the single feature competitors can't match in the short term
- **Marketing landing page** on the website (live at [perthro.io](http://perthro.io/); refine post-feedback)
- **Discord (or similar) channel for tester feedback** plus a bug-bash schedule per build
- **Tester feedback intake process** — in-app channel triaged weekly into Notion / Linear
- **Subscription pricing finalized** — Pro and Hero, monthly + yearly
- **Email confirmation + signup flow validated end-to-end** with non-technical users (form-wipe + delete-account verify both fixed during recent debug session; regression-test before opening up)
- **Library-import friction test** — record Steam / Xbox / PSN OAuth flows on a fresh account, identify drop-off steps, instrument analytics events at each step
- **ATT prompt copy iteration** — measure consent rate via PostHog; ship a second variant if first under-performs
- **Push-notification permission ask** — defer past first session if dropped, re-prompt after first meaningful action
- **Crash-free rate target** set per build (>99.5% sessions, >99.9% users) before invite-list expansion
- **Onboarding A/B** — measure where users drop off in the 3-step flow, tighten copy on the weakest step

## Planned

### Quality gates

- Crash-free rate target met across last 2 TestFlight builds (>99.5% sessions)
- Onboarding tested with non-technical users — full path from email signup → confirmation deep link → first log
- Library-import success rate >90% across Steam / Xbox / PSN on a clean install
- StoreKit verified on physical devices — purchase, restore, cancel, refund across regions
- Day-1 monitoring playbook documented — Sentry alerts, PostHog funnels, push delivery, subscription state
- Rollback / hotfix plan documented — known-good build pinned, force-update mechanism rehearsed
### Listing & legal

- Privacy policy and Terms of Service published, linked from settings + signup
- App Store age rating finalized + ATT disclosure approved
- App Store listing copy emphasizes library import (the moat) and "iPhone-first journal" positioning
- App Store screenshots cover the journey — log → review → friend feed → library imports — not just hero shots
- ASO keyword research done — "iPhone game tracker", "game journal", platform-connect terms
- Subscription pricing confirmed in App Store Connect (Pro + Hero, monthly + yearly)
- Apple App Review pre-submission checklist passed — Sign in with Apple priority, no broken links, demo account ready
### Content & community

- Initial content seeded — popular games covers / editorial picks / curated launch lists
- Editorial launch lists drafted (e.g. "Top 100 games of 2026 so far", "hidden gems", studio retrospectives)
- Launch announcement assets ready — landing-page hero, social tiles, press one-pager
- Press / influencer outreach list ready, embargo dates set
- Launch-day Discord coverage scheduled — ≥2 mods online for the first 24 hours
- Launch communication template for the waitlist + TestFlight cohort

## Later

### Library & journal

- **Year-in-Review / Wrapped recap** — target shipping before holiday 2026. Table stakes for tracker apps now.
- **Multi-playthrough log support** — each playthrough as its own entry with dates, notes, rating. Differentiator territory: every tracker is bad at replays.
- **CSV / JSON export of full library + logs** — frequently requested; cheap to ship; strong privacy / portability story.
- **Game bundles + base/extras stat split** — table stakes for serious tracking now. Once the IGDB dump surfaces bundle data, we layer cross-platform ownership (Steam / PSN / Xbox) on top, so users see which expansions they already own where.
- **Tags on logs and reviews** — user-defined tags (e.g. "couch co-op", "rainy day", "100%"); library filter by tag.
- **Storefront field on logs** — where it was bought (Steam / GOG / Itch / disc), separate from played-on platform.
- **Photo / screenshot attachment** — single image per log entry to capture the moment.
- **Bulk-edit logs** — multi-select for retag, remove, reschedule.
- **Game editions consolidation** — regional / special-edition dedup using IGDB editions data.
- **Long-form review tooling** — markdown preview, autosave drafts, draft inbox.
### Discovery & recommendations

- **Trending / new releases tab** — release calendar + pre-launch trending. Distinct from the existing public ranked feed (which is review-driven).
- **Friends-of-friends recommendations** — low effort given existing follow graph + taste prefs.
- **Editorial / curated lists feature expansion** — useful onboarding surface for users with empty libraries.
- **Wishlist deal alerts** — push when a wishlist game drops in price on a connected platform.
- **Pre-order + offset release reminders** — extends the shipped release-day local push (9am wishlist alert) with configurable T-24h / T-1h pre-release reminders and pre-order purchase tracking.
- **"Played by people you follow recently"** — surface on game detail page.
### iOS-platform opportunities

- **Home screen widgets** — now-playing, activity grid, today's streak.
- **Lock screen widgets** — streak counter, today's logged game, next-up wishlist.
- **Live Activities** — "currently playing" pinned in Dynamic Island; auto-syncs to Apple Watch via Smart Stack on iOS 18+ / watchOS 11+.
- **Apple Watch companion** — quick-log, streak nudge, complication.
- **Share sheet extension** — paste a Steam / Xbox / PlayStation Store URL to add the game to backlog or wishlist.
### Library & journal

- **Achievement / trophy gallery** — surface the per-game and per-profile unlock data we're already syncing from Steam, Xbox, and PSN (names, descriptions, rarity, unlock timestamps); add a "Platinum / 100%" feed entry kind for social signal.
### iOS-platform opportunities

- **Siri Shortcuts + App Intents** — "Log [game] as completed"; Spotlight results for owned games.
### Library & journal

- **Annual gaming challenge** — yearly target (games, hours, platinums, achievements, unique devs) with pace tracking, milestone pushes, and friend visibility. Pairs with the Wrapped recap as the January reactivation hook.
### iOS-platform opportunities

- **Focus filter** — Gaming Focus profile that surfaces feed and hides notifications.
### Library & journal

- **Mood, pace & vibe tags + mood graph** — multi-select at log time (cozy / punishing / atmospheric / chaotic / thinky / slow-burn / fast-action…) aggregated into a profile mood-graph viz. Feeds Wrapped identity tags and recommendation signal.
### iOS-platform opportunities

- **StandBy support** — night-mode dashboard view.
### Customization (Pro / Hero expansion)

- **Animated game covers** — Hero tier; visually distinctive in-feed and on profile.
- **Custom themes** — expand beyond accent color (full color schemes, dark/light variants).
- **Profile cover GIFs** — animated banners for Hero.
- **Additional alt app icons** — expand beyond the current 5.
- **Custom log entry fonts** — ride existing Pro-tier font picker.
### Social

- **Library comparison** — "games we both have", overlap percentage with a friend's library.
- **Comment threads on lists** — lists currently feel one-way; opening them up for discussion is overdue.
- **Quote / repost a review** — light social mechanic that surfaces good writing.
- **Game club mechanic** — time-boxed group play with structured show-and-tell.
- **DMs between mutual follows** — opt-in, rate-limited.
- **Verified studio / press profiles** — self-serve verification flow.
- **Followers list visibility controls** — hide your follower list as a privacy lever.
### Data & power-user

- **Import from Steam / GOG / generic CSV** — accept a widely-used CSV schema so users coming from other trackers can move their data over.
- **RSS feed of diary entries** — auto-publish to a personal blog or IFTTT.
- **Public read-only API** — gated by plan; surfaces the journal externally without cookie scraping.
- **Webhook on review publish / status change** — power-user automation.
### Multi-platform

- **iPad-optimized layout** — after iOS 1.0 ships and stabilizes.
- **Android version scoping** — revisit when iOS feature surface stabilizes; mobile cross-platform parity is a moat extension in this category.
- **macOS via Mac Catalyst** — once iPad layout exists.
- **Public web profiles** — intentionally omitted at launch (private journal positioning); commonly requested by users coming from desktop-first trackers. Revisit once the journal voice is consistent.
### Moderation

- **Moderator queue dashboard** — sort + claim; needed before community scale.
- **In-app community guidelines** — surface the rules where users post.
### Discovery & recommendations

- **Subscription-catalog awareness** — Game Pass, PS Plus Extra/Premium, EA Play, Ubisoft+ catalog scraped nightly; "On Game Pass" badges on game pages; filter library and wishlist by "available in my subscriptions"; "leaving soon" countdown.
### Moderation

- **Block-list import / export** — privacy lever.
### Discovery & recommendations

- **Wishlist arrival pushes for subscription services** — Pro feature. Notify when a wishlisted game enters one of the user's linked subscriptions (distinct from the existing price-deal alerts). Mirrors Letterboxd Pro's per-day streaming-arrival push, the highest-loved Pro feature in that space.
### Moderation

- **Adult-content profile toggle** — distinct from the global age gate; user-facing show/hide for adult-tagged games.
### Discovery & recommendations

- **Recommendations v2** — augments the shipped recommendations engine with pgvector embeddings over IGDB metadata blended with the existing taste-affinity signal, followed-user signal, and anti-redundancy filter ([Last.fm](http://last.fm/)-style suppression of games >85% tag-overlapping recent logs). Unlocks a richer "More like this" and a "find a game by mood" natural-language entry.
### Internationalization

- **App Store localization** — minimum ES, FR, DE, JA, KO, pt-BR. Defer until usage signals demand.
- **Right-to-left layout audit** — pre-requisite to AR / HE expansion.
### Social

- **Biweekly community list-prompt** — themed prompt every other Sunday (Letterboxd Showdown pattern); end-of-week editorial summary published as a Journal-style entry. Cheap engagement engine; requires editorial voice to run.

---

This roadmap is honest about what we're working on, but not a promise on dates. Things shift as we learn from TestFlight feedback. Have a question or want to push for something? Email contact@rune.art or read the latest [build notes on the blog](https://perthro.io/blog/).
