Transformed from .NET Framework 4.0 — now running in production

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

82
API endpoints
25
Screens shipped
31
Business tables
3
User roles

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.

01

Create your tenant

Sign up with your company name. You get an isolated workspace and become the Admin. Invite staff from the Users screen.

02

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.

03

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.

Platform

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
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
Tenant

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
Security first

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
Stack
Modern & open
Backend
FastAPI · Python 3.12
Database
PostgreSQL 16
Frontend
Next.js 14 · React 18
Styling
Tailwind CSS
Auth
JWT + bcrypt
Deploy
Docker · Nginx · LE TLS
Data resident in your region

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

Free

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
Start free

Growth

Popular
$49/mo

100 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
Start 14-day trial

Fleet

Custom

Unlimited cars · unlimited users

  • Everything in Growth
  • Unlimited audit log retention
  • SSO / OIDC (Zitadel, Keycloak)
  • Dedicated database option
  • Phone + SLA
  • Data-migration service
Contact sales

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.