How aamir-azeez/after-you works
After You is an asynchronous cooperative Android puzzle game: players record and save turns, and a partner later plays alongside the saved recording. Its online backend also supports rooms and campaigns, friends, optional photo memories and transfer, safety controls, access entitlements, and turn notifications. The tree and excerpts identify backend and Android bridge modules, but not the Godot client source paths; client-side steps are therefore represented as an external app actor. Some backend subsystem wiring is documented by the README but not shown in sampled source, so uncertain call paths are omitted.
Main entry points: routes.ts V2 room routes · index.ts Worker API · campaign-routes.ts Campaign routes · friends-routes.ts Friend routes
Components 25
Online gameplay
- Worker API
backend/src/index.ts - Room play
backend/src/room.ts - Player state
backend/src/player.ts - V2 room routes
backend/src/v2/routes.ts - V2 room play
backend/src/v2/room.ts - Campaign routes
backend/src/v2/campaign-routes.ts - Campaign rooms
backend/src/v2/campaign-room-access.ts - Room persistence
backend/src/storage-schema.ts
Friends and safety
- Friend routes
backend/src/friends-routes.ts - Friend links
backend/src/friends.ts - Safety routes
backend/src/safety-routes.ts - Safety checks
backend/src/safety.ts
Photo memories
- Room photo routes
backend/src/v2/routes.ts - Photo delivery
backend/src/v2/photo-delivery.ts - Transfer routes
backend/src/photo-transfer-routes.ts - Transfer service
backend/src/photo-transfer.ts
Access and notifications
- Entitlements
backend/src/entitlement.ts - Tester access
backend/src/tester-access.ts - Notification service
backend/src/notifications.ts - Notification storage
backend/src/notification-storage.ts - Android messaging
native/plugin/src/main/java/com/aamirazeez/afteryou/nativebridge/AfterYouMessagingService.kt
Other components
- Player
- Android game
- Firebase messaging
- Play billing
Connections 24
- Player → Android game: plays turns
- Android game → Worker API: sends requests
- Worker API → Room play: dispatches
- Worker API → V2 room routes: dispatches
- V2 room routes → Player state: reads or updates
- V2 room routes → V2 room play: calls room
- V2 room routes → Entitlements: checks access
- V2 room routes → Room persistence: persists room state
- Worker API → Campaign routes: dispatches
- Campaign routes → Campaign rooms: gets room context
- Campaign routes → V2 room play: calls room
- Friend routes → Friend links: checks friend links
- Safety routes → Safety checks: checks interactions
- Android game → Friend routes: manages friends
- Android game → Safety routes: manages safety
- V2 room routes → Photo delivery: handles photo delivery
- Android game → Transfer routes: transfers photos
- Transfer routes → Transfer service: calls transfer
- Android game → Tester access: redeems code
- Android game → Entitlements: checks purchase access
- Play billing → Android game: reports purchases
- Notification service → Notification storage: stores delivery state
- Firebase messaging → Android messaging: delivers push
- Android messaging → Android game: notifies player