← All templates

Crowdfunding

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

Kickstarter-like crowdfunding platform with campaigns, reward tiers, progress tracking, and backer updates — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • payments
  • uploads
  • email-notifications
  • image-processing
  • subscriptions

Screens (16)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Discover /discover (signed in)
  • CampaignDetail /campaign/:id (signed in)
  • Dashboard /dashboard (signed in)
  • CampaignEditor /campaign/new (signed in)
  • Backers /backers (signed in)
  • Settings /settings (signed in)
  • MyPledges /my-pledges (signed in)
  • Profile /profile/:userId (signed in)
  • Notifications /notifications (signed in)
  • PledgeCheckout /campaign/:id/pledge (signed in)
  • CampaignManage /campaign/:id/manage (signed in)

Data model (7 tables)

  • campaign_updates — id, campaign_id, author_id, title, body, backers_only, created_at, updated_at
  • campaigns — id, creator_id, title, description, goal_amount, raised_amount, start_date, end_date, …
  • comments — id, resourceType, resourceId, userId, parentId, body, editedAt, createdAt, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
  • pledges — id, campaign_id, tier_id, backer_id, amount, status, payment_id, created_at, …
  • reward_tiers — id, campaign_id, title, description, amount, max_backers, current_backers, estimated_delivery, …

API (8 handlers)

  • \_decorate api/src/handlers/_decorate.ts
  • \_seed api/src/handlers/_seed.ts
  • campaigns api/src/handlers/campaigns.ts
  • notifications api/src/handlers/notifications.ts
  • pledges api/src/handlers/pledges.ts
  • profiles api/src/handlers/profiles.ts
  • tiers api/src/handlers/tiers.ts
  • updates api/src/handlers/updates.ts

Subscription tiers

free / pro / team — gated by: maxCampaigns, maxPledges, maxTiers, maxUpdates, advancedFeatures, canExport, retentionDays

Built from 18 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • STRIPE_SECRET_KEY Stripe secret key for payment processing
  • STRIPE_PUBLISHABLE_KEY Stripe publishable key for client-side
  • STRIPE_WEBHOOK_SECRET Stripe webhook signing secret
  • AWS_ACCESS_KEY_ID AWS access key for S3 uploads
  • AWS_SECRET_ACCESS_KEY AWS secret key for S3 uploads
  • AWS_S3_BUCKET S3 bucket for campaign images and assets
  • MEILISEARCH_API_KEY MeiliSearch API key
  • MAILGUN_API_KEY Mailgun API key for backer notifications
  • MAILGUN_DOMAIN Mailgun sending domain

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