Fanful
Open Fanful navigation
Fanful

Fanful roadmap

A live tracker for what is shipped, what is active, and what is queued next across the Fanful creator platform, agent surfaces, and mobile apps.

GitHub issue labels ยท updated 4:36 AM

iOSLive status offline108 done2 not done

Workstream

iOS mobile app

SwiftUI and AVFoundation work for iPhone: native playback, account handoff, APNs, TestFlight, and the Fanful companion workflows creators and fans need.

Roadmap stage

Maybe

0 items

Useful sparks that might become real once a dependency or user need gets sharper.

No maybe items right now.

Roadmap stage

Backlog

2 items

Committed roadmap work that exists, but is not the next thing to pull.

Admin

Add native iOS artist Stripe product and price management

Backlog

Laurel/admin should be able to manage membership commerce from the iOS app instead of seeing purchase prompts. In Stripe terms, this means editing products/entitlements and addi...

Ops

Prepare first production iOS App Store submission

Backlog

Context The native iOS app now has TestFlight/releasereadiness documentation and physicaldevice build coverage, but the first public App Store submission is a separate checklist...

Roadmap stage

Next

0 items

Committed follow-ups that are queued behind the active work.

No next items right now.

Roadmap stage

Active

0 items

Current branches and PRs. These should move as GitHub issue labels change.

No active items right now.

Roadmap stage

Recently done

108 items

Shipped work, newest first, with screenshots where the change is visual.

Admin

Add native iOS lesson availability controls

Recently done

Motivation Agent/backend lesson availability writes are available through the shared creator.commerce.lessonavailabilityupdate contract, and Android parity shipped in 1880/1882....

Issue #1883Screenshot pending

Admin

Add native iOS shop product creation controls

Recently done

Parent: 925 Shared contract parent: 1052 Parity source: web 1862, agents 1692 and 1750 Related Android parity: 1867 Context Web admin and agent surfaces now expose confirmed sho...

Issue #1868Screenshot pending

Admin

Add iOS shop product details controls

Recently done

Context Android now exposes guarded native shop product details controls through 1845 and records executed local APPENV=test evidence through 1847. The shared agent contract is ...

Issue #1850Screenshot pending

Admin

Add iOS lesson policy cutoff controls

Recently done

Parent: 1417 Contract parent: 530 Context The iOS app already consumes the shared lessonpolicyreadiness.v1 read contract and has simulator evidence for ready and unavailable les...

Issue #1671Screenshot pending

Admin

Add iOS shop product visibility controls

Recently done

Parent: 925 Related shared creatorcommerce contract: 1052 Goal Expose the ready creator.shopproduct.visibilityupdate confirmedwrite contract in native iOS so an artist/admin can...

Issue #1658Screenshot pending

Qa

Add iOS web-created live chat notification QA evidence

Recently done

Parent QA issue: 1504 Related iOS parity issue: 1502 Android precedent: 1604 Journey catalog: 1231 Goal Prove that native iOS can consume local webcreated live chat reply/reacti...

Issue #1614Screenshot pending

Qa

Add iOS community channel notification mute controls

Recently done

Parent catalog: 1231 Live chat parent: 1502 Shared notification contract: 159 Goal Add native iOS controls for muting and unmuting community channel notifications, covering the ...

Issue #1610Screenshot pending

Live

Add iOS native custom emoji file upload

Recently done

Parent: 1502 Shared parity parent: 1499 Android reference: 1584 Earlier iOS shell: 1527 Goal Let signedin iOS listeners upload a communityscoped custom emoji from the native app...

Issue #1600Screenshot pending

Live

Add iOS publisher notification refresh and mark-read actions

Recently done

Parent: 1502 Backend route: /api/admin/notifications Goal Bring the native iOS publisher/admin notification center closer to the live Fanful notification contract by adding refr...

Issue #1589Screenshot pending

Live

Add iOS notification inbox refresh and mark-read actions

Recently done

Parent: 1502 Depends on shipped backend route work: 1539 Context iOS already has a native Notifications tab with listener and publisher event rows from the mobile bootstrap/fixt...

Issue #1585Screenshot pending

Live

Persist iOS custom emoji reactions in community chat

Recently done

Parent: 1502 Depends on shipped backend endpoint issue: 1539 Related shared parity parent: 1499 Goal Replace the native iOS custom emoji "coming soon" shell with real persisted ...

