Personal Instruments
Active development

AlternateYou

An iOS reflection tool for creating a path-not-taken timeline and conversing with a simulated alternate self shaped by that branch.

Category
Personal Instruments
Platform
iPhone · iOS 18+
Status
Active development

What might another version of your life reveal about this one?

Persistent timelines, identity-anchored conversation, local memory, comparison, exports, and explicit uncertainty turn speculation into structured reflection rather than prediction.

User value

Explore a path not taken without pretending it can be predicted.

Create a distinct alternate-life timeline, speak with its simulated self, and examine the values, gains, costs, and uncertainty around that branch.

01

Give the question a stable form

Turn an abstract fork into a named timeline with its own divergence, voice, conversation, and memory.

02

Return to recurring tradeoffs

Use timeline-scoped memory, guided prompts, and saved moments to revisit themes without flattening every branch into one chat.

03

Keep reflection bounded

Treat every response as fictional material for thought, with visible AI limits, local controls, and no claim to predict a better life.

AlternateYou chat screen for a fictional studio timeline showing the active branch, local memory, reflection prompts, a seeded conversation, and a save this moment action.View full size
Seeded conversationSimulator capture with fictional data. The prepared image contains inconsistent remote and local engine labels, so it demonstrates the product surface rather than one verified engine state.

Features

Reflection organized around persistent life branches.

The current app joins timeline management, conversation, memory, review, comparison, exports, trust surfaces, and local controls.

  1. 01

    Timeline branches

    Create, rename, duplicate, switch, and delete alternate-life branches while keeping each conversation and memory separate.

  2. 02

    Identity-anchored conversation

    Build every turn from the active divergence, profile, latest memory, recent messages, and current question.

  3. 03

    Memory and saved moments

    Maintain versioned local summaries and preserve selected responses as moments worth revisiting.

  4. 04

    Guided reflection

    Use focused prompts to explore costs, gains, surprise, envy, stability, and other tensions inside a branch.

  5. 05

    Comparison and exports

    Compare timelines, review insights, create readable artifacts, and export one branch when its feature and entitlement rules allow it.

  6. 06

    Offline continuity

    Keep local timelines available and route conversation to a simpler deterministic engine when connectivity or qualifying remote failures require it.

How it works

Define the fork. Speak from the branch. Review the pattern.

The experience moves from explicit consent to a timeline-scoped conversation and a user-controlled record.

  1. 01

    Acknowledge the boundaries

    Review that the alternate self is fictional, remote mode sends relevant context, and the product is not professional or emergency support.

  2. 02

    Anchor the reflection

    Provide basic profile context, choose a current value, and select the divergence that will define the first branch.

  3. 03

    Create a timeline

    Receive a locally generated branch title and summary with its own active state, messages, and memory.

  4. 04

    Question the alternate self

    Write freely or use a reflection prompt to examine what the alternate branch gained, lost, or learned.

  5. 05

    Review what persists

    Inspect the latest memory, open memory history, and save selected responses as moments.

  6. 06

    Compare or clear

    Switch branches, compare timelines, export a readable artifact, clear a conversation, or delete the local branch.

Product concept

A fictional identity can create real perspective.

The product gives counterfactual reflection a durable branch, then keeps that branch specific, uncertain, and clearly non-authoritative.

01

The timeline is the product object

A divergence, identity, message history, and memory belong together instead of becoming context for a general-purpose assistant.

02

Specificity replaces prediction

The alternate self can inhabit concrete tradeoffs without claiming to know what would actually have happened.

03

Uncertainty stays visible

Safety rules, consent, AI transparency, local-mode notices, and data controls remain part of the experience rather than hidden policy text.

Architecture

One conversation boundary, local and remote engines.

The native app owns the timeline, prompt context, orchestration, and local records. A replaceable engine produces either deterministic on-device replies or provider-backed responses through the app-owned service.

  1. 01Load active timeline and profile
  2. 02Save the user message locally
  3. 03Assemble ordered branch context
  4. 04Select local or remote engine
  5. 05Validate the completed response
  6. 06Save reply and update memory

Local data defines the branch

Core Data stores profiles, timelines, messages, and versioned memory summaries without requiring a production remote account.

Only final replies persist

Cancellation or failed streaming should not save partial assistant text or update memory prematurely.

Credentials stay server-side

The TypeScript backend validates typed requests, selects the model, applies basic safeguards, and calls the AI provider without placing its credential in the iOS client.

Fallback is continuity, not equivalence

The deterministic local engine keeps conversation available but is intentionally less expressive than remote generation.

Technology

Native reflection with local and remote generation paths.

Application

  • Swift
  • SwiftUI
  • iOS 18+
  • Native accessibility surfaces

Local data

  • Core Data
  • Profiles
  • Timeline branches
  • Messages
  • Versioned memory summaries

Generation

  • Deterministic local engine
  • Remote streaming engine
  • Ordered prompt blocks
  • Offline fallback

Backend

  • TypeScript
  • Node.js 22
  • Express
  • Render
  • Anthropic Claude API

Commerce and validation

  • StoreKit
  • XCTest
  • Backend contract tests
  • Release-like feature gating

Development

Core flows work. Release proof remains incomplete.

The native app, local data model, remote live-chat path, offline fallback, reflection features, trust surfaces, premium plumbing, and backend are substantially implemented. Mock authentication, StoreKit sandbox validation, legal destinations, TestFlight, final media, real-device QA, and full accessibility review remain unresolved.

Stage
Active development
iOS audit
292 tests passed
Live integration audit
2 tests skipped
Public distribution
Not confirmed

Implemented

  • SwiftUI flow for mock sign-in, consent, onboarding, timeline management, chat, settings, trust disclosures, data controls, and premium gating
  • Core Data persistence for profiles, timelines, messages, and versioned memory summaries
  • Structured prompt assembly, identity anchoring, deterministic local replies, remote live chat, retry, cancellation, offline mode, and local fallback
  • Reflection prompts, saved moments, insight feed, timeline comparison, shareable cards, narrative exports, and timeline-scoped readable data export
  • StoreKit product, purchase, restore, entitlement, paywall, and premium access plumbing with deterministic test clients
  • TypeScript backend with validation, task routing, provider calls, app-key checks, timeouts, process-local rate limiting, and operational usage metadata

Release readiness

Complete App Store Connect and subscription configuration, validate sandbox purchase and restore, finalize hosted privacy, terms, support, and data disclosures, run release-like and physical-device QA, verify a controlled staging conversation, and prepare final screenshots before TestFlight distribution.