How viralwechaar-creator/manifest-app works
Manifest is a goal-setting and personal-coaching app. Users sign in, describe a goal or check-in, and receive coaching that can update their plan; they then track steps, gratitude, beliefs, and progress. The browser data hook supplies those views and supports offline reads and queued writes. The sampled coach route shows how user context, book guidance, safety checks, and Gemini responses feed stored coaching outcomes. Export is present as an API route, but its UI connection was not shown in the excerpts.
Main entry points: route.ts Coach request handler · useManifestData.ts Manifest data hook · page.tsx App shell · Pages.tsx Coaching and life pages
Components 20
User experience
- App shell
app/page.tsx - Coaching and life pages
components/Pages.tsx - Sign-in
app/login/page.tsx
User data
- Manifest data hook
lib/useManifestData.ts - Offline cache
lib/offlineCache.ts - Domain types
lib/types.ts - Data import
app/api/import/route.ts - Data export
app/api/export/route.ts
Coaching engine
- Coach request handler
app/api/coach/route.ts - Context builder
lib/contextBundle.ts - Life-area classifier
lib/lifeArea.ts - Book knowledge
lib/bookKnowledge.ts - Coach instructions
lib/coachPrompt.ts - Safety checks
lib/safety.ts - Gemini adapter
lib/gemini.ts
Platform services
- Supabase data store
- Browser client
lib/supabaseClient.ts - Server client
lib/supabaseServer.ts - Gemini API
Other components
- User
Connections 25
- User → App shell: uses
app/page.tsx - App shell → Coaching and life pages: renders
app/page.tsx - App shell → Manifest data hook: loads
app/page.tsx - User → Sign-in: signs in
app/login/page.tsx - App shell → Browser client: checks session
app/page.tsx - Coaching and life pages → Manifest data hook: invokes data actions
components/Pages.tsx - Coaching and life pages → Data import: posts backup
components/Pages.tsx - Manifest data hook → Browser client: queries and writes
lib/useManifestData.ts - Manifest data hook → Offline cache: caches and queues
lib/useManifestData.ts - Manifest data hook → Supabase data store: reads and writes
lib/useManifestData.ts - Manifest data hook → Coach request handler: posts messages
lib/useManifestData.ts - Coach request handler → Server client: authenticates user
app/api/coach/route.ts - Coach request handler → Supabase data store: reads and writes coaching data
app/api/coach/route.ts - Coach request handler → Context builder: builds context
app/api/coach/route.ts - Context builder → Life-area classifier: classifies goal
lib/contextBundle.ts - Coach request handler → Book knowledge: renders playbook
app/api/coach/route.ts - Coach request handler → Coach instructions: builds instructions
app/api/coach/route.ts - Coach request handler → Safety checks: checks message
app/api/coach/route.ts - Coach request handler → Gemini adapter: requests response
app/api/coach/route.ts - Gemini adapter → Gemini API: calls
lib/gemini.ts - Sign-in → Browser client: uses
app/login/page.tsx - Data import → Server client: authenticates user
app/api/import/route.ts - Data import → Supabase data store: upserts records
app/api/import/route.ts - Data export → Server client: authenticates user
app/api/export/route.ts - Data export → Supabase data store: reads records
app/api/export/route.ts