Payroll Manager
Finance · React + Node (Express) · 17 @molecule/* packages
Gusto-like payroll management with employees, pay runs, tax calculations, and compliance reports — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (19)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Employees
/employees(signed in) - EmployeeDetail
/employees/:id(signed in) - PayRuns
/pay-runs(signed in) - RunPayroll
/run-payroll(signed in) - PayStub
/pay-stub/:id(signed in) - TaxCenter
/taxes(signed in) - Reports
/reports(signed in) - Settings
/settings(signed in) - PayRunDetail
/pay-runs/:id(signed in) - AuditLog
/audit-log(signed in) - Notifications
/notifications(signed in) - Billing
/settings/billing(signed in) - Profile
/profile(signed in)
Data model (11 tables)
- employees — id, user_id, first_name, last_name, email, title, department, salary, …
- pay_runs — id, user_id, pay_period_start, pay_period_end, pay_date, employee_count, total_gross, total_taxes, …
- pay_stubs — id, user_id, pay_run_id, employee_id, employee_name, gross, federal_tax, state_tax, …
- deductions — id, user_id, employee_id, name, type, amount, is_percentage, is_pretax, …
- tax_brackets — id, year, filing_status, min_income, max_income, rate, created_at
- tax_withholdings — id, user_id, employee_id, federal_allowances, state_allowances, additional_withholding, exempt, created_at, …
- audit_log — id, actor, action, resource, resource_id, details, ip, user_agent, …
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- notifications — id, user_id, category, title, body, href, unread, created_at
- company_settings — id, user_id, legal_name, ein, address, fiscal_year, cadence, cycle_end_day, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
API (11 handlers)
- \_seed
api/src/handlers/_seed.ts - audit-log
api/src/handlers/audit-log.ts - company-settings
api/src/handlers/company-settings.ts - deductions
api/src/handlers/deductions.ts - employees
api/src/handlers/employees.ts - notifications
api/src/handlers/notifications.ts - pay-runs
api/src/handlers/pay-runs.ts - pay-stubs
api/src/handlers/pay-stubs.ts - reports
api/src/handlers/reports.ts - taxes
api/src/handlers/taxes.ts - users-2fa
api/src/handlers/users-2fa.ts
Subscription tiers
free / pro / team — gated by: maxDeductions, maxEmployees, maxPayRuns, maxTaxes, advancedFeatures, canExport, retentionDays
Built from 17 @molecule/* packages
@molecule/api-audit-database@molecule/api-cron-node-cron@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-encryption-aes@molecule/api-entitlements@molecule/api-import-export-csv@molecule/api-payments-stripe@molecule/api-permissions-custom@molecule/api-reporting-database@molecule/api-resource-payment@molecule/api-resource-user@molecule/app-billing-react@molecule/app-data-table@molecule/app-date-range-picker@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringENCRYPTION_KEYAES key for encrypting SSN/tax dataMAILGUN_API_KEYMailgun API key for pay stub emails
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing