diff --git a/README.md b/README.md index bc96bc53..02ace073 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@

- Closer feature graphic + Closer Couples feature graphic

-

Closer

+

Closer Couples

A private space for two.
@@ -37,7 +37,7 @@ --- -Closer is a native relationship app for couples who want a quieter way to check in with each other. +Closer Couples is a native relationship app for couples who want a quieter way to check in with each other. Each partner answers privately, reveals intentionally, and keeps a record of the conversations that matter. @@ -86,7 +86,7 @@ Fresh Android captures from the current emulator build.

Visual system

-Closer uses paired light and dark illustration assets so the product can stay warm without fighting +Closer Couples uses paired light and dark illustration assets so the product can stay warm without fighting the selected theme. The home daily-question card is intentionally people-forward: the ready-to-answer and reveal-ready moments use the couple/cards artwork, while quieter waiting states can fall back to the answer-card ritual art. @@ -106,7 +106,7 @@ the answer-card ritual art. Theme-aware art
Light and dark illustrations are paired for the same product moments. - Human warmth
The home ritual leads with people and recognizable Closer card artwork. + Human warmth
The home ritual leads with people and recognizable Closer Couples card artwork. Private rituals
The visual language reinforces answering alone, revealing together, and continuing gently. diff --git a/docs/NameChange.md b/docs/NameChange.md new file mode 100644 index 00000000..d1080374 --- /dev/null +++ b/docs/NameChange.md @@ -0,0 +1,84 @@ +# App rename: "Closer" → "Closer Couples" (store / marketing tier only) + +> Audit + decision record for renaming the product's public name to **"Closer Couples"**. +> Status: **executed in repo.** Store-console changes remain external owner steps. + +## Context + +After auditing every occurrence of the name across Android, iOS, images, and docs, the chosen approach is a deliberate **two-tier branding** outcome: + +- **Store & marketing name** = "Closer Couples" +- **Installed-app name** (home-screen launcher label + every in-app string) **stays "Closer"** — it fits under the icon ("Closer Couples" at 14 chars truncates to "Closer Coupl…") and avoids a full in-app rewrite. + +**Most important consequence:** no code changes, no rebuild, no app re-release. And critically — **the only thing users actually see change (the store listing title + the feature graphic) is set in the Google Play / App Store console, which is an EXTERNAL step performed by the owner.** Editing this repo does not rename anything that is live; the repo work is (a) the source-of-truth feature-graphic asset, (b) doc/record housekeeping. The wordless C-heart-keyhole icon/logo is unaffected (icon SVG sources contain zero ``). + +## Technical identifiers that must NOT change + +Renaming any of these breaks builds / Firebase / the Play listing: +`namespace app.closer` · `applicationId closer.app` · package `app.closer.*` + `class CloserApp` · deep-link host `closer.app` + `closer://` scheme · Firebase `closer-app-22014` (`google-services.json`, `GoogleService-Info.plist`) · iOS `PRODUCT_BUNDLE_IDENTIFIER app.closer.iphone` + `bundleIdPrefix app.closer` + product/target/scheme `Closer` · SPM package `Closer` · Gradle `rootProject.name "Closer"` · resource filenames (`closer_launcher_*`, `ic_notification_closer`, `ic_launcher*`) · XML styles `Theme.Closer[.Splash]` · entitlement id `closer_premium` · crypto AAD constants. + +## What does NOT change (per the chosen tier) + +- **Android launcher label** — `app/src/main/res/values/strings.xml` → `app_name` stays **"Closer"**. +- **iOS home-screen label** — `iphone/Closer/Info.plist` → `CFBundleDisplayName` stays **"Closer"** (`CFBundleName`/`PRODUCT_NAME` untouched). +- **All ~25 in-app copy strings** stay "Closer" (paywall, onboarding/age-gate, settings, widget, invite share text, privacy `strings.xml:95-96`, share card, iOS onboarding, etc.). +- **Wordmark logos** (onboarding, auth alt-text, widget, share card) stay "Closer" → their asserting tests stay green, untouched. +- **Internal engineering/brand-system docs** using "Closer" as codename/design-system name (`DEVELOPMENT_LOG.md`, `SECURITY.md`, `Future.md`, `Engineering_Reference_Manual`, the `Claude*.md` reports, `docs/brand/asset-system.md` "Closer Artwork Asset System", `docs/brand/generated-art/glyphs/README.md` "Closer G-set"). + +## Changes to make (in-repo) + +### 1. Store feature graphic (the one required image) — `docs/store/` +The exhaustive wordmark-SVG list is exactly three files; only this one is store-facing (the other two are unreferenced internal art — see §5). +- Completed: `docs/store/sources/feature-graphic.svg` now uses `Closer Couples` at `font-size="58"`, with the three small card icons/headlines/sublabels centered inside their cards. +- Completed: `docs/store/feature-graphic-1024x500.png` was re-exported from the SVG (1024×500, **no alpha**) — see re-export procedure. + +### 2. Store-listing doc — `docs/release/store-assets.md` +- Completed: title, app-name checklist, full-description prose, and §9 inventory now use **"Closer Couples"** while documenting that the launcher label remains **"Closer"**. + +### 3. `README.md` — product-name references only +Completed: `

