What you get
Every feature, in depth
Ten building blocks. From ingest to insight to monetization. Configurable end to end. No black boxes.
01 / 10 — Ingestion
Mixed-media ingestion
Drag in any media format. We chunk and index everything into one searchable project.
- Audio: mp3, m4a, wav, ogg
- Video: mp4, mov, webm
- Images: png, jpg, webp
- Text: markdown, YouTube URLs
02 / 10 — Transcription
Timestamped transcription
Audio and video are transcribed by Gemini with per-segment start/end timestamps. Citations later scrub-link to the exact moment.
- Default: gemini:gemini-3.1-flash-lite
- Alternatives: Gemini Pro, Google STT Chirp 2, Ollama Whisper
- ~500-token segments, ~50-token overlap
03 / 10 — OCR
Image OCR with bounding boxes
Images are OCR’d by Gemma 4 with normalized 0–1 coordinates. Citations highlight the exact region in the source image.
- Default: gemini:gemma-4-26b-a4b-it (free tier)
- Alternative: Google Vision Document Text
- Per-region bounding boxes, hover-highlights
04 / 10 — Chat
RAG chat that scrubs to source
Top-K=8 vector search over project chunks. Every citation includes a start time. Click a citation, the source media opens at that moment.
- Streaming responses (SSE)
- Citation manifest with timestamps + page numbers
- In-app player scrubs to cited moment
05 / 10 — Insights
Turn your KB into structured insights
Generate tables, charts, and D3 concept maps from your indexed content — without writing prompts from scratch. Free-form prompts work too. Citations stay inline. Click any cited fact to land on the exact moment in the source video, image region, or document chunk.
- Three generic starters on every project: Glossary, Concept map, FAQ
- Custom prompts produce markdown tables, recharts bar/pie, or D3 force graphs
- Inline citations deep-link to the source — video timestamp, OCR region, doc chunk
- Regenerate anytime as your KB grows
- Project-scoped storage — insights inherit project visibility (private / link / public)
06 / 10 — Research mode
Auto-pull web sources when your KB is thin
When your indexed content does not cover a question well, insight generation transparently augments with authoritative public sources via Google Search grounding. External sources are clearly labeled and never silently mixed with internal citations.
- Auto-trigger: top-3 KB chunk similarity score watched at generation time
- Manual override: 🌐 force web search or 🔒 KB-only toggle on the New Insight form
- External sources rendered in a distinct amber section beneath the insight
- Built on Gemini 2.5+ googleSearch tool — no extra API keys or vendors
07 / 10 — AI config
Configurable AI models
Embeddings, chat, transcription, OCR — all swappable. Set platform defaults via the super-admin UI. Override per project from settings.
- Per-project overrides on Project.embeddingsModel / chatModel / transcriptionModel / ocrModel
- Platform defaults tunable at /admin/platform (no redeploy)
- Fallback to env DEFAULT_*_MODEL if nothing else is set
08 / 10 — Sharing
Project visibility
Three modes per project. Change anytime. Slug renames preserve the project; old slugs 404 immediately.
- Private: owner + invited members only
- Link: anyone with the URL
- Public: discoverable via /p/{slug}
09 / 10 — Collaboration
Member roles
Owner, admin, editor, viewer — invite collaborators by email. Each role has scoped permissions.
- Owner — full control, deletion
- Admin — invite, change settings, retranscribe
- Editor — upload + delete docs
- Viewer — read + chat
10 / 10 — Admin
Super-admin runtime config
Change platform AI defaults without a redeploy. Changes propagate within 60 seconds across all Cloud Run instances.
- 60-second in-process cache
- Resolver order: project → DB → env → throw
- Audited as platform_ai_config_changed