← All templates

Voting & Polling

Operations & IoT · React + Node (Express) · 14 @molecule/* packages

Mentimeter-like polls, ballots, live results, and voting analytics — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • realtime
  • reporting
  • analytics
  • subscriptions

Screens (18)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • CreatePoll /polls/new (signed in)
  • LiveResults /polls/:id/live (signed in)
  • Ballot /vote/:id (signed in)
  • Analytics /analytics (signed in)
  • Settings /settings (signed in)
  • PollDetail /polls/:id (signed in)
  • Voters /voters (signed in)
  • AudienceQA /polls/:id/qa (signed in)
  • PresenterMode /polls/:id/present (signed in)
  • Notifications /notifications (signed in)
  • Team /team (signed in)
  • Billing /billing (signed in)

Data model (11 tables)

  • audience_question_votes — id, question_id, user_id, voter_id, created_at
  • audience_questions — id, poll_id, user_id, asker_initial, body, status, asked_at, created_at, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • notifications — id, user_id, type, title, body, href, actor, read, …
  • polls — id, user_id, workspace_id, title, description, type, status, options, …
  • questions — id, poll_id, position, kind, prompt, options, required, created_at, …
  • voters — id, user_id, workspace_id, name, email, organization, role, eligibility_token, …
  • votes — id, user_id, poll_id, voter_id, option_index, selected_options, ranked_choices, open_text, …
  • workspace_members — id, workspace_id, user_id, role, invited_at, accepted_at, created_at, updatedAt
  • workspaces — id, user_id, name, slug, created_at, updatedAt
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (9 handlers)

  • \_seed api/src/handlers/_seed.ts
  • audience_questions api/src/handlers/audience_questions.ts
  • notifications api/src/handlers/notifications.ts
  • polls api/src/handlers/polls.ts
  • profile api/src/handlers/profile.ts
  • results api/src/handlers/results.ts
  • team api/src/handlers/team.ts
  • voters api/src/handlers/voters.ts
  • votes api/src/handlers/votes.ts

Subscription tiers

free / pro / team — gated by: maxPolls, maxResults, maxVotes, advancedFeatures, canExport, retentionDays

Built from 14 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing