Vue + FastAPI workspace to:
- Fetch Livestorm session overview, chat, questions, and transcript data
- Cache fetched sessions in Postgres by
session_id - Explore each major area in its own routed frontend view
- Run overall analysis, deep analysis, smart recap, and content repurposing workflows
- Persist speaker labels alongside the cached session
Backend:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app:app --reloadFrontend:
cd frontend
npm install
npm run devThis repo is set up to deploy to Render as a single web service:
- FastAPI serves the API routes
- FastAPI also serves the built Vue frontend from
frontend/dist - Render only needs to run the Docker image
Recommended Render settings:
- Environment:
Docker - Build Command: none
- Start Command: none
Docker uses the
CMDfrom Dockerfile
Required environment variables on Render:
OPENAI_API_KEYAPI_AUTH_KEY- the Postgres connection variables used by db.py
- optionally
LS_API_KEYif you want a server-side default in local-style flows
Local Docker test:
docker build -t stormiq .
docker run --rm -p 10000:10000 --env-file .env stormiqThen open:
http://localhost:10000
The FastAPI backend exposes JSON endpoints for:
- loading past event sessions
- fetching and caching a session workspace
- saving speaker labels
- running overall analysis
- running deep analysis
- generating smart recap output
- generating content repurposing bundles
assets/
icons/
frontend/
src/
livestorm_app/
api_logic.py
config.py
db.py
services.py
session_overview.py
prompts/
app.py
README.md
requirements.txt
/session-overview/transcript/chat-questions/analysis/smart-recap/content-repurposing
You can change the analysis instructions without code edits:
prompts/analysis_base_prompt.txtprompts/analysis_chat_prompt.txtprompts/analysis_questions_prompt.txtprompts/analysis_transcript_prompt.txtprompts/analysis_all_sources_prompt.txtprompts/analysis_deep_prompt.txtprompts/content_repurpose_summary_prompt.txtprompts/content_repurpose_email_prompt.txtprompts/content_repurpose_blog_prompt.txtprompts/content_repurpose_social_media_prompt.txt
- Set
OPENAI_API_KEYfor analysis, recap, and content generation. - Set
API_AUTH_KEYfor transcript fetching. - In local dev, Vite proxies
/apiand/brand-assetsto the FastAPI server. - In production, FastAPI serves the built frontend directly from
frontend/dist.