Issue #1579Screenshot pending

Admin

Add iOS membership tier creation controls

Recently done

Parent: 1371 Related commerce parent: 925 Goal Add native iOS publisher controls for creating an inactive membership tier through the alreadyshipped confirmed creatorcommerce ti...

Issue #1573Screenshot pending

Admin

Add iOS membership tier profile and benefit editing

Recently done

Parent: 925 Contract parent: 1371 Follows: 1540 Context PR 1552 shipped native iOS archive/restore controls for existing membership tiers. The shared creatorcommerce API on main...

Issue #1555Screenshot pending

Admin

Add iOS membership tier lifecycle controls

Recently done

Parent: 925 Shared lifecycle API: 1371 Crossplatform tier parent: 534 Goal Add native iOS publisher/admin controls for membership tier lifecycle management now that the shared c...

Issue #1540Screenshot pending

Qa

Update iOS journey catalog for notification, emoji, and referral evidence

Recently done

Goal Update the internal /admin/userjourneys iOS catalog so the latest shipped native iOS parity slices are indexed with exact evidence, related issues, and blocker notes. Scope...

Issue #1533Screenshot pending

Commerce

iOS publisher referral summary and handoff

Recently done

Context 1493 tracks referral scheme parity for agents, iOS, and Android. The agent read contract from 1509 is now live through the creatorcommerce manifest, but iOS still lacks ...

Issue #1530Screenshot pending

Live

iOS custom emoji picker and My emojis shell

Recently done

Parent: 1502 Shared contract dependency: 1500 Goal Add the native iOS shell for communityscoped custom emoji so the app can render/pick custom emojis from the mobile bootstrap c...

Issue #1527Screenshot pending

Live

iOS notification inbox shell for listener and publisher events

Recently done

Parent: 1502\nDepends on shared event delivery contract: 1500\n\n Goal\n\nAdd the native iOS notification inbox surface for Discord/Slackgrade Fanful community events without in...

Issue #1522Screenshot pending

Live

iOS live chat: system emoji reactions

Recently done

Parent: 1502 Shared contract: 1500 Master parity: 1499 Goal Let iOS listeners react to any community chat message with more than the legacy heartonly control, using system emoji...

Issue #1512Screenshot pending

Live

iOS live chat parity: typing, reactions, custom emoji, and notifications

Recently done

Parent: 1499 Depends on shared contract issue: 1500 Web parity reference: 1501 Goal Bring the iOS app to parity with the Discord/Slackgrade Fanful live chat contract. Scope Nati...

Issue #1502Screenshot pending

Qa

Build Fanful iOS user journey evidence catalog

Recently done

Goal Create fanful.net/userjourneys as the durable catalog of essential Fanful jobs to be done, with iPhone/iOS test steps, screenshots, observations, and links to the related G...

Issue #1231Screenshot pending

Admin

Add iOS membership Stripe Price create/select controls

Recently done

Parent: 925 Backend/API dependency shipped: 1186 Add the native iOS artist/admin controls for membershiptier Stripe Price create/select now that the shared serverowned creatorco...

Issue #1195Screenshot pending

Ops

Add unattended iOS TestFlight upload credential path

Recently done

Parent: 636 Why The iOS TestFlight commandline upload path currently depends on Xcode's local Apple account/keychain state. Build 0.1.0 (3) archived successfully, but upload fai...

Issue #1165Screenshot pending

Admin

Label or replace iOS creator admin placeholders

Recently done

Why Mark noted that admin/native screens can be confusing when they show numbers or controls that might be placeholders. In the iOS app, creator/admin metrics and controls shoul...

Issue #1164Screenshot pending

Admin

Make iOS creator Go Live one-tap and native

Recently done

Parent: 560 Related: 851 Why Mark's admin feedback: when signed in as Laurel/the creator, the native app should not ask for lowlevel stream URLs. It should provide a simple nati...

Issue #1163Screenshot pending

Admin

Add native iOS community channel management

Recently done

Parent: 560 Parity sibling to create/track for Android and web/agent surfaces as needed. Why Mark clarified that live video/chat rooms are separate from alwayson 24/7 text chann...

Issue #1162Screenshot pending

Platform

Add iOS first-run Fanful fan/publisher onboarding

Recently done

