Invoice / Billing
Finance · React + Node (Express) · 15 @molecule/* packages
FreshBooks-like invoicing with clients, invoices, recurring billing, payments, and tax 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 (15)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Invoices
/invoices(signed in) - InvoiceEditor
/invoices/new(signed in) - InvoiceDetail
/invoices/:id(signed in) - Clients
/clients(signed in) - ClientDetail
/clients/:id(signed in) - Payments
/payments(signed in) - Reports
/reports(signed in) - Notifications
/notifications(signed in) - Settings
/settings(signed in)
Data model (7 tables)
- clients — id, user_id, name, email, company, phone, address, tax_id, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- invoice_payments — id, user_id, invoice_id, invoice_number, client_name, amount, method, reference, …
- invoices — id, user_id, client_id, client_name, client_company, invoice_number, items, subtotal, …
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- recurring_invoices — id, user_id, client_id, client_name, label, items, amount, currency, …
- tax_rates — id, user_id, name, rate_pct, region, created_at, updatedAt
API (12 handlers)
- \_decorate
api/src/handlers/_decorate.ts - \_seed
api/src/handlers/_seed.ts - clients
api/src/handlers/clients.ts - dashboard
api/src/handlers/dashboard.ts - exports
api/src/handlers/exports.ts - invoices
api/src/handlers/invoices.ts - notifications
api/src/handlers/notifications.ts - payments
api/src/handlers/payments.ts - profile
api/src/handlers/profile.ts - recurring
api/src/handlers/recurring.ts - reports
api/src/handlers/reports.ts - tax-rates
api/src/handlers/tax-rates.ts
Subscription tiers
free / pro / team — gated by: maxClients, maxInvoices, maxPayments, maxRecurring, advancedFeatures, canExport, retentionDays
Built from 15 @molecule/* packages
@molecule/api-cron-node-cron@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-import-export-csv@molecule/api-middleware-validation@molecule/api-payments-stripe@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 stringSTRIPE_SECRET_KEYStripe secret key for payment processingSTRIPE_PUBLISHABLE_KEYStripe publishable keyMAILGUN_API_KEYMailgun API key for invoice emails
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing