Quick Start¶
This guide will walk you through generating your first blog post from a WhatsApp export in under 5 minutes.
Prerequisites¶
- Python 3.12+
- uv installed
- Google Gemini API key
Step 1: Initialize Your Blog¶
Create a new blog site:
This creates a minimal MkDocs site structure:
| Text Only | |
|---|---|
Step 2: Export Your WhatsApp Chat¶
From your WhatsApp:
- Open the group or individual chat
- Tap the three dots (⋮) → More → Export chat
- Choose Without media (for privacy)
- Save the
.zipfile
Tip
For privacy, we recommend exporting without media. Egregora can enrich URLs and media references using LLMs instead.
Step 3: Set Your API Key¶
| Bash | |
|---|---|
Step 4: Process the Export¶
| Bash | |
|---|---|
This will:
- Parse the WhatsApp export
- Anonymize all names (real names never reach the AI)
- Create conversation windows (default: 1 day per window)
- Generate blog posts using Gemini
Info
The first run may take a few minutes as it:
- Builds the LanceDB vector index (for RAG retrieval)
- Embeds all messages for semantic search
- Generates multiple blog posts
Step 5: Preview Your Blog¶
Launch a local preview server:
| Bash | |
|---|---|
Open http://localhost:8000 in your browser. 🎉
What Just Happened?¶
Egregora processed your chat through multiple stages:
- Ingestion: Parsed WhatsApp
.zip→ structured data in DuckDB - Privacy: Replaced names with UUIDs (e.g.,
john→a3f2b91c) - Enrichment: (Optional) Enriched URLs/media with descriptions
- Knowledge: Built LanceDB RAG index for retrieving similar past posts
- Generation: Gemini generated 0-N blog posts per window
- Publication: Created markdown files in
docs/posts/
Next Steps¶
Customize Your Blog¶
Edit mkdocs.yml to change:
- Site name, description, theme
- Navigation structure
Edit .egregora/config.yml to customize:
- Models and parameters
- RAG settings
- Enrichment behavior
- Pipeline configuration
See Configuration Guide for details.
Generate More Posts¶
Process another export or adjust windowing:
| Bash | |
|---|---|
Enable Enrichment¶
Use LLM to enrich URLs and media:
| Bash | |
|---|---|
Rank Your Content¶
Use ELO comparisons to identify your best posts:
Check Pipeline Runs¶
View pipeline execution history:
Common Options¶
Troubleshooting¶
"No posts were generated"¶
Check that:
- Your chat has enough messages (minimum varies by window size)
- The date range includes your messages
- The window parameters are appropriate for your chat volume
Rate Limiting¶
If you hit API rate limits, Egregora will automatically retry with exponential backoff. You can also configure quota limits in .egregora/config.yml:
LanceDB Permission Issues¶
In restricted environments, ensure .egregora/lancedb/ is writable:
| Bash | |
|---|---|
Learn More¶
- Architecture Overview - Understand the pipeline
- Privacy Model - How anonymization works
- API Reference - Complete code documentation