← All templates

Contract Management

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

DocuSign-like contract management with templates, signing, expiry, and alerts — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • contracts
  • templates
  • signing
  • expiry-alerts
  • audit-log
  • subscriptions

Screens (15)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Contracts /contracts (signed in)
  • ContractDetail /contracts/:id (signed in)
  • Templates /templates (signed in)
  • Settings /settings (signed in)
  • NewContract /contracts/new (signed in)
  • TemplateEditor /templates/:id (signed in)
  • Counterparties /counterparties (signed in)
  • Reports /reports (signed in)
  • Notifications /notifications (signed in)

Data model (11 tables)

  • activities — id, actorId, action, resourceType, resourceId, metadata, createdAt
  • activity_seen_status — userId, lastSeenActivityId, updatedAt
  • contract_templates — id, user_id, name, description, content, body_html, category, type, …
  • contract_versions — id, contract_id, user_id, body_html, body_md, generated_from_template_id, generated_at, created_at, …
  • contracts — id, user_id, number, title, description, template_id, counterparty_id, party_name, …
  • counterparties — id, user_id, organization, contact_name, email, phone, address, notes, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • notifications — id, user_id, kind, title, body, contract_id, payload, link, …
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
  • signature_events — id, contract_id, signature_id, user_id, kind, occurred_at, ip, user_agent, …
  • signatures — id, contract_id, user_id, signer_name, signer_email, role, order, status, …

API (8 handlers)

  • contracts api/src/handlers/contracts.ts
  • counterparties api/src/handlers/counterparties.ts
  • notifications api/src/handlers/notifications.ts
  • profile api/src/handlers/profile.ts
  • reports api/src/handlers/reports.ts
  • sign-public api/src/handlers/sign-public.ts
  • signatures api/src/handlers/signatures.ts
  • templates api/src/handlers/templates.ts

Subscription tiers

free / pro / team — gated by: maxContracts, maxSignatures, maxTemplates, advancedFeatures, canExport, retentionDays

Built from 22 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MEILISEARCH_API_KEY MeiliSearch API key
  • S3_BUCKET S3 bucket for contract files
  • MAILGUN_API_KEY Mailgun API key
  • MAILGUN_DOMAIN Mailgun sending domain
  • STRIPE_SECRET_KEY Stripe secret API key (sk_test_... in test mode)
  • STRIPE_WEBHOOK_SECRET Stripe 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