Go to file
null a412247bf3 security: kimi-k2.7 review fixes — Ed25519 crypto API, Firestore rules try/catch removal, atomic idempotency, RevenueCat 8.20.0, rate limiter fix, remove plaintext fallback, tighten push wording 2026-06-16 22:42:53 -05:00
.vscode feat(db): add 2 new v2 question categories (difficult_conversations, home_life) — 20 total, 5,500 questions 2026-06-15 21:38:22 -05:00
app security: kimi-k2.7 review fixes — Ed25519 crypto API, Firestore rules try/catch removal, atomic idempotency, RevenueCat 8.20.0, rate limiter fix, remove plaintext fallback, tighten push wording 2026-06-16 22:42:53 -05:00
docs fix(ui): polish screens, update ViewModels, add docs 2026-06-16 02:55:16 -05:00
gradle/wrapper feat: Firebase + RevenueCat stack, PLAN.md integration, 11 implementation batches (v0.1.0) 2026-06-15 18:43:43 -05:00
seed feat(db): add 2 new v2 question categories (difficult_conversations, home_life) — 20 total, 5,500 questions 2026-06-15 21:38:22 -05:00
server security: kimi-k2.7 review fixes — Ed25519 crypto API, Firestore rules try/catch removal, atomic idempotency, RevenueCat 8.20.0, rate limiter fix, remove plaintext fallback, tighten push wording 2026-06-16 22:42:53 -05:00
.eslintrc.js feat: Expo project bootstrap (v1.0.1) + untrack private docs 2026-05-13 04:21:43 -05:00
.gitignore security: remove google-services.json from repo and git tracking, add to .gitignore 2026-06-16 21:47:42 -05:00
.prettierrc feat: Expo project bootstrap (v1.0.1) + untrack private docs 2026-05-13 04:21:43 -05:00
README.md docs: add README, add proguard rules, Firestore entitlement checker, network security config, update build config and onboarding 2026-06-16 20:16:47 -05:00
build.gradle.kts feat: Firebase + RevenueCat stack, PLAN.md integration, 11 implementation batches (v0.1.0) 2026-06-15 18:43:43 -05:00
firestore.rules security: kimi-k2.7 review fixes — Ed25519 crypto API, Firestore rules try/catch removal, atomic idempotency, RevenueCat 8.20.0, rate limiter fix, remove plaintext fallback, tighten push wording 2026-06-16 22:42:53 -05:00
gradle.properties feat: Firebase + RevenueCat stack, PLAN.md integration, 11 implementation batches (v0.1.0) 2026-06-15 18:43:43 -05:00
gradlew refactor: package rename from com.couplesconnect.app to app.closer, update build config and firebase setup 2026-06-16 20:03:58 -05:00
gradlew.bat refactor: package rename from com.couplesconnect.app to app.closer, update build config and firebase setup 2026-06-16 20:03:58 -05:00
local.properties.example feat: Firebase + RevenueCat stack, PLAN.md integration, 11 implementation batches (v0.1.0) 2026-06-15 18:43:43 -05:00
seed_generator.py refactor: package rename from com.couplesconnect.app to app.closer, update build config and firebase setup 2026-06-16 20:03:58 -05:00
settings.gradle.kts security: kimi-k2.7 review fixes — Ed25519 crypto API, Firestore rules try/catch removal, atomic idempotency, RevenueCat 8.20.0, rate limiter fix, remove plaintext fallback, tighten push wording 2026-06-16 22:42:53 -05:00

README.md

Closer

A private, warm, intentional space for couples to build deeper emotional connection.

About

Closer is a native Android app designed to help couples communicate better, learn more about each other, and create intentional moments together. It focuses on emotional closeness — not task management, not social media, not productivity.

Screens & Features

Onboarding & Auth

  • Welcome flow with app introduction
  • Create profile (display name, photo)
  • Sign up with email or Google
  • Login and password recovery
  • Anonymous trial mode

Home

  • Suggested next-best action ranked by state
  • Latest daily question status
  • Quick-action cards for daily question, question packs, and history
  • Streak tracking display
  • Answer stats at a glance

Daily Question

  • One question per day for the couple
  • Multiple answer types: written, choice, scale, this-or-that
  • Each partner answers privately, then both answers are revealed

