FastSurvey is an open-source, conversational research platform built with FastHTML, HTMX, SQLite and xAI Grok. An admin describes a research goal in chat, publishes the generated interview guide, and collects adaptive chat-based interviews with structured answers and synthesis.
Live application: fastsurvey.org
The walkthrough below was captured from a live Playwright session using Grok 4.5 for guide design, adaptive interviewing, structured extraction and the evidence answer.
Review individual frames in screenshots/, including the
Grok-generated guide,
adaptive interview,
structured evidence, and
evidence chat.
Regenerate the GIF from the captured PNGs with
scripts/build_demo_gif.sh (requires ImageMagick).
- Chat-first survey design with a structured interview guide
- Public, mobile-first respondent interviews with choice chips
- Adaptive Grok interviewer and deterministic local fallback
- Full transcripts, structured extraction, quality signals and progress
- Survey dashboards, response review, insight chat, CSV and JSON exports
- Local accounts, Google OpenID Connect, signed sessions and public links
- FastSME-style public landing page and
/healthzoperations endpoint
cp .env.example .env
uv venv
uv pip install -r requirements.txt
uv run python web_app.pyOpen http://localhost:5019. Register a local account from the landing page.
Without XAI_API_KEY, the complete product still runs using a transparent,
deterministic demo engine. Add the key to enable Grok.
See .env.example. The important values are:
XAI_API_KEY— enables xAI chat completionsFASTSURVEY_MODEL— defaults togrok-4.5FASTSURVEY_SECRET— stable, random session secret in productionFASTSURVEY_DB— SQLite database pathGOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET,GOOGLE_REDIRECT_URI— optional Google OIDC
uv run pytest -qdocker build -t fastsurvey .
docker run --rm -p 5019:5019 -v fastsurvey-data:/data fastsurveyFastSurvey is part of the open-source FastSME suite.
