De documentatie is alleen in het Engels geschreven. De rest van de site is ook in het Nederlands beschikbaar.
Questions and answers
The twenty questions only the product owner could answer, and the answers.
Bijgewerkt: 30 October 2026
All twenty questions are decided. On 2026-10-30 the product owner confirmed that what is built is the answer: wherever the app already does it, that is the decision. The questions page shows each choice.
Decided
- Q1 Domain —
incico.eu. The website, the account page’s CORS and the e-mail templates use it (A1). - Q2 Supabase project — decided 2026-09-12: a new project.
incico-staging(refugdoylltwhcbegccqlje,eu-west-1) was created in the Sefaja organisation and phase 1 is deployed to it.app-templateis not reused: sharing a project would mix two products’ auth users, storage buckets and migration history. The production project follows in phase 7, so there is no idle project holding credentials in the meantime. - Q3 Sign-in methods — e-mail and Google; Apple on iOS. E-mail with a six-digit code or a password, and Google once its client is configured. Android does not offer Apple; it comes with iOS when that resumes (A3, A43).
- Q4 Monetisation — no ads, free. No ads SDK and no purchase in the app; the
entitlementshook stays reserved for a supporter purchase later (A4). - Q5 Connected services — phone contacts and Google Contacts. Microsoft/Outlook stays behind a flag that is off (A77).
- Q6 Multiple profiles — kept. Managed profiles and the profile switcher are built (A43).
- Q7 Family relations — a relation label, no auto-connect (A7).
- Q8 Languages — English and Dutch for the app, the website and the e-mails, with key parity tested.
- Q9 Application identifier — decided 2026-09-12:
nl.sefaja.incico. The fresh id (assumption A9 confirmed) rather thancom.sefaja.incico; v3 gets new store records and v1 installs do not update in place. - Q10 Phone verification — not at launch. Phone numbers are unverified; e-mail addresses are verified by Supabase Auth (A43).
- Q11 Web app — none; the website has only the account page to export data or delete the account (A11, A91).
- Q12 Analytics — PostHog EU with typed events and the app’s own crash handler, asked at onboarding with No as the default (A89).
- Q13 Tablets — two panes: the rail, the list and the detail beside it (Tablet).
- Q14 Repository — the monorepo
C:\Source\IncicoV3. - Q15 Branching —
main,developand feature branches, as in Saymail. - Q16 Mac mini access — decided 2026-09-12: reachable, Apple team
47HUKYRBQZ. The Mac mini is reachable over key-based SSH (Xcode 26.6, iOS 26.5 SDK, iPhone 16 / iPad Pro simulators); it uses the Saymail team47HUKYRBQZ, already set up there, rather than v2’sU96BHA22RF. - Q17 Minimum OS versions — Android 8.1 (API 27) and iOS 17.
- Q18 Retention — immediate deletion; backups age out within 30 days (Security).
- Q19 Photos — up to four per profile, 1024 px, EXIF stripped, in a private bucket, with the limit enforced in the database (A18).
- Q20 Android release builds — shrink and obfuscate. R8 is on; the mapping travels in the bundle for Play and every release build uploads it to PostHog, where crash frames find it by their
map_id(A19). - Platform order — decided 2026-09-18: Android first, iOS paused. The product owner stopped iOS development after phase 4 so the Android app can be finished first; phases 5, 6 and 7 are delivered on Android only. The iOS phase 5 work stays unmerged on
feature/phase-5-ios(tasks 0 to 13 of its plan done; task 14, the background task, telemetry and accessibility pass, and task 15, the smoke UI test and gate, remain). While iOS is paused,mobile/platforms.jsonmarks itpaused, andtools/i18n-diff.mjsandtools/ios-resources-check.mjsreport iOS drift as a backlog instead of failing (node tools/i18n-diff.mjs --backloglists it); that backlog is the starting list when iOS resumes. This replaces design principle 4 (“Twin apps, one behaviour”) for v3.0 on Android: the canonical i18n keys, vectors and test tags are still written for both platforms, but only Android implements them for now.
Questions this design answered itself
See the Assumptions log for the full list with reasons.
Actions on the old code, independent of any answer
- Revoke the Google service-account key found in
C:\Source\IncicoV2\incico2\incico-8b116-e5dec1dab4f3.json(Google Cloud IAM → service accounts →playstore-console@incico-8b116) and delete the file. - Rotate every credential that appears in
IncicoV1appsettings and pipelines (SQL, storage, Service Bus, OAuth client secrets, SMTP, RSA signing keys). Treat the v1 Android keystore as leaked. Unpublish v1 from both stores until v3 ships— done 2026-10-30. The released MAUI client disables TLS certificate validation. App Store Connect app 6505110736 (“Incico”, only version 1.2, rejected) is removed from sale in every country (0 of 175). On Google Play nothing was public:com.sefaja.incico(“IncicoV2”) only ever had internal testing, and the v3 recordnl.sefaja.incicois unpublished; a store search for Incico finds neither.