← All templates

Internal Announcements

Communication · React + Node (Express) · 18 @molecule/* packages

Company town hall with announcements, acknowledgments, comments, and threading — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • notifications
  • acknowledgments
  • comments
  • subscriptions

Screens (14)

  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Feed /feed (signed in)
  • AnnouncementDetail /announcement/:id (signed in)
  • Composer /compose (signed in)
  • MyAcknowledgments /my-acknowledgments (signed in)
  • Analytics /analytics (signed in)
  • Settings /settings (signed in)
  • Profile /profile (signed in)
  • Notifications /notifications (signed in)
  • Search /search (signed in)
  • TeamDirectory /people (signed in)

Data model (13 tables)

  • acknowledgments — id, announcement_id, user_id, acknowledged_at, ip, created_at, updated_at
  • announcement_audiences — id, announcement_id, kind, target_id, created_at
  • announcement_categories — id, name, color, icon, created_by, user_id, created_at, updated_at
  • announcement_comments — id, announcement_id, parent_id, author_id, user_id, body, edited_at, created_at, …
  • announcements — id, title, body, body_html, category_id, author_id, user_id, audience, …
  • comments — id, resourceType, resourceId, userId, parentId, body, editedAt, createdAt, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • notifications — id, createdAt, updatedAt
  • reactions — id, resourceType, resourceId, userId, type, createdAt, updatedAt
  • resource_tags — id, tagId, resourceType, resourceId, createdAt
  • tags — id, name, slug, color, description, createdAt, updatedAt
  • view_events — id, announcement_id, user_id, viewed_at, created_at
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (4 handlers)

  • announcements api/src/handlers/announcements.ts
  • categories api/src/handlers/categories.ts
  • comments api/src/handlers/comments.ts
  • team api/src/handlers/team.ts

Subscription tiers

free / pro / team — gated by: maxAnnouncements, maxCategories, maxComments, advancedFeatures, canExport, retentionDays

Built from 18 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MAILGUN_API_KEY Mailgun API key for announcement notifications

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