Roadmap

The next three weeks of ClawCast.

We plan in days and weeks, not quarters. Here’s what we’re shipping between now and three weeks out — TestFlight, a harder backend, and a recommender you teach with swipes.

  1. TodayKickoff
  2. Day 7TestFlight live
  3. Day 14Backend hardened
  4. Day 21Tunable beta
01
Week 1Days 1–7

Get on TestFlight.

Internal testers in Apple's TestFlight by the end of the week.

  1. Day 1

    App Store Connect record

    Apple Developer account confirmed; app record created for com.newsletterpod.app.

  2. Day 2

    Sign in with Apple + StoreKit

    Enable Sign in with Apple for the bundle ID; create the monthly and annual subscription products.

  3. Day 3–4

    Codemagic wired up

    GitHub connected, App Store Connect API key integration added, iOS code signing enabled.

  4. Day 5

    Backend pointer + auth secrets

    AppConfiguration.swift pointed at the deployed Cloud Run; APPLE_CLIENT_ID and SESSION_SIGNING_SECRET confirmed.

  5. Day 6–7

    First TestFlight build

    Run the ios-testflight workflow, invite internal testers, watch what breaks.

02
Week 2Days 8–14

Harden the backend.

Real verification, real scheduling, one full end-to-end run with a real user.

  1. Day 8–9

    Apple token verification

    Replace the placeholder path with real identity-token verification on POST /v1/auth/apple.

  2. Day 10–11

    App Store notification signing

    Signed-payload verification for POST /v1/billing/app-store/notifications.

  3. Day 12

    Dispatcher on Cloud Scheduler

    Call /jobs/dispatch-due-users every 15 minutes; evaluate Cloud Tasks for per-user enqueuing.

  4. Day 13–14

    End-to-end with one real user

    Sign in, configure sources and format, schedule, generate, subscribe in Apple Podcasts, hear it play.

03
Week 3Days 15–21

Make it tunable.

Swipe-based interest replaces topic groupings as the relevance signal.

  1. Day 15–16

    Persistent source items

    New source_items Firestore collection; embed title + summary with OpenAI text-embedding-3-small at ingest.

  2. Day 17

    Swipes + interest vector

    Swipe collection in Firestore; user vector as right-mean minus left-mean, L2-normalized, cached per generation run.

  3. Day 18

    Ranker behind a flag

    Score candidates by cosine similarity before script generation; topics-based selection stays default until the flip.

  4. Day 19

    Cold-start k-means deck

    GET /v1/swipe-deck/cold-start returns ~15–20 cluster-center items; weekly refresh via Cloud Scheduler.

  5. Day 20–21

    iOS swipe onboarding

    Card-stack onboarding replaces the topics picker; a post-episode 'tune your pod' deck keeps the signal fresh.

On the website, in parallel.

The three weeks above are the iOS app and its backend. Here’s the to-do list for this site — split by audience, because the creator and listener surfaces have very different next steps.

WebsiteFor creators

Make signups land somewhere real.

The wizard at /creators/start works, but completed signups sit in a cookie on the visitor's browser. The team never sees them. These items close that loop.

  1. Now

    Notify on new signups

    Email Vince@theclawcast.com whenever a creator finishes the wizard, with the voice ID, feed URL, and channel choice. Until this ships, submissions are effectively lost.

  2. Next

    Apple + Google sign-in

    Replace the cookie-only wizard state with real accounts. A creator can pause, switch devices, and resume — and we get a stable server-side record of who's signed up.

  3. Next

    Admin view of pending creators

    Authenticated list of completed signups, newest first, with the voice, feed, and channels each one picked. Internal-only for the pilot.

  4. Later

    Email preview before publishing

    The wizard's done page promises a preview email before the first episode goes public. Build the approval loop that backs that promise.

WebsiteFor listeners

Make the listener page do more than describe.

Today /listeners is a pitch with a mailto. These items turn it into a place where prospective listeners can hear the product and tell us what to build next.

  1. Now

    Sample episode on /listeners

    Embed a five-minute pilot episode so visitors can hear what ClawCast sounds like before applying. Plain HTML5 audio is enough.

  2. Now

    Vote on the next platform

    Small form on /listeners letting beta applicants pick the platform we ship next — Spotify, Overcast, or Pocket Casts. Tally feeds the iOS roadmap.

  3. Next

    App Store CTA

    Once TestFlight opens to public testers, swap the mailto 'Apply for the beta' button on /listeners for a direct App Store / TestFlight link.

  4. Later

    Public creator pages

    Per-writer URLs (theclawcast.com/c/handle) listing recent episodes — shareable, indexable, the page a creator points their readers at.

After day 21.

The next big workstream is multi-language. Big enough that it doesn’t fit a three-week window — it touches script generation, voice selection, RSS metadata, the iOS UI, and the welcome episode all at once.

  • Per-pod output language on PodcastProfileRecord, with the voice catalog filtered by language affinity.
  • Source-language detection at ingest, and a decision on implicit-LLM vs explicit translation.
  • iOS UI localization: extract Screens.swift copy into Localizable.strings.
  • Welcome-episode MP3s per language — or skip the welcome seed for non-English users.