Parent: 560. Related product decision: 1075. Builds on 1107. Context Mark clarified that the MVP should be one Fanful app with fan mode and publisher mode, not a dedicated Laure...

Issue #1147Screenshot pending

Live

Add iOS joined-community switcher sheet

Recently done

Parent: 560. Contract: 1078. Builds on shipped iOS shell 1090. Context The iOS app now has a selectedcommunity and fan/publisher mode shell, but Mark's oneapp Fanful model also ...

Issue #1107Screenshot pending

Media

Make iOS library row play controls easier to tap

Recently done

Context Mark asked whether the tiny play buttons in iOS library rows are supposed to be tappable. They should work as direct play/pause controls, but the target is visually and ...

Issue #1101Screenshot pending

Admin

Add iOS lesson Stripe Price create/select controls

Recently done

Parent: 925. Shared backend/API parent: 1052. Backend/agent write slice: 1083. Web parity sibling: 1086. Add the native iOS artist/admin controls for the nowsupported lesson Str...

Issue #1095Screenshot pending

Platform

Add iOS community and publisher-mode shell

Recently done

Parent: 560. Contract: 1078. Related iOS identity slice: 1077. Android parity sibling: 1087. Add the first native iOS selectedcommunity and fan/publisher mode shell so the app s...

Issue #1090Screenshot pending

Platform

Align iOS onboarding and TestFlight metadata with the Fanful one-app model

Recently done

Context Parent: 1075. Related TestFlight/App Store umbrella: 636. Fanful is now the intended MVP product identity: one app, one human account, multiple creator communities, with...

Issue #1077Screenshot pending

Media

Polish iOS Listen Along invite share copy

Recently done

Parent: 448 Why The shared Listen Along design notes say hosts should be able to share an invite message that includes the current track, shared position, sharedcontrols context...

Issue #1061Screenshot pending

Commerce

Add iOS lesson policy and credit surfaces

Recently done

Parent: 530 Parity sibling: Android 858. Ship the native iOS surface for lesson policy and credit state once the shared 530 contract exists. Why Lesson cancellation windows, bun...

Issue #1051Screenshot pending

Admin

Add iOS native creator-commerce readiness panel

Recently done

Parent: 925 Parity sibling: Android 959. Ship the safe iOSnative slice for creator commerce before broader Stripe product/price editing. Why 925 remains blocked for actual Strip...

Issue #1049Screenshot pending

Ops

Use net.fanful.ios as the checked-in iOS bundle identifier

Recently done

Context Mark asked to stop using the longer iOS bundle identifiers and make the iOS app be net.fanful.ios. The release config already uses net.fanful.ios, but checkedin Debug st...

Issue #1046Screenshot pending

Admin

Add native iOS idea-board admin curation controls

Recently done

Goal Bring native iOS artist/admin ideaboard curation to parity with web, Android, and agent contracts. Why 599 tracks ideaboard parity across the four channels. Web 511, iOS me...

Issue #1045Screenshot pending

Commerce

Add iOS live-room support donation entry point with payment-policy gating

Recently done

Parent: 928 Related: 700, 709 Context 928 asks for live donations across web, iOS, and Android while respecting App Store payment policy. 700 resolved the Stripeonly posture and...

Issue #970Screenshot pending

Admin

Add native iOS community channel management readiness panel

Recently done

Child slice of 922 and 921.\n\nGoal: give Laurel/admin a native iOS Community Channels panel that reflects the current alwayson channel backend honestly, without faking unsuppor...

Issue #957Screenshot pending

Admin

Hide listener purchase prompts for artist accounts on iOS

Recently done

iOS child slice for 924.\n\nAcceptance criteria:\n When bootstrap includes artistAdmin, the iOS Account panel uses artist/admin framing instead of listener membership, purchase ...

Issue #946Screenshot pending

Admin

Add native iOS artist community channel management

Recently done

Artists logged into the iOS app should be able to create, rename, and configure the artist community text channels defined by the shared channel contract.\n\nAcceptance criteria...

Issue #922Screenshot pending

Auth

Add iOS native display-name editor

Recently done

Parent Part of 873. Depends on the shared displayname update route from the web/API child issue. Scope Add the matching native iOS Account/Profile displayname editor after the s...

Issue #894Screenshot pending

Commerce

Add iOS domain purchase status and checkout handoff

