← All templates

Employee Onboarding

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

Onboarding portal with task checklists, documents, progress tracking, and welcome flows — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • checklists
  • documents
  • progress-tracking
  • welcome-flow
  • subscriptions

Screens (18)

  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Checklist /checklist (signed in)
  • Documents /documents (signed in)
  • TeamDirectory /team (signed in)
  • Timeline /timeline (signed in)
  • Settings /settings (signed in)
  • Landing /
  • TaskDetail /checklist/:id (signed in)
  • DocumentViewer /documents/:id (signed in)
  • TeamMemberProfile /team/:id (signed in)
  • Notifications /notifications (signed in)
  • Profile /profile (signed in)
  • Training /training (signed in)
  • TrainingModule /training/:id (signed in)

Data model (12 tables)

  • activities — id, actorId, action, resourceType, resourceId, metadata, createdAt
  • activity_seen_status — userId, lastSeenActivityId, updatedAt
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • notifications — id, user_id, kind, title, message, payload, read_at, created_at
  • onboarding_documents — id, user_id, onboarding_id, name, file_url, s3_key, content_type, category, …
  • onboarding_tasks — id, user_id, onboarding_id, title, description, category, assignee_id, due_date, …
  • onboarding_templates — id, user_id, name, role_label, default_duration_days, archived_at, created_at, updated_at
  • onboardings — id, user_id, employee_id, template_id, manager_id, buddy_id, start_date, status, …
  • team_members — id, user_id, person_user_id, name, role, department, manager_user_id, bio, …
  • timeline_milestones — id, user_id, onboarding_id, label, target_at, achieved_at, created_at, updated_at
  • training_modules — id, user_id, title, description, content, video_url, duration_minutes, quiz, …
  • training_progress — id, user_id, onboarding_id, module_id, started_at, completed_at, quiz_score, created_at, …

API (10 handlers)

  • documents api/src/handlers/documents.ts
  • notifications api/src/handlers/notifications.ts
  • onboarding-templates api/src/handlers/onboarding-templates.ts
  • onboardings api/src/handlers/onboardings.ts
  • profile api/src/handlers/profile.ts
  • tasks api/src/handlers/tasks.ts
  • team-members api/src/handlers/team-members.ts
  • timeline-milestones api/src/handlers/timeline-milestones.ts
  • training-modules api/src/handlers/training-modules.ts
  • training-progress api/src/handlers/training-progress.ts

Subscription tiers

free / pro / team — gated by: maxDocuments, maxOnboardings, maxTasks, advancedFeatures, canExport, retentionDays

Built from 14 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • S3_BUCKET S3 bucket for documents
  • MAILGUN_API_KEY Mailgun API key
  • 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