`, feature-graphic alt text, and product-facing prose use "Closer Couples". Codename/dir/scheme mentions (`iphone/Closer`, `Closer.xcodeproj`, `-scheme Closer`) remain unchanged. + +### 4. `docs/brand/visual-identity.md` — product-name prose (consistency, optional) +Completed: product-name prose uses "Closer Couples"; asset paths stay unchanged. + +### 5. Two internal `generated-art` feature graphics — OPTIONAL (not store-facing) +`docs/brand/generated-art/closer_app_explainer_feature.svg` + `closer_e2ee_privacy_feature.svg` render "Closer" but are referenced by no store/README doc — internal exploration art. Update their `` + re-export **only if** internal consistency is wanted; not required for the rename. + +## Feature-graphic re-export procedure (the installed tooling can't do it naively) + +`rsvg-convert` / `inkscape` / `resvg` are **not installed**, and ImageMagick's SVG delegate is wired to the missing `rsvg-convert`, so a bare `convert file.svg file.png` falls back to ImageMagick's native renderer and **will mangle** this SVG's `feDropShadow` filters, gradients, and embedded ``. Use the rasterizer that IS present: + +- **Headless Chrome** (`google-chrome` is installed) — pixel-accurate; **DejaVu Sans Bold is installed**, so text renders correctly. +- The SVG's `` is **relative to `docs/store/sources/`**, so serving the repo root and loading the SVG over `http://` resolves the embedded icon correctly: + + ```sh + python3 -m http.server 8099 & # or: npx http-server -p 8099 (node is available) + google-chrome --headless --disable-gpu --hide-scrollbars \ + --window-size=1024,500 --screenshot=/tmp/fg.png \ + "http://localhost:8099/docs/store/sources/feature-graphic.svg" + ``` + +- **Flatten alpha** (Play requires no alpha; Chrome screenshots carry an alpha channel — the opaque `#24122F` rect covers it visually but the channel persists): + + ```sh + convert /tmp/fg.png -background '#24122F' -flatten -alpha off docs/store/feature-graphic-1024x500.png + ``` + +- **Fallback** if headless Chrome misbehaves (sandbox/sizing): the corrected `.svg` is the source of truth — commit it and re-export the PNG with proper design tooling before uploading to Play Console. Per `store-assets.md:200`, never hand-edit the raster; always regenerate from the SVG. + +## External steps (owner performs — outside the repo; this is what actually renames the app) + +- **Google Play Console** → store listing → **App name = "Closer Couples"**, paste the updated description, upload the re-exported feature graphic. +- **App Store Connect** (when iOS ships) → app name "Closer Couples". +- Heads-up: (a) Play title policy allows a descriptor addition — "Closer" → "Closer Couples" is a clear same-brand superset, low risk, but a launcher label that differs from the store title is worth a sanity check at review; (b) `store-assets.md:14`'s trademark check should be re-run against the **new** name. + +## Verification + +- Re-exported `feature-graphic-1024x500.png`: visibly reads "Closer Couples", legible, no clipping/overlap with the icon or the three cards; confirm **1024×500 and no alpha** (`identify -verbose … | grep -iE 'Geometry|Alpha|Type'`). +- Grep the touched docs for leftover standalone "Closer" that should be "Closer Couples" (excluding codename/dir/scheme + technical URLs). +- **Launcher untouched:** `app_name` in `strings.xml` and `CFBundleDisplayName` in `Info.plist` both still "Closer". +- No build required (no source touched); optional `./gradlew :app:assembleDebug` still succeeds unchanged. + +## Pre-existing issue noted (NOT fixed here) + +`store-assets.md:106` — support URL `couplesconnect.app` vs the `closer.app` domain used elsewhere; unrelated to this rename, leave for separate cleanup. diff --git a/docs/brand/visual-identity.md b/docs/brand/visual-identity.md index 51c34821..f9115152 100644 --- a/docs/brand/visual-identity.md +++ b/docs/brand/visual-identity.md @@ -1,6 +1,6 @@ -# Closer visual identity +# Closer Couples visual identity -Closer should feel private, warm, and made for an equal partnership—not clinical, gamified, or like +Closer Couples should feel private, warm, and made for an equal partnership—not clinical, gamified, or like a public dating profile. Product goal: **private, mutual-reveal relationship questions with real encryption and calmer UX**. @@ -11,7 +11,7 @@ requirements, see `docs/brand/asset-system.md`. ## Brand mark -The mark is the approved Closer `C-heart-keyhole`: a soft pink upper `C`, lavender lower sweep, +The mark is the approved Closer Couples `C-heart-keyhole`: a soft pink upper `C`, lavender lower sweep, a heart-shaped inner space, and a true centered keyhole. Pink and lavender represent two people meeting in one private space; the keyhole represents trust and privacy. @@ -81,7 +81,7 @@ Approved production rotation: - **No audience. No public feed. Just the two of you.** - **Private by design.** - **A private space for two.** -- **Not even Closer can read your answers.** +- **Not even Closer Couples can read your answers.** - **End to end encrypted private responses.** - **Built for trust, not tracking.** diff --git a/docs/release/store-assets.md b/docs/release/store-assets.md index c6f1f38f..1853d449 100644 --- a/docs/release/store-assets.md +++ b/docs/release/store-assets.md @@ -1,4 +1,4 @@ -# Closer — Google Play Store Assets Checklist +# Closer Couples — Google Play Store Assets Checklist > Checklist of assets, metadata, and compliance items needed for a Google Play Store submission. Targeting the private MVP / internal launch phase. @@ -9,8 +9,9 @@ Store assets should express the product goal: **private, mutual-reveal relations ## 1. Store Listing Metadata ### 1.1 App name -- [x] App name finalized: **Closer**. -- [x] App name matches `android:label` in `AndroidManifest.xml` (currently `@string/app_name`). +- [x] Store app name finalized: **Closer Couples**. +- [x] Store name intentionally differs from the launcher label **Closer** (`android:label` is + `@string/app_name`) so the installed app stays short under the icon. - [ ] App name is not trademark-conflicting in target categories/territories. ### 1.2 Short description @@ -29,10 +30,10 @@ Recommended short description: Draft full description: -Closer is a private space for two people who want more intentional conversations. +Closer Couples is a private space for two people who want more intentional conversations. Answer one daily question, explore deeper question packs, spin a shared prompt wheel, plan date -ideas, save bucket-list moments, and reveal answers when you are both ready. Closer is built for +ideas, save bucket-list moments, and reveal answers when you are both ready. Closer Couples is built for quiet connection, not public posting or pressure. What you can do: @@ -43,7 +44,7 @@ What you can do: - Use playful connection games like the spin wheel and this-or-that prompts. - Plan dates and keep shared ideas in one calm place. -Closer is not therapy and does not promise to fix a relationship. It gives couples a steady, +Closer Couples is not therapy and does not promise to fix a relationship. It gives couples a steady, private rhythm for checking in, listening better, and making time for each other. ### 1.4 Keywords / tags @@ -182,7 +183,7 @@ private rhythm for checking in, listening better, and making time for each other | Asset | Spec | Status | Owner | |-------|------|--------|-------| -| App name | ≤ 30 chars displayed | Draft | | +| App name | Closer Couples, 14 chars displayed | Draft | | | Short description | ≤ 80 chars | Draft | | | Full description | ≤ 4,000 chars | Draft | | | Launcher icon | Adaptive + round + monochrome | Ready | | diff --git a/docs/store/feature-graphic-1024x500.png b/docs/store/feature-graphic-1024x500.png index f04950b3..d6a3ca73 100644 Binary files a/docs/store/feature-graphic-1024x500.png and b/docs/store/feature-graphic-1024x500.png differ diff --git a/docs/store/sources/feature-graphic.svg b/docs/store/sources/feature-graphic.svg index 0d1816ac..67adad35 100644 --- a/docs/store/sources/feature-graphic.svg +++ b/docs/store/sources/feature-graphic.svg @@ -1,4 +1,4 @@ - + @@ -13,35 +13,35 @@ - + - Closer + Closer Couples A private space for two. Private questions and intentional reveals. - - - Private first - Reveal when ready + + + Private first + Reveal when ready - - - For two - No public feed + + + For two + No public feed - - - Daily - Small rituals + + + Daily + Small rituals