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
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
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
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-image-sharp@molecule/api-payments-stripe@molecule/api-resource-comment@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-charts@molecule/app-command-palette@molecule/app-data-table@molecule/app-file-upload@molecule/app-markdown@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringSTRIPE_SECRET_KEYStripe secret key for payment processingSTRIPE_PUBLISHABLE_KEYStripe publishable key for client-sideSTRIPE_WEBHOOK_SECRETStripe webhook signing secretAWS_ACCESS_KEY_IDAWS access key for S3 uploadsAWS_SECRET_ACCESS_KEYAWS secret key for S3 uploadsAWS_S3_BUCKETS3 bucket for campaign images and assetsMEILISEARCH_API_KEYMeiliSearch API keyMAILGUN_API_KEYMailgun API key for backer notificationsMAILGUN_DOMAINMailgun sending domain
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing