How aristostheo/eleven11 works
11:11 is a time-gated anonymous wish-journaling app. Users check the server-synchronized clock, compose a private or anonymously shared wish with an optional photo, and submit during a 90-second 11:11 window; the backend validates the request and enforces the daily limit. Users can then browse shared daily wishes or their own paginated journal. The graph separates client flows, backend operations, and Firebase services. Backend responsibilities share one implementation file; unsampled details are limited to documented capabilities.
Main entry points: firebase.ts Firebase client · compose.tsx Wish composer · index.ts Wish submission · feed.ts Feed client
Components 19
Mobile experience
- Clock gate
apps/mobile/app/index.tsx - Wish composer
apps/mobile/app/compose.tsx - Daily feed
apps/mobile/app/feed.tsx - My wishes
apps/mobile/app/my-wishes.tsx
Client services
- Draft persistence
apps/mobile/src/lib/drafts.ts - Firebase client
apps/mobile/src/lib/firebase.ts - Server clock
apps/mobile/src/utils/useServerClock.ts - Time rules
apps/mobile/src/utils/time.ts - Feed client
apps/mobile/src/lib/feed.ts
Wish backend
- Request validation
functions/src/validation.ts - Posting eligibility
functions/src/index.ts - Wish submission
functions/src/index.ts - Daily feed query
functions/src/index.ts - Personal journal query
functions/src/index.ts - Private image delivery
functions/src/index.ts
Firebase services
- Firestore
- Cloud Storage
- Firebase Auth
Other components
- App user
Connections 31
- App user → Clock gate: checks time
apps/mobile/app/index.tsx - App user → Wish composer: composes wish
README.md - App user → Daily feed: browses feed
README.md - App user → My wishes: views journal
README.md - Clock gate → Server clock: reads time
apps/mobile/app/index.tsx - Clock gate → Time rules: checks window
apps/mobile/app/index.tsx - Wish composer → Server clock: reads time
apps/mobile/app/compose.tsx - Wish composer → Draft persistence: saves draft
apps/mobile/app/compose.tsx - Wish composer → Firebase client: checks and submits
apps/mobile/app/compose.tsx - Daily feed → Feed client: loads pages
apps/mobile/app/feed.tsx - My wishes → Feed client: loads history
README.md - Server clock → Firebase client: gets server time
apps/mobile/src/utils/useServerClock.ts - Feed client → Time rules: derives day
apps/mobile/src/lib/feed.ts - Feed client → Firebase client: requests feed
apps/mobile/src/lib/feed.ts - Firebase client → Firebase Auth: authenticates
apps/mobile/src/lib/firebase.ts - Firebase client → Cloud Storage: uploads photos
apps/mobile/src/lib/firebase.ts - Firebase client → Posting eligibility: calls eligibility
apps/mobile/src/lib/firebase.ts - Firebase client → Wish submission: calls submission
apps/mobile/src/lib/firebase.ts - Firebase client → Daily feed query: calls feed
apps/mobile/src/lib/firebase.ts - Firebase client → Personal journal query: calls journal
apps/mobile/src/lib/firebase.ts - Firebase client → Private image delivery: requests image
apps/mobile/src/lib/firebase.ts - Posting eligibility → Request validation: validates inputs
functions/src/index.ts - Wish submission → Request validation: validates inputs
functions/src/index.ts - Daily feed query → Request validation: validates inputs
functions/src/index.ts - Personal journal query → Request validation: validates inputs
functions/src/index.ts - Posting eligibility → Firestore: checks claims
functions/src/index.ts - Wish submission → Firestore: writes claim and wish
functions/src/index.ts - Daily feed query → Firestore: reads wishes
functions/src/index.ts - Personal journal query → Firestore: reads owned wishes
functions/src/index.ts - Wish submission → Cloud Storage: verifies photo
functions/src/index.ts - Private image delivery → Cloud Storage: serves private image
README.md