Recently done

Goal Bring Cloudflare Registrar domain purchase parity to the iOS admin surface after the platform/web contract in 680 is stable. Scope Decode and display domain search quote, p...

Issue #730Screenshot pending

Commerce

Gate iOS native checkout entry points for App Review builds

Recently done

Context Issue 700 documents the paymentpolicy posture for Stripeonly native commerce before external TestFlight or App Store review. The policy audit found that iOS currently ha...

Issue #709Screenshot pending

Commerce

Resolve iOS App Store payment policy for Stripe-only native commerce

Recently done

Context\n\nMark's direction is Stripeonly for support/shop/lessons and no Apple inapp purchase. Before an App Store or external TestFlight review build, iOS needs an explicit po...

Issue #700Screenshot pending

Live

Render creator-approved chat automation attribution on iOS

Recently done

Context 629 / PR 660 added public creatorapproved community chat automation replies with durable audit rows and listenervisible attribution. iOS already has base community chat ...

Issue #662Screenshot pending

Live

Add iOS embedded-room webinar attendee and host states

Recently done

Parent: 505 Split from: 524 Related Android parity issue: 655 Related admin/agent safety issue: 656 Production credential blocker: 650 Goal Bring the iOS app into parity with th...

Issue #654Screenshot pending

Live

Add native iOS community chat reactions, replies, and mentions

Recently done

Context 639 is adding community chat reactions, lightweight replies, and mention parsing/rendering on the web surface. iOS already has base community chat in Live from 571, so n...

Issue #646Screenshot pending

Live

Show event-linked community channels in native iOS Live

Recently done

Why 528 connected persistent community channels to scheduled/live/ended broadcast context after 571 had already shipped the base iOS communitychat Live tab. iOS should consume t...

Issue #607Screenshot pending

Admin

Add native iOS member idea-board parity

Recently done

Why 599 tracks parity for the member idea/upvoting board that shipped on web in 511. iOS should get a native implementation rather than relying on a webonly board. Scope Add nat...

Issue #600Screenshot pending

Live

Add native iOS community chat channels to Live

Recently done

Motivation 507 is adding firstparty community chat channels as a platform feature, not only a web /live widget. The iOS app needs the same communityscoped chat experience in the...

Issue #571Screenshot pending

Media

Fix iOS queue preflight failures before Listen Along smoke

Recently done

Motivation Common Design tried to resume 448 iOS evidence on 20260512 after Xcode began seeing both the physical iPhone and iOS 26.5 simulators. The iOS smoke preflight now runs...

Issue #509Screenshot pending

Commerce

Fix first lesson-booking path and manual availability

Recently done

Motivation This issue now owns the first focused lessonbooking slice from the broader booking notes: make the current lesson entry path work, let Laurel/creators define basic av...

Issue #504Screenshot pending

Design

Fix iOS Account scrolling under mini player and bottom navigation

Recently done

Motivation Physicaldevice smoke on Mark's iPhone 17 Pro Max showed the signedin Account tab rendering its lower Account actions behind the persistent mini player and native bott...

Issue #501Screenshot pending

Admin

Add native iOS magic-link or test-credential path for artist/admin sign-in

Recently done

Captured from Mark's realdevice testing request in the Codex iOS app session on 20260511/12. Problem Mark wants realaccount iOS smoke using listener demo accounts and laurel@lau...

Issue #486Screenshot pending

Media

Make the iOS mini-player tap target open Now Playing across the full bar

Recently done

Mark reported from the physical iPhone build that tapping the playing song name opens the full Now Playing sheet, but tapping the blank/right side of the miniplayer bar does not...

Issue #469Screenshot pending

Media

Add iOS timed comment Like details and single-heart reaction parity

Recently done

Mark asked that comment reaction behavior stay consistent across iOS, Android, and web: comments should have one emoji reaction option, a heart/Like, and users should be able to...

Issue #468Screenshot pending

Media

Remove iOS offline manifest debug copy from listener track cards

Recently done

Captured from Mark's iPhone feedback in the Codex iOS app session on 20260511. Problem Track cards can show truncated copy like "Offline caching requires a signed native manifes...

Issue #447Screenshot pending

Media

Fix iOS ended-state playback UI and autoplay-next behavior

Recently done