Question Packs

20 categories across 2,500+ questions:

  • Fun, Communication, Conflict, Values, Emotional Intimacy
  • Physical Intimacy, Sex & Desire, Future, Money, Stress
  • Boundaries, Conflict Repair, Date Night, Difficult Conversations
  • Gratitude, Home Life, Marriage, Parenting, Rebuilding Trust, Trust

Each pack has curated questions at varying depth levels. Packs are labeled as free or premium.

Answer System

  • Private written, choice, scale, or this-or-that answers
  • Partner answer reveal flow
  • Local answer history with delete
  • Emoji reactions to partner answers
  • Threaded conversation around specific questions

Spin Wheel (Wheel of Questions)

  • Pick a category, spin the wheel, get a random question
  • Session-based: spin multiple questions in one session
  • Full session history for premium users
  • Perfect for date nights, long drives, or quiet moments together

Partner Pairing

  • Generate a 6-character invite code
  • Invite partner via email
  • Accept invite and confirm pairing
  • Partner home screen showing partner's activity

Settings

  • Account management (email, display name, photo)
  • Notification preferences (reminders, quiet hours)
  • Privacy controls
  • Subscription management via RevenueCat
  • Relationship settings
  • Account deletion

Subscription Model

Tier Key Features
Free Daily question, recent answer history, basic categories, basic reminders, streak tracking, limited spin wheel sessions
Premium All free features + premium question packs, full spin wheel access with saved history, unlimited questions, full answer history with search, custom questions, private notes, exportable memories, advanced reminders, AI-assisted suggestions (future)

Powered by RevenueCat + Google Play Billing.

Tech Stack

Layer Tech
Language Kotlin
UI Jetpack Compose, Material 3
Architecture Clean Architecture (data / domain / ui / core)
Navigation Navigation Compose
DI Hilt
Local Storage Room, DataStore Preferences
Backend Firebase Auth, Firestore, Cloud Functions
Notifications Firebase Cloud Messaging
Analytics Firebase Analytics, Crashlytics
Payments RevenueCat
Security Firebase App Check (Play Integrity)
Min SDK 26
Target SDK 35

Architecture

app/
├── core/           # Cross-cutting: analytics, billing, crash, features, Firebase, navigation, notifications
├── data/           # Data layer: Room DB, Firestore datasources, repository implementations, question JSON parser
├── domain/         # Domain layer: models, repository interfaces, use cases
└── ui/             # Presentation layer: screens + viewmodels per feature area
    ├── answers/        # Answer history, answer reveal
    ├── auth/           # Login, signup, forgot password
    ├── components/     # Shared UI components (empty, error, loading states, special dates)
    ├── home/           # Home screen, partner home
    ├── onboarding/     # Onboarding flow, create profile
    ├── pairing/        # Invite creation, acceptance, confirmation
    ├── paywall/        # Subscription upsell
    ├── questions/      # Daily question, pack library, categories, composer, thread
    ├── settings/       # Account, notifications, privacy, relationship, subscription, delete
    ├── theme/          # Color, typography, theme configuration
    └── wheel/          # Category picker, spin wheel, session, history, complete

Data Sources

  • Firestore — user profiles, couple relationships, question threads, invites, entitlements
  • Room — local question cache, answered questions offline
  • DataStore — user preferences, feature flags, settings
  • JSON assets — bundled questions (2500+ across 20 categories)

Build

cd app/
./gradlew assembleDebug    # Build debug APK
./gradlew installDebug     # Install on connected device/emulator
./gradlew assembleRelease  # Build release APK (minified + shrunk)

Prerequisites

  • Android Studio Hedgehog or later
  • JDK 17
  • Firebase project with Auth, Firestore, Cloud Messaging, and App Check configured
  • google-services.json in app/ directory
  • RevenueCat project configured for Google Play

Design Principles

  • Warm & Intimate — The app should feel like a private emotional space, not a productivity tool
  • Privacy-first — Data isolated by couple, strict Firestore rules
  • Offline-resilient — Room cache keeps the app fast without network
  • Intentional — Short, meaningful interactions. 5 good minutes > endless scrolling
  • 2026 modern — Smooth Material 3 animations, instant feedback, no jank

License

Private project. All rights reserved.