Survey / Feedback Tool
Business & SaaS · React + Node (Express) · 14 @molecule/* packages
Typeform-like survey builder with form creation, responses, and analytics — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (17)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Surveys
/surveys(signed in) - Builder
/surveys/:id/build(signed in) - Responses
/surveys/:id/responses(signed in) - SurveyDetail
/surveys/:id(signed in) - ResponseDetail
/surveys/:id/responses/:responseId(signed in) - Analytics
/surveys/:id/analytics(signed in) - Templates
/templates(signed in) - PublicSurvey
/s/:slug - ThankYou
/s/:slug/thank-you - Settings
/settings(signed in) - Profile
/profile(signed in) - Notifications
/notifications(signed in)
Data model (8 tables)
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- survey_notifications — id, user_id, kind, payload, read_at, created_at, updatedAt
- survey_questions — id, survey_id, position, type, text, description, options, required, …
- survey_responses — id, survey_id, respondent_id, respondent_email, answers, status, score, submitted_at, …
- survey_share_links — id, survey_id, kind, url_token, created_by_user_id, expires_at, max_responses, response_count, …
- survey_templates — id, owner_id, name, description, kind, questions, is_public, created_at, …
- surveys — id, owner_id, title, description, slug, status, settings, response_count, …
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
API (7 handlers)
- notifications
api/src/handlers/notifications.ts - questions
api/src/handlers/questions.ts - reset-password
api/src/handlers/reset-password.ts - responses
api/src/handlers/responses.ts - share-links
api/src/handlers/share-links.ts - surveys
api/src/handlers/surveys.ts - templates
api/src/handlers/templates.ts
Subscription tiers
free / pro / team — gated by: maxQuestions, maxResponses, maxSurveys, advancedFeatures, canExport, retentionDays
Built from 14 @molecule/* packages
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-import-export-csv@molecule/api-payments-stripe@molecule/api-reporting-database@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/app-billing-react@molecule/app-command-palette@molecule/app-data-table@molecule/app-drag-drop
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeiliSearch API key
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing