Construction Management

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

Procore-like construction project management with daily logs, punch lists, RFIs, subcontractors, and per-project photo documentation — including a built-in subscription tier (Free / Pro / Team) backed by Stripe

Open in Molecule

Try it

Opens instantly. Runs on sample data, so changes reset on reload.

Open preview in a new tab ↗View workspace ↗

What is inside

Screens (19)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Pricing /pricing
  • About /about
  • Terms /terms
  • Privacy /privacy
  • Dashboard /dashboard (signed in)
  • Projects /projects (signed in)
  • ProjectDetail /projects/:projectId (signed in)
  • DailyLogs /projects/:projectId/logs (signed in)
  • PunchList /projects/:projectId/punch (signed in)
  • Rfis /projects/:projectId/rfis (signed in)
  • RfiDetail /projects/:projectId/rfis/:rfiId (signed in)
  • Subcontractors /projects/:projectId/subs (signed in)
  • Settings /settings (signed in)
  • PlanUpdated /plan-updated (signed in)

Data model (9 tables)

  • projects — id, owner_id, code, name, description, phase, budget_cents, progress, …
  • daily_logs — id, owner_id, project_id, log_date, weather, crew_count, hours, notes, …
  • log_entries — id, log_id, area, work_performed, created_at, updatedAt
  • punch_items — id, owner_id, project_id, location, severity, description, assignee, status, …
  • rfis — id, owner_id, project_id, number, title, question, originator, drawings_ref, …
  • rfi_responses — id, rfi_id, author, body, is_final, created_at, updatedAt
  • subcontractors — id, owner_id, project_id, trade, company, contact, contract_value_cents, status, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (8 handlers)

  • \_seed api/src/handlers/_seed.ts
  • \_shape api/src/handlers/_shape.ts
  • dailyLogs api/src/handlers/dailyLogs.ts
  • profile api/src/handlers/profile.ts
  • projects api/src/handlers/projects.ts
  • punchItems api/src/handlers/punchItems.ts
  • rfis api/src/handlers/rfis.ts
  • subcontractors api/src/handlers/subcontractors.ts

Subscription tiers

free / pro / team — gated by: maxProjects, maxPunchItems, maxRfis, maxSubcontractors, photoDocumentation, advancedReports, dailyLogRetentionDays, rfiWorkflow

Built from 8 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • 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