Captured from Mark's physical iPhone feedback in the Codex iOS app session on 20260511. Problem When "Romance Anonimo" ends on iPhone, audio stops but the playhead remains at th...

Issue #446Screenshot pending

Media

Restore iOS bottom navigation visibility with mini player

Recently done

Captured from Mark's rapid iOS physicaldevice feedback in the Codex iOS app session on 20260511. Problem Mark reported that the bottom navbar is missing on iPhone. Shared design...

Issue #445Screenshot pending

Admin

Add native iOS artist/listener real-account end-to-end smoke

Recently done

Motivation Mark asked for realaccount native testing across iOS, Android, and web using listener accounts and Laurel's artist account, including comments, live chat, golive flow...

Issue #402Screenshot pending

Media

Adopt Listen Along state sync in the iOS app

Recently done

Motivation PR 373 shipped the shared web/backend Listen Along state contract. The iOS app should now adopt that contract so a joined friend session can actually coplay, copause,...

Issue #385Screenshot pending

Media

Make the entire native iOS mini player bar open Now Playing

Recently done

Motivation Mark tested on a physical iPhone and found that tapping the playing song name opens the expanded player, but tapping the blank/rightside area of the mini player bar d...

Issue #351Screenshot pending

Auth

Add native iOS email verification resend and notification eligibility copy

Recently done

Motivation Mark's iPhone feedback showed confusing notification state: email notifications appeared enabled before email confirmation, while push seemed blocked or still prompti...

Issue #325Screenshot pending

Qa

Prepare iOS TestFlight beta upload and tester onboarding

Recently done

Motivation Mark wants Laurel and friends to test the native iOS app through TestFlight, not only by plugging in his iPhone and pressing CmdR in Xcode. Scope Document the exact l...

Issue #324Screenshot pending

Platform

Add native iOS bottom navigation and keep mini player above it

Recently done

Motivation Mark observed that the iOS app currently lacks a bottom navigation bar, while the shared player/design notes point toward native app chrome similar to Spotify, Apple ...

Issue #323Screenshot pending

Media

Add native iOS Listen Along invite, share link, and QR join UI

Recently done

Motivation Sameaccount Listen here handoff is intentionally exclusive: one listener account on two devices should stop the other device. Mark wants a separate social listening m...

Issue #317Screenshot pending

Admin

Native artist admin parity: analytics dashboards and drill-downs

Recently done

Goal\nBring /admin analytics visibility into iOS and Android for Laurel/owner accounts, not just compact metric tiles.\n\n Scope\n Native analytics overview for listeners, playb...

Issue #296Screenshot pending

Admin

Native artist admin parity: email inbox, replies, and campaigns

Recently done

Goal\nWhen Laurel signs into iOS or Android, she can handle the same practical email work available in /admin: view inbound mail, reply to people, review campaign drafts, send p...

Issue #295Screenshot pending

Media

Fix iOS end-of-track state and queue advancement

Recently done

Motivation Mark observed that on iPhone, when Romance Anonimo ends, audio stops but the playhead remains at the end of the track and the large primary button still shows a pause...

Issue #291Screenshot pending

Auth

Fix native push registration state after OS permission grant

Recently done

Motivation Mark enabled iPhone push through the system prompt, but the app still showed the large enablepush button, confusing device counts, and contradictory copy such as iOS ...

Issue #290Screenshot pending

Media

Unify iOS timed comment reactions to one heart-like model

Recently done

Mark feedback from the Android app session applies across platforms: comments should use one primary reaction, heart/like, not competing star/heart/save actions. Expected behavi...

Issue #278Screenshot pending

Qa

Add an in-app roadmap and About build summary to iOS

Recently done

Motivation Mark wants each native app to expose a selfcontained roadmap/about surface so a tester can see what this build contains, what is partly shipped, and what remains with...

Issue #264Screenshot pending

Qa

Add native iOS diagnostics and support summary

Recently done

Motivation Mark will be testing the iOS app on simulators, physical iPhones, and eventually TestFlight. When playback sync, push, auth, offline downloads, or API origin behavior...

Issue #262Screenshot pending

Media

Add native iOS track sharing

Recently done

Goal Add a native iOS share affordance so listeners can share a Laurel track or the current Now Playing item through the system share sheet. Scope Add share controls to track ro...

Issue #260Screenshot pending

Media

