Property Management
Real Estate & Travel · React + Node (Express) · 20 @molecule/* packages
Buildium-like property management with units, tenants, maintenance requests, and accounting — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (17)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Properties
/properties(signed in) - PropertyDetail
/properties/:id(signed in) - Tenants
/tenants(signed in) - Maintenance
/maintenance(signed in) - Finances
/finances(signed in) - Settings
/settings(signed in) - TenantDetail
/tenants/:id(signed in) - MaintenanceDetail
/maintenance/:id(signed in) - Leases
/leases(signed in) - Reports
/reports(signed in) - Notifications
/notifications(signed in)
Data model (13 tables)
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- documents — id, user_id, kind, title, s3_key, parent_table, parent_id, uploaded_at
- expenses — id, user_id, property_id, kind, amount, currency, occurred_at, vendor, …
- leases — id, user_id, unit_id, tenant_id, secondary_tenant_ids, start_date, end_date, monthly_rent, …
- maintenance_messages — id, user_id, maintenance_request_id, author_user_id, body, attachments, created_at
- maintenance_requests — id, user_id, property_id, unit_id, tenant_id, title, description, priority, …
- notifications — id, createdAt, updatedAt
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- properties — id, user_id, name, address, city, state, postal_code, country, …
- rent_invoices — id, user_id, lease_id, tenant_id, period_start, period_end, due_at, amount, …
- rent_payments — id, user_id, rent_invoice_id, tenant_id, lease_id, amount, currency, kind, …
- tenants — id, user_id, property_id, unit_id, first_name, last_name, email, phone, …
- units — id, user_id, property_id, unit_number, bedrooms, bathrooms, sqft, monthly_rent, …
API (11 handlers)
- \_uuid
api/src/handlers/_uuid.ts - dashboard
api/src/handlers/dashboard.ts - finances
api/src/handlers/finances.ts - leases
api/src/handlers/leases.ts - maintenance
api/src/handlers/maintenance.ts - notifications
api/src/handlers/notifications.ts - payments
api/src/handlers/payments.ts - properties
api/src/handlers/properties.ts - reports
api/src/handlers/reports.ts - tenants
api/src/handlers/tenants.ts - units
api/src/handlers/units.ts
Subscription tiers
free / pro / team — gated by: maxLeases, maxMaintenance, maxPayments, maxProperties, maxTenants, maxUnits, advancedFeatures, canExport, retentionDays
Built from 20 @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-payments-stripe@molecule/api-permissions-custom@molecule/api-reporting-database@molecule/api-resource-notification@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-calendar@molecule/app-command-palette@molecule/app-data-table@molecule/app-date-range-picker@molecule/app-file-upload
Required secrets
DATABASE_URLPostgreSQL connection stringSTRIPE_SECRET_KEYStripe API secret keyMAILGUN_API_KEYMailgun API key for notificationsS3_BUCKETS3 bucket for documents and photos
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing