Blog / Publishing Platform
Content & Social · React + Node (Express) · 24 @molecule/* packages
Medium-like content publishing with rich text, SEO, RSS, drafts, scheduling — including a built-in subscription tier (Free / Pro / Team) backed by Stripe
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (13)
- Analytics
/analytics(signed in) - Comments
/comments(signed in) - Dashboard
/dashboard(signed in) - ForgotPassword
/forgot-password - Landing
/ - Login
/login - PostDetail
/post/:id - PostEditor
/posts/new(signed in) - PostList
/posts(signed in) - ResetPassword
/reset-password - Settings
/settings(signed in) - Signup
/signup - Tags
/tags(signed in)
Data model (8 tables)
- bookmarks — id, userId, resourceType, resourceId, folder, createdAt, updatedAt
- categories — id, name, slug, description, created_at, updatedAt
- comments — id, resourceType, resourceId, userId, parentId, body, editedAt, createdAt, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- posts — id, author_id, user_id, title, slug, content, excerpt, category_id, …
- reactions — id, resourceType, resourceId, userId, type, createdAt, updatedAt
- resource_tags — id, tagId, resourceType, resourceId, createdAt
- tags — id, name, slug, color, description, createdAt, updatedAt
API (10 handlers)
- \_scheduled
api/src/handlers/_scheduled.ts - analytics
api/src/handlers/analytics.ts - categories
api/src/handlers/categories.ts - comments
api/src/handlers/comments.ts - feed
api/src/handlers/feed.ts - interactions
api/src/handlers/interactions.ts - notifications
api/src/handlers/notifications.ts - posts
api/src/handlers/posts.ts - profile
api/src/handlers/profile.ts - tags
api/src/handlers/tags.ts
Subscription tiers
free / pro / team — gated by: maxPosts, maxCommentsPerDay, canSchedulePosts, canUploadImages, uploadStorageMb, aiSummarization, advancedAnalytics, maxTags, canExport
Built from 24 @molecule/* packages
@molecule/api-ai-summarization@molecule/api-ai-summarization-llm@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-bookmark@molecule/api-resource-comment@molecule/api-resource-payment@molecule/api-resource-reaction@molecule/api-resource-tag@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-sitemap-xml@molecule/api-uploads-s3@molecule/app-ai-copilot@molecule/app-billing-react@molecule/app-data-table@molecule/app-kpi-card-react@molecule/app-markdown@molecule/app-shell-layout-react@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeiliSearch API keyS3_BUCKETS3 bucket for image uploadsS3_ACCESS_KEY_IDS3 access keyS3_SECRET_ACCESS_KEYS3 secret key
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing