Run your entire rental business
from one browser tab.
Bookings, rent agreements, customers, fleet, owner payouts, inspections, receipts, reports and audit log — in one multi-tenant SaaS that your team opens from anywhere. No installers. No Crystal Reports runtime. No SQL Server license.
Free tier · No credit card required · Offline payments supported
Everything your rental business needs — already built.
Full feature parity with the legacy Windows Forms app, rebuilt for the cloud with multi-tenant isolation and role-based access out of the box.
Bookings
Reserve a car for a date range, capture pickup & billing addresses, assign a company driver. Status-filter active / cancelled / complete.
Rent agreements — the core
Convert a booking into a formal rent agreement with live totals, advance/balance split, driver charges, discounts, commissions, damage, and late-fee calculation on return.
Customers
Full KYC: CNIC, guarantor, mobile, address, active status. Individual + corporate customer records.
Guarantors
Separate CRUD for guarantors. Required on every customer — credit back-stop for defaults.
Fleet management
Cars linked to manufacturer, brand, colour, model year and the owner. Active + inspection flags gate rentals automatically.
Car owners
Owner records, contact details, documents. Every rent agreement auto-creates a ledger entry against the car's owner.
Drivers
In-house driver roster with licence tracking, for the with-driver rental flow.
Check-ins & check-outs
Record vehicle movement: mileage, notes, available-for-next-rent flag, handed-to-owner toggle.
Customer receipts
Record every payment against a rent agreement. Running balance recomputes automatically.
Offline payment provision
Cash, cheque and bank-transfer payments are first-class — not bolt-ons. Record the reference, the platform marks it paid.
Owner payouts ledger
Per-owner view of total owed vs paid. Record a payout with method and reference, outstanding balance updates.
Printable reports
Rental activity, customer rent history, owner payouts, receipts breakdown. Cmd/Ctrl + P → clean PDF. No Crystal Reports runtime.
Dashboards & KPIs
Active rents, outstanding balances, fleet utilisation at a glance. Super-admin sees per-tenant usage.
Audit log
Every create / update / delete / payment / plan-change recorded with user and timestamp. Tenant-scoped for admins, global for super-admin.
Master data
Manage manufacturers, brands, colours, model years, checkup types and rent packages from one tabbed screen.
Billing & invoices
Plans (starter / growth / fleet), online subscriptions, and offline invoices for cash-paying customers — platform-extension aware.
Multi-tenant isolation
Every row has a tenant_id. Every query filters by it. Cross-tenant access is impossible by construction.
Super-admin control
Platform-wide tenant management, cross-tenant user list, tenant usage KPIs, one-click tenant impersonation, offline payment recording.
From legacy to live — in three steps.
Migrating off a Windows Forms installer to a cloud SaaS takes less time than rebooting.
Create your tenant
Sign up with your company name. You get an isolated workspace and become the Admin. Invite staff from the Users screen.
Import your data (optional)
Run the one-shot MSSQL → Postgres script against your legacy CarRent SQL Server. Every customer, car, booking, and lookup lands under your tenant, idempotently.
Run the business
Take bookings, convert them to rent agreements, record payments, print receipts, send monthly owner payouts, export reports as PDF. All in the browser.
The revenue flow, done right.
The same business rules your legacy app enforced — now in code you can read, test, and trust.
Automatic totals
total = rent + (driver if is_driver else 0)
+ (damage if is_damage else 0)
- discount
balance = total - advance
late = ceil(hours_late / 24) × daily_rate
[only if return > expected_return]Eligibility, enforced
- Car must be active and not already on rent.
- Customer must be active and have a guarantor.
- Advance cannot exceed total.
- Car flips to `is_on_rent = true` on create, false on return.
- Owner payout ledger auto-created with the advance applied.
Three roles, clean separation.
Fine-grained access control. Right people, right data, always.
Super Admin
Owns the platform. Sees every tenant, manages plans, impersonates when supporting a customer, records offline payments, views the platform-wide audit log.
- All tenants & users
- Platform audit log
- Impersonate any tenant
- Record offline invoice for a tenant
Admin
Owns a single tenant. Configures staff, fleet, customers, rent policies, and sees every number for their company.
- Full CRUD on tenant data
- Subscription & plan control
- Tenant-scoped audit log
- Receipts, payouts, reports
Staff
Day-to-day operators. Take bookings, run check-ins / check-outs, record payments — all within one tenant.
- Create bookings & agreements
- Record check-ins / check-outs
- Record customer receipts
- Read-only reports
Enterprise-grade, startup-simple.
Multi-tenant isolation, strong auth, and a full audit trail — not features you bolt on later.
- Passwords hashed with bcrypt (work factor 12)
- Short-lived JWT access tokens (72 h, configurable)
- Every row is tenant-scoped — cross-tenant access is impossible
- Rate-limited auth endpoints (slowapi)
- Security headers (HSTS, X-Frame-Options, Referrer-Policy)
- Full audit log with user + timestamp for every change
- Swap to enterprise OIDC (Zitadel, Keycloak) without code changes
- TLS via Let's Encrypt with auto-renewal
Self-host on any VPS. Default deploy is a Pakistan-friendly hosting partner with daily backups.
Simple pricing. Offline-friendly.
Start free. Pay online by card, or by cash / bank-transfer — we record offline payments as first-class.
Starter
10 cars · 2 users · 7-day audit
- Bookings & rent agreements
- Customers & cars & owners
- Customer receipts (all methods)
- Owner payouts ledger
- Printable reports (PDF)
- 7-day audit log
- Email support
Growth
Popular100 cars · 10 users · 90-day audit
- Everything in Starter
- Full audit log (90 days)
- Check-ins / check-outs with inspections
- Rent-policy rate cards per vehicle
- Priority email support
- Offline invoicing supported
Fleet
Unlimited cars · unlimited users
- Everything in Growth
- Unlimited audit log retention
- SSO / OIDC (Zitadel, Keycloak)
- Dedicated database option
- Phone + SLA
- Data-migration service
Frequently asked questions
- Can I accept cash and bank-transfer payments?
- Yes, offline payment methods are first-class. When you record a receipt, pick Cash / Cheque / Bank transfer / Card — with an optional reference (cheque #, bank txn id). The platform marks it paid and recomputes the balance.
- How do I migrate from my existing Windows Forms app?
- Ship with a one-shot MSSQL → PostgreSQL migration script (scripts/migrate_mssql_to_pg.py) that connects to your legacy CarRent SQL Server, reads every table, and upserts each row into your new tenant. Re-runs are idempotent.
- What about Crystal Reports?
- Replaced with server-rendered HTML that prints cleanly to PDF via the browser. No Crystal runtime, no per-machine installs. The four core reports (rental activity, customer rents, owner payouts, receipts) ship out of the box.
- Is tenant data really isolated?
- Every business table has a tenant_id column and every query filters by the authenticated user's tenant. Super admin is a distinct role that cannot read tenant business data by accident — they access tenant data only through an explicit Impersonate action that is recorded in the audit log.
- Can the super-admin record an offline payment for a tenant?
- Yes — from the per-tenant page. They enter the amount, period, method and reference; the platform creates an invoice and extends that tenant's paid-through date. Great for enterprise customers paying by bank transfer.
- Does it run on our own servers?
- Absolutely. The whole stack is open-source friendly — FastAPI + PostgreSQL + Next.js — and ships with Dockerfiles and docker-compose. Any VPS, any managed container service, any Kubernetes cluster.
- What about enterprise SSO?
- Built-in auth uses bcrypt + JWT. When you need SSO, the auth layer is isolated so you can swap in Zitadel, Keycloak or another OIDC provider without touching business logic.
- Urdu / Arabic / RTL?
- The frontend is i18n-ready (next-intl pattern). English ships today; Urdu and Arabic are on the roadmap — adding them is a translation drop-in.
Stop maintaining a legacy desktop app.
Your SQL Server, your Crystal Reports, your installer headaches — let your team run the business from a browser. Setup takes minutes. Free tier available now.