How singh-kuldeep/wisdombase works
WisdomBase is a mobile-first personal knowledge app: users create accounts, capture notes or import links/files, browse their entries, and ask questions answered from retrieved material. The frontend screens use a shared API client; the FastAPI backend handles ingestion and question answering, with Supabase storage and vector search. The README also documents onboarding, memory profiles, free-tier questions, and user-supplied model keys. Some endpoint internals are unsampled, so those capabilities are shown without speculative implementation links.
Main entry points: main.py Entry ingestion · api.ts API client · rag.py Question answering · home.tsx Capture home
Components 26
Mobile app
- Sign-in and signup
frontend/app/(auth)/sign-in.tsx - Brain-dump onboarding
frontend/app/onboarding/index.tsx - Capture home
frontend/app/(app)/home.tsx - Note editor
frontend/components/NoteEditorModal.tsx - Ask screen
frontend/app/(app)/ask.tsx - Chat messages
frontend/components/ChatMessage.tsx - Browse entries
frontend/app/(app)/browse/index.tsx - Entry detail
frontend/app/(app)/browse/[id].tsx - Settings
frontend/app/(app)/settings.tsx - Auth state
frontend/stores/authStore.ts - Entry state
frontend/stores/entryStore.ts - API client
frontend/lib/api.ts
Knowledge capture
- Link extraction
backend/web_extract.py - File extraction
backend/file_extract.py - Text chunking
backend/chunker.py - Embedding generation
backend/embedder.py
Backend workflows
- Entry ingestion
backend/main.py - Question answering
backend/rag.py - Request authentication
backend/auth.py
Data and providers
- Supabase client
frontend/lib/supabase.ts - Model adapters
backend/llm.py - Database access
backend/db.py - Supabase and pgvector
- Email delivery
backend/email_service.py
Other components
- App user
- LLM providers
Connections 34
- App user → Sign-in and signup: signs up
- App user → Brain-dump onboarding: completes prompts
- App user → Capture home: captures thoughts
- App user → Ask screen: asks questions
- App user → Browse entries: browses notes
- App user → Settings: manages account
- Sign-in and signup → Auth state: uses auth state
frontend/app/(auth)/sign-in.tsx - Auth state → Supabase client: uses client
frontend/stores/authStore.ts - Capture home → Note editor: opens editor
frontend/app/(app)/home.tsx - Note editor → API client: updates entry
frontend/components/NoteEditorModal.tsx - Capture home → API client: calls backend
frontend/app/(app)/home.tsx - Ask screen → API client: submits questions
frontend/app/(app)/ask.tsx - Ask screen → Chat messages: renders replies
frontend/app/(app)/ask.tsx - Browse entries → API client: loads and deletes
frontend/app/(app)/browse/index.tsx - Browse entries → Note editor: opens editor
frontend/app/(app)/browse/index.tsx - Entry detail → API client: loads entry
frontend/app/(app)/browse/[id].tsx - Settings → API client: calls backend
frontend/app/(app)/settings.tsx - Entry state → API client: fetches entries
frontend/stores/entryStore.ts - API client → Supabase client: gets auth token
frontend/lib/api.ts - API client → Entry ingestion: sends API requests
- Entry ingestion → Request authentication: checks user
backend/main.py - Entry ingestion → Link extraction: extracts URLs
backend/main.py - Entry ingestion → File extraction: extracts uploads
backend/main.py - Entry ingestion → Text chunking: chunks entries
backend/main.py - Entry ingestion → Embedding generation: creates vectors
backend/main.py - Entry ingestion → Database access: stores entries
backend/main.py - Question answering → Embedding generation: embeds queries
backend/rag.py - Entry ingestion → Question answering: routes questions
backend/main.py - Question answering → Database access: retrieves chunks
- Question answering → Model adapters: generates answers
- Model adapters → LLM providers: calls model
- Database access → Supabase and pgvector: reads and writes
backend/db.py - Supabase client → Supabase and pgvector: authenticates users
- Entry ingestion → Email delivery: sends account mail
backend/main.py