← All templates

Helpdesk / Ticketing

Business & SaaS · React + Node (Express) · 21 @molecule/* packages

Zendesk-like support system with tickets, SLA, and knowledge base — including a built-in subscription tier (Free / Pro / Team) backed by Stripe

Open in Molecule

What is inside

  • auth
  • search
  • tickets
  • sla
  • knowledge-base
  • macros
  • email-notifications
  • subscriptions

Screens (10)

  • Dashboard / (signed in)
  • ForgotPassword /forgot-password
  • KnowledgeBase /knowledge-base (signed in)
  • Login /login
  • Reports /reports (signed in)
  • ResetPassword /reset-password
  • Settings /settings (signed in)
  • Signup /signup
  • TicketDetail /tickets/:id (signed in)
  • Tickets /tickets (signed in)

Data model (12 tables)

  • activities — id, actorId, action, resourceType, resourceId, metadata, createdAt
  • activity_seen_status — userId, lastSeenActivityId, updatedAt
  • comments — id, resourceType, resourceId, userId, parentId, body, editedAt, createdAt, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • kb_articles — id, title, body, category, status, author_id, created_at, updated_at, …
  • macros — id, name, description, actions, reply_template, created_by, created_at, updatedAt
  • resource_tags — id, tagId, resourceType, resourceId, createdAt
  • sla_policies — id, name, description, first_response_hours, resolution_hours, priority, active, created_at, …
  • tags — id, name, slug, color, description, createdAt, updatedAt
  • ticket_replies — id, ticket_id, body, is_internal, author_id, created_at, updatedAt
  • tickets — id, subject, description, status, priority, category, assignee_id, requester_id, …
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (6 handlers)

  • \_test api/src/handlers/_test.ts
  • articles api/src/handlers/articles.ts
  • macros api/src/handlers/macros.ts
  • sla api/src/handlers/sla.ts
  • tickets api/src/handlers/tickets.ts
  • users-me api/src/handlers/users-me.ts

Subscription tiers

free / pro / team — gated by: maxOpenTickets, maxAgents, maxKbArticles, maxMacros, slaTracking, customFields, automation, satisfactionSurveys, multiBrand

Built from 21 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MEILISEARCH_API_KEY MeiliSearch API key
  • MAILGUN_API_KEY Mailgun API key for 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