Embark
The Embark guide

How it's built

One app, no server: the architecture, the repo and the decisions.

How it's built

One app, no server

Everything runs on Apple's own services. Your game syncs through your iCloud, shared things (invites, quests, events) live in CloudKit's public database, and company comes from Game Center. Tap any box to see what it does.

On your devices

Apple services

Release

Tap a box.

Where things live in the repo

apps/rally/
  Embark/                 the production app (XcodeGen: project.yml)
    App/Sources/          screens, AR, sync, store, notifications
    EmbarkKit/            the game rules as a Swift package (114 tests)
    Widgets/  Watch/      widgets + Live Activity, Watch app + complication
    UITests/              end-to-end walk, Live Activity, AR, accessibility audit
    CloudKit-schema.ckdb  10 record types (deployed to Production)
    fastlane/             alpha lanes
  docs/specs/             game-design.md · game-systems.md · growing-world-and-rewards.md
  docs/reference/         the UI prototype + 31 reference screens
  DECISIONS.md            RLY-001 … RLY-038

The decisions that shaped it

RLY-031 · Start in your world
AR first, with the painted station as a silent fallback. The camera prompt appears only at first AR use, never at launch.
RLY-032 · Worlds are layers, the cast grows
Districts paint in from sketches. Residents (the heron, the ferry keeper, the fox) appear as the world grows. More companions come later (Enzo, the city route).
RLY-033 · A productivity game, on purpose
A growing world, finds and ranks: Embark deliberately gamifies starting. ADR-0085 removed nearly every mechanic ban. The aim is "famous and addictive", with no anxiety mechanics and no selling of data.
RLY-034 · Scheduled ferries have real pull
Fixed departures make you want to be there for the moment. Missing one is fine, because another leaves in 30 minutes.
RLY-035 · The one design
"Your work paints Basti's world." Two specs, game design and game systems, plus the interactive prototype as the UI reference.
RLY-036 · Embark first, a clean production app
New app at apps/rally/Embark. Only CloudKit and Game Center: no server of our own. Art is generated (gpt-image-2).
RLY-037 · The league waits
A leaderboard needs players, so it ships later.
RLY-038 · The Phase 0.2 rulings
Boarding alerts are scheduled ahead, premium rewards are guaranteed (no paid randomness), invites work through installs (Universal Links plus a "Got an invite?" code), the WeatherKit quota is accepted, and the find style is set by the brass lantern hook.