A survey tool for one person is a classic agent build: question types, skip logic, a public link that works on a phone, a chart per question and a CSV export, all on SQLite. Put it on a small server and you have what most individuals pay SurveyMonkey for, with no response caps or per-response fees. What it can't give you is the Audience panel for buying responses, the benchmarks and AI analysis, team sharing, and a link respondents already recognise.
Before you buildFor one short survey with few responses, SurveyMonkey Basic or Google Forms may be all you need.
Build me a self-hosted survey tool to replace SurveyMonkey. Requirements: - Node.js 22 + TypeScript: a Fastify API and a Vite + React admin. `npm start` serves everything on http://localhost:4900; admin pages need a password from .env. - Storage: better-sqlite3 in ./data/surveys.db (surveys, pages, questions, responses, answers). Uploaded images go to ./data/files/. - Question types: single choice, multiple choice, dropdown, 1-5 rating, NPS 0-10, matrix (rows on one scale), short text, long text, number, date. Required flags, shuffled options, multi-page surveys with a progress bar. - Skip logic: per answer, jump to a page or end the survey. Warn when a rule points backwards or to a page that no longer exists. - Public link /s/:slug that works on a phone, one response per browser (cookie), optional close date and response cap, thank-you page or redirect URL. - Results: a Chart.js bar chart per question with counts and percentages, the average for ratings, the NPS score; filter by any answer and compare two filters side by side. - Export all responses as CSV (one row per respondent) and as XLSX with `exceljs`. - Single user. No accounts for respondents, no telemetry, no third-party scripts. - Out of scope: email invitations, respondent panels, AI text analysis, teams. - README: running it locally, putting it on a VPS behind Caddy for a public link, and backing up the database file.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own SurveyMonkey.
Add email invitations to the survey tool in this folder. Requirements: - Paste or upload a list of emails per survey; each recipient gets a unique link with a token, so responses are tied to them. - Send through SMTP with nodemailer, settings in .env, at most 10 emails a second. - A recipients table shows sent, opened link and completed; one button sends a reminder to everyone who has not completed, at most once a day. - Every email has an unsubscribe link that removes the address from all surveys. - Update the README.
Add theme analysis for text questions to the survey tool in this folder. Requirements: - A Themes button on any short or long text question sends the answers in batches of 100 to the LLM configured in .env (Anthropic or OpenAI key). - Ask for 5-10 themes with a name, a one-line description and the ids of the answers that belong to each; store the result so it is not recomputed. - Show themes with counts and let me click one to read its answers. - Strip email addresses and phone numbers before anything leaves the machine. - Update the README with what is sent to the API.
Add an importer for SurveyMonkey exports to the survey tool in this folder. Requirements: - Accept the XLSX or CSV "individual responses" export. It can have two header rows (question, then answer option); merge them into one. - Show the detected questions and types and let me fix them before importing. - Create a closed survey with those questions and one response per row. - Running the import twice on the same file must not duplicate responses. - Update the README.
Many buyers are companies and researchers who need a vendor procurement has already approved, plus a respondent panel, compliance options and analysis they would never build. Individuals often sign up for one project, and auto-renew is on by default.
Estimate · Free on your own machine; a small VPS for an always-on public link is about $5 a month. No per-response fees. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Basic | $0/user | $0/user | Unlimited surveys, 10 questions per survey, some question types, a limited number of viewable responses per survey (shown after sign-up). |
| Standard Monthly | $149/user | — | 1,000 responses a month, unlimited questions, skip logic, custom design, email invitations, data exports, integrations. |
| Advantage Annual | — | $39/user | 15,000 responses a year; adds premium themes, more logic, payments, statistical significance and AI analysis of answers. |
| Premier Annual | — | $139/user | 40,000 responses a year; adds white-label branding, advanced logic, block randomization, multilingual surveys and crosstabs. |
| Team Advantage | — | $30/user | From 3 users; 50,000 responses a year, shared brand assets, roles and permissions. |
| Team Premier | — | $92/user | From 3 users; 100,000 responses a year and the Premier analysis features. |
| Enterprise | custom | — | From 5 users; custom response limits, SSO, choice of US, Canada or EU data center. |
Basic is free: unlimited surveys of up to 10 questions, a capped number of viewable responses per survey and no data export.
Yes. An AI coding agent such as Claude Code, Codex or Cursor can build a usable personal version in one session with the prompt on this page, running on your own machine.
About $149 a month on the Standard Monthly plan, $1,788 a year (checked 2026-10-13).
SurveyMonkey Audience, the paid panel of respondents; Templates, the question bank and industry benchmarks; AI and thematic analysis of open answers; Email invitations with tracking and reminders; Team sharing, roles and compliance options such as HIPAA. If any of those matter to you, keep paying.
Yes: LimeSurvey (open source), Formbricks (open source), HeyForm (open source).