Newsletter Publishing Platform
Content & Social · React + Node (Express) · 9 @molecule/* packages
Substack/beehiiv-like newsletter publishing with issues, subscriber management, open/click analytics, and paid tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (19)
- About
/about - Dashboard
/dashboard(signed in) - ForgotPassword
/forgot-password - Help
/help - IssueDetail
/issues/:id/detail(signed in) - IssueEditor
/issues/new(signed in) - Issues
/issues(signed in) - Landing
/ - Login
/login - PlanUpdated
/plan-updated(signed in) - Pricing
/pricing - Privacy
/privacy - PublicIssue
/issues/:id - ResetPassword
/reset-password - Settings
/settings(signed in) - Signup
/signup - Subscribers
/subscribers(signed in) - Terms
/terms - Unsubscribe
/unsubscribe/:token
Data model (6 tables)
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- subscribers — id, email, status, tier, source, token, subscribed_at, created_at, …
- issues — id, author_id, user_id, subject, preview_text, body_md, status, publish_at, …
- sends — id, issue_id, subscriber_id, sent_at, opened_at, clicked_at
- issue_stats — id, issue_id, delivered, opened, clicked, updated_at
- publication_settings — id, publication_name, from_name, created_at, updated_at
API (10 handlers)
- \_deliver
api/src/handlers/_deliver.ts - \_scheduled
api/src/handlers/_scheduled.ts - \_seed
api/src/handlers/_seed.ts - \_seed-helpers
api/src/handlers/_seed-helpers.ts - feed
api/src/handlers/feed.ts - issues
api/src/handlers/issues.ts - profile
api/src/handlers/profile.ts - settings
api/src/handlers/settings.ts - stats
api/src/handlers/stats.ts - subscribers
api/src/handlers/subscribers.ts
Subscription tiers
free / pro / team — gated by: maxIssues, maxSubscribers, canScheduleIssues, advancedAnalytics, paidTiers, canExport
Built from 9 @molecule/* packages
Required secrets
DATABASE_URLPostgreSQL connection stringSTRIPE_SECRET_KEYStripe secret API key (sk_test_... in test mode)STRIPE_WEBHOOK_SECRETStripe webhook signing secret (whsec_...)
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing