Sign in with Apple
Roadmap
Perthro's path from TestFlight beta to public launch.
Shipped
140
Core platform
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
8
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
11
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; 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
19
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
57
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-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.