Add native iOS playback speed controls

Recently done

Goal Add native iOS playback speed controls to the expanded Now Playing surface so listeners can slow down or speed up longform audio without leaving the app. Scope Add a native...

Issue #258Screenshot pending

Media

Add native iOS sleep timer controls

Recently done

Goal Add a native iOS sleep timer so listeners can start Laurel's music and let the app pause itself after a chosen interval. Listener jobs to be done Start a timer from the exp...

Issue #256Screenshot pending

Media

Add native iOS audio session and background playback handling

Recently done

Goal Make the iOS app behave like a real listener app on a physical iPhone when audio leaves the foreground: background playback, route changes, interruptions, and mediaservice ...

Issue #254Screenshot pending

Commerce

Add native iOS lesson booking flow

Recently done

Motivation The iOS app can now expose listener/support/catalog surfaces, but lesson booking is still a webonly handoff. A listener should be able to pick an available lesson slo...

Issue #252Screenshot pending

Commerce

Add native iOS support, memberships, and shop catalog

Recently done

Goal Give the native iOS app a Support surface that feels like Laurel's app, not just a weblink grid. Scope Add a mobilesafe support/catalog endpoint for membership tiers, publi...

Issue #250Screenshot pending

Platform

Add native iOS performance dates surface

Recently done

Goal Give the native iOS app a real Dates surface instead of only handing listeners to the website. Why now The website already has structured performance data through getPublic...

Issue #248Screenshot pending

Media

Add native iOS playback device context pills

Recently done

Goal Add a clear native iOS playbackdevice context pill so listeners can tell whether playback is local, remote, connected, offline, or localonly without reading the larger stat...

Issue #246Screenshot pending

Design

Brand the iOS app with a native Laurel home surface

Recently done

Goal Make the native iOS app feel like Laurel Harned's listener app from the first screen instead of a generic MusicWebs utility shell. Why now The core iOS features are now bro...

Issue #244Screenshot pending

Media

Add a native iOS listener Live Room surface

Recently done

Motivation The iOS app currently offers a Live hub handoff, while the website already has a real Laurel Live room with room state, stream/replay metadata, presence, and live not...

Issue #242Screenshot pending

Media

Add native iOS Continue Listening resume panel

Recently done

Goal Add a native Continue Listening surface so returning iOS listeners can resume the most relevant inprogress track without hunting through the full library. Scope Use existin...

Issue #239Screenshot pending

Media

Add native iOS library search and media filters

Recently done

Goal Make the native iOS library easier to browse as Laurel's catalog grows by adding native search and quick filters. Scope Add a SwiftUI search field for track title/composer/...

Issue #237Screenshot pending

Media

Add a native iOS video playback surface in Now Playing

Recently done

Goal Add a native iOS video playback surface so video tracks are not only labeled as video, and keep the player aligned with the shared web/Android design direction. Scope Use n...

Issue #235Screenshot pending

Qa

Document iPhone testing and TestFlight release for the iOS app

Recently done

Goal Document the exact morning path for Mark to test the native iOS listener app on a physical iPhone and prepare an internal TestFlight build. Scope Physical iPhone testing ch...

Issue #233Screenshot pending

Design

Polish iOS player motion, haptics, and accessibility against the shared design contract

Recently done

Goal After the core player surfaces land, add the last layer of native polish so iOS feels intentional while staying aligned with web and Android design decisions. Listener jobs...

Issue #227Screenshot pending

Auth

Complete native iOS account settings beyond sign-in

Recently done

Goal Extend the iOS account surface beyond base signin so listeners can manage the account tasks that matter on the website without losing nativeapp context. Listener jobs to be...

Issue #226Screenshot pending

Media

Add iOS cross-device playback handoff and sync conflict states

Recently done

Goal Make the iOS listener app explicit about crossdevice playback ownership, progress sync, and API gaps so it behaves consistently with the website and future Android app. Lis...

Issue #225Screenshot pending

Media

Add queue, skip, and remote-control parity to the iOS player

Recently done

Goal Bring the native iOS player closer to website player parity by adding queue/nextup behavior and full iOS system remotecontrol integration. Listener jobs to be done See what...

Issue #224Screenshot pending

Media

Refactor the iOS player into a compact mini player and expanded Now Playing sheet

Recently done

