Alemi Fleet — fleet management SaaS
Challenge
After a successful single-tenant rollout (see the “Fleet management system” case), the product had to be sold to other carriers. Deploying a separate code copy for every small client is impossible to maintain. What was needed: one platform with fully isolated company accounts, a live demo for sales, and a public landing page that collects leads.
What was built
The system was rebuilt into a multi-tenant platform on a shared database: every company sees only its own data, the owner manages accounts from a dedicated panel, and the demo company automatically resets to a clean state every night. Every feature deliberately stays portable to a standalone instance — for PRO clients on their own domain.
Single-DB tenant isolation: a trait with a global scope and automatic company_id assignment across 17 tables
no query ever crosses a company boundary.
Fail-closed access: a suspended or expired company gets a 403; unique/exists rules are manually scoped per company, since validators bypass Eloquent scopes.
The /super owner panel: create a company with its first admin in a minute, suspend, expiry dates, notes and “Log in as” impersonation with a return banner.
Demo = tenant #1: a nightly scoped reset wipes and reseeds only the demo company's rows (GitHub Actions cron)
real companies are untouched.
A public cargo tracking link for the shipper: status timeline, route and delivery photos behind a token URL
no money or personal data, rate-limited.
Truck calendar: a weekly grid of vehicle occupancy, trip bars colored by status, and a free-trucks counter.
PWA: service worker, standalone mode and a driver portal on the phone
drivers advance trip stages and upload document photos.
SEO landing page: JSON-LD, OG markup, sitemap/robots, real product screenshots in browser frames, a lead form delivered to the owner's Telegram, GA4.
Per-company dictionaries: trip statuses and expense categories are seeded as defaults on company creation, cached with a per-company key.
43 tenancy tests cover scoping, validation, cron jobs and file uploads.
Result
One platform serves both the demo and client companies: a new company is created from the owner panel in a minute, with zero deploys. The demo returns to its reference state every night and is always presentation-ready. Pricing model: Start and Standard live on the platform, PRO is a standalone instance on the client's domain deployed from the same codebase.
Tech stack
Have a similar challenge?
Discuss a projectNext case
System development
Fleet management system →