MiFamilias Dev Portal
Track A · The master TODO

POC → Pilot → Launch roadmap

Seven phases from the current (submission-ready) codebase to families using MiFamilias on real devices. Phases 1–4 overlap on purpose — UI testing starts before the backend and the app-store accounts are ready.

The core idea

Three independent tracks run at once: (1) a password-protected web build lets people test UI flows immediately; (2) Apple/Google account + key registration proceeds on its own clock; (3) the demo backend comes up on AWS. They converge at Phase 4 when real device builds point at the real backend.

P0

Lock the brand & the big decisions

Day 0 · blocks everything

Cheap to decide now, expensive to change later. Nothing that generates signing or push keys should start until these are frozen.

  • Display name — keep MiFamilias or rename. Later change = one App Review cycle.
  • Bundle ID / package (PERMANENT) — confirm com.mifamilias.app. APNS + Firebase bind to it; native projects hard-code it. Changing = brand-new app.
  • Logo / icon — finalize artwork, regenerate icons + splash via @capacitor/assets.
  • Region — pick one AWS region and consolidate (repo currently mixes ap-southeast-1 + eu-west-2). us-east-1 cheapest; eu-west-2 if UK-first.
  • Host decision — AWS now (code is AWS-ready) vs. Azure credits. See Hosting & Costs — recommendation: ship POC on AWS, chase credits in parallel.
  • Review locale — keep review build primary locale English until counsel signs off es/tl consent translations.
P1

Front-end-first UI testing start here

Week 1 · no backend, no store needed

The Ionic/Angular app builds to a plain web bundle. Deploy it to Cloudflare Pages behind Access (same gate as this portal) so invited testers open a URL in their browser and walk the UI. This is the fastest possible feedback loop and needs neither Apple/Google nor the AWS backend.

  • Web build of the mobile appng build (production), output to a Pages project. Phone-frame wrapper already exists in mobile/src/index.html (?bg=).
  • Point at seeded/mock data or the demo backend — start with mock/seed so UI testing isn't blocked by P3.
  • Cloudflare Access policy — email-OTP allow-list for testers (free ≤ 50 seats).
  • UI flow test scripts — onboarding, create/join family, post to feed, create a capsule, try Sage, communities. See Pilot Plan for the scripts.
  • Feedback capture — short form per flow (clarity, friction, confusion, bugs).
Why web-first

UI/UX problems (copy, layout, flow confusion) are 90% of early feedback and are identical in the browser and on device. Catch them now, before you've spent a review cycle or a dollar of GPU.

P2

Developer accounts & keys

Week 1–2 · runs in parallel

The slow, paperwork-bound track. Start immediately because approvals (especially org D-U-N-S and Play identity verification) take days.

  • Apple Developer Program — $99/yr (individual, or org with D-U-N-S). A free Apple Account already allows on-device dev testing (10 App IDs / 3 devices, 7-day expiry) for the earliest sanity check.
  • Google Play Developer — $25 one-time + identity verification.
  • App Store Connect app record — reserve the name, set bundle ID.
  • Play Console app — create listing shell, set package name.
  • iOS distribution cert + provisioning profile.
  • APNS key (push, iOS) — tied to bundle ID.
  • Firebase project + google-services.json (push, Android) — tied to package name.
  • Android upload keystore (or Play App Signing).
Order matters

Do P0 brand lock before generating any of the keys here — APNS and Firebase are bound to the bundle ID and can't be re-pointed.

P3

Stand up the demo backend

Week 2–3 · runs in parallel

The "cheapest demo deploy": one always-on CPU box runs the whole app stack; one on-demand GPU box runs the AI (Sage/Transcend). Reviewers and pilot families hit this. Target ~$30–50/mo with GPU start/stop discipline. Full runbook: docs/CHEAPEST_DEMO_DEPLOY.md.

  • Request EC2 GPU vCPU quota — new accounts often have 0; ask for ≥8 G/VT vCPUs. #1 delay cause — do this first, 24–48h lead.
  • Network — VPC + one public subnet + IGW; core-sg (443/80/22) + gpu-sg (AI ports from core only); Elastic IP.
  • Core boxt3.small, Docker Compose stack, Let's Encrypt, real Cognito, DNS A-records (api/app/admin/cdn), run migrations, verify /health.
  • GPU boxg5.xlarge (or g4dn.xlarge if LLM via API), start-local.sh up, ollama pull gpt-oss:20b, confirm reachability from core.
  • Seed demo data — idempotent backend/scripts/seed-*-demo.ts (families, communities, celebrity/Legend, demo login).
  • Cost controlaws ec2 stop/start-instances; optional EventBridge nightly auto-stop of the GPU box.
Keep the GPU box UP during App Review

When the GPU is stopped the LLM chain returns 503 and /health/services reports degraded — the core app still works, but AI features look broken to a reviewer. Keep GPU up for the whole review window.

P4

Real device builds (TestFlight / Play internal)

Week 3 · tracks converge

Point the mobile app's API base at the demo backend domain and push builds to the internal testing rails. Now testers try it on actual phones with push, camera, biometrics — the things a browser can't fully exercise.

  • Set API basehttps://api.mifamilias.com (demo backend). Never set Capacitor server.url to a dev URL — instant App Review rejection.
  • iOS archive → TestFlight — internal testers first, then external (up to 10,000, requires a Beta App Review).
  • Android AAB → Play internal testing — then closed testing track for the pilot cohort.
  • Verify push (APNS + FCM), camera, biometric/PIN gate, offline behavior on device.
  • Seed a demo account reviewers can log into (DEMO_ACCOUNT_SETUP.md).
P5

Closed family pilot

Week 4+ · the real test

MiFamilias only has value with a whole family, not solo users. Recruit 2–3 "Family Connector" households and get 3+ members active in week one. Full detail: Pilot Plan.

  • Recruit seed families — one connector per household who brings the rest.
  • Onboard via TestFlight / Play closed testing on their own devices.
  • Run the flow scripts + capture structured feedback and session notes.
  • Watch the metrics — complete-family activation, first capsule created, Sage tried, day-7 return.
  • Triage & iterate — fix top friction, re-cut builds.
P6

Store submission & public launch

When pilot is green
  • Store listings — copy, screenshots, feature graphic (APP_STORE_LISTING.md, SCREENSHOT_GUIDE.md).
  • Apple App Privacy label + iOS export compliance.
  • Google Data Safety form + age-rating questionnaire.
  • Hosted privacy policy + ToS URLs.
  • Reviewer notes for sensitive features — deceased-AI avatars, voice cloning, minor/age-gating & consent, 7-day activation grace, and that "Family Alerts" do not contact emergency services.
  • Submit → address review feedback → release. Consider a production AWS cut-over (9-stack CDK) as pilot scales; see Hosting & Costs.

What's already done (not on the critical path)

CONFIDENTIAL — INTERNAL ONLY

Source runbooks: docs/CHEAPEST_DEMO_DEPLOY.md · docs/app-store/SUBMISSION_TODO.md · docs/AWS_DEPLOYMENT_CHECKLIST.md