Goal Bring the native iOS player in line with the shared player design direction: a genuinely compact persistent mini player while browsing, plus a native expanded Now Playing s...

Issue #218Screenshot pending

Auth

Add native-safe Turnstile flow for iOS timed comments

Recently done

Motivation PR 212 added a Turnstile challenge for brandnew verified sessions that post timed comments on the website. The native iOS timedcomments composer added in 142 posts th...

Issue #213Screenshot pending
iOS media rows with artwork, media kind, progress, and locked states

Media

Add artwork, video-aware media UI, and richer playback states to the iOS app

Recently done

Polish iOS library cards with artwork, media-kind labels, locked/loading/error states, and clear member-only calls to action.

Richer iOS media states

iOS app showing a pending progress update waiting to sync

Media

Add reliable playback progress queue and retry to the iOS app

Recently done

Make iOS progress writes durable across spotty connectivity, backgrounding, and future offline playback with a local retry queue.

Durable iOS progress queue

Platform

Add shared native mobile API contracts and generated models

Recently done

Define shared native fixtures and contract tests under contracts/mobile-listener/v1 so Swift and Kotlin clients stay aligned with website APIs without forcing a shared UI stack.

Shared native contract fixtures

Operations

Add release signing, TestFlight, and App Store readiness to the iOS app

Recently done

Prepare the iOS project for real distribution with bundle identity, signing notes, release-safe configuration, app assets, and TestFlight documentation.

Issue #152Screenshot pending
iOS artist dashboard companion for an admin account

Admin

Add artist dashboard and web admin handoff to the iOS app

Recently done

Add an iOS artist companion area for read-only signal and authenticated handoff to deeper web admin modules.

iOS artist dashboard companion

iOS listener shell signed out with the artist live companion hidden until admin sign-in

Admin

Add artist live controls and moderation companion mode to the iOS app

Recently done

Give Laurel a role-gated iPhone companion workflow for live-room status, quick room controls, presence, and chat moderation.

iOS live companion

iOS listener hub web handoff tiles

Platform

Add listener hub links for Live, Dates, Support, Shop, Lessons, and Account to the iOS app

Recently done

Give iOS listeners a native home base with stable web handoff links for Laurel features that are not yet fully native.

Native hub links

Media

Add offline downloads and signed media cache to the iOS app

Recently done

Let entitled iOS listeners save eligible recordings for offline playback under the #536 protected-native-cache decision once the signed offline manifest and entitlement refresh contracts are ready.

Issue #144Screenshot pending

Media

Add timed comments, replies, and reactions to the iOS app

Recently done

Bring the website's timed listening conversation into iOS playback with visible comments, timestamp seeking, replies, reactions, and moderation-aware states.

Issue #142Screenshot pending
iOS playback handoff sign-in state

Media

Add playback sync and Listen Here handoff to the iOS app

Recently done

Connect iOS to the Fanful playback sync socket so website, iPhone, and Android sessions can hand off track, position, and active-device state.

iOS playback handoff

iOS native notification settings in the Account panel

Platform

Add notification preferences and push registration to the iOS app

Recently done

Add APNs registration and account notification settings that distinguish OS push permission from per-category email and push preferences.

iOS notification settings

iOS native account panel with sign-in and create-account controls

Platform

Add native account sign-in and entitlements to the iOS app

Recently done

Let iOS listeners sign in natively, refresh account state, and unlock paid/member entitlements through the existing Fanful account contracts.

Native iOS account sign-in

Apps

Build first native iOS listener app

Recently done

Create the first SwiftUI listener app that consumes the mobile bootstrap/progress contracts, streams playable tracks with AVPlayer, and documents Xcode simulator and phone testing.

Issue #129Screenshot pending

Media

๐ŸŽง Persistent audio/video player with scrubbing and mixed media playlist

Recently done

Current Session 3 Status PR: 117 โ€” https://github.com/markitics/laurelharned/pull/117 Branch: codex/session3audiovideoplayer Latest pushed commit: c98bb8e fix: harden playback h...

Issue #98Screenshot pending

How this stays current

GitHub issues are the engineering source of truth. This page reads public Fanful roadmap issues, merges them with curated summaries and screenshots, infers the Web/iOS/Android/agent workstream, polls for label changes, and can overlay short-lived sanitized Codex status when an active agent publishes it.

Open GitHub roadmap issues