← All templates

Time Tracking

Productivity · React + Node (Express) · 15 @molecule/* packages

Toggl-like time tracking with timer, projects, reports, and billing — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • timer
  • projects
  • reports
  • billing
  • subscriptions

Screens (16)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • TimeEntries /entries (signed in)
  • Timesheet /timesheet (signed in)
  • Projects /projects (signed in)
  • ProjectDetail /projects/:id (signed in)
  • Clients /clients (signed in)
  • ClientDetail /clients/:id (signed in)
  • Reports /reports (signed in)
  • Invoices /invoices (signed in)
  • InvoiceDetail /invoices/:id (signed in)
  • Settings /settings (signed in)

Data model (9 tables)

  • clients — id, owner_id, name, email, billing_currency, billing_address, hourly_rate_cents, archived, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • invoice_line_items — id, invoice_id, description, quantity, rate_cents, amount_cents, source_entry_ids, created_at
  • invoices — id, owner_id, client_id, number, issued_at, due_at, currency, subtotal_cents, …
  • projects — id, owner_id, client_id, name, description, color, budget_cents, billable, …
  • resource_tags — id, tagId, resourceType, resourceId, createdAt
  • tags — id, name, slug, color, description, createdAt, updatedAt
  • time_entries — id, owner_id, project_id, description, started_at, ended_at, duration_seconds, is_billable, …
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (5 handlers)

  • clients api/src/handlers/clients.ts
  • entries api/src/handlers/entries.ts
  • invoices api/src/handlers/invoices.ts
  • projects api/src/handlers/projects.ts
  • reports api/src/handlers/reports.ts

Subscription tiers

free / pro / team — gated by: maxClients, maxEntries, maxProjects, advancedFeatures, canExport, retentionDays

Built from 15 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string

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