TramlineCustom SaaS · Logistics
Tramline
A real-time dispatch board for multi-depot freight, showing vehicles, drivers and exceptions in one view.
Multi-tenant platforms with the tenancy model, billing logic and permissions defined before design begins, giving your product a stable foundation for growth.
The challenge
Many SaaS platforms run into difficulty when they begin serving multiple customers. A data model designed for a single organisation, or permissions designed for a single type of user, has to be reworked once new customers arrive with different requirements.
Billing is often underestimated. Mid-cycle upgrades, downgrades with credits, failed payments, invoiced annual contracts and per-seat pricing each introduce states that must be handled correctly, and each has financial consequences.
Administration tools are frequently left until late in a project. Without them, routine support tasks such as extending trials, issuing refunds or investigating billing queries are handled through direct database changes, which increases operational risk.
What we deliver
Everything listed below is handed over to you at the end of the engagement.
Shared schema with row-level security, schema per tenant or full isolation, selected against your compliance and scale requirements and documented in full.
Plans, trials, proration, dunning, invoicing and tax handling integrated with Stripe, including failure states and idempotent webhooks.
A permission model enforced at the data layer, with support for custom roles where your customers need them.
User impersonation with an audit trail, subscription overrides, usage inspection, account merges and refunds, built alongside the core product.
Sign-up, workspace creation, invitations, single sign-on where required, and onboarding flows designed to support trial conversion.
Structured logging, error tracking, uptime and latency alerts, and an operational runbook.
Process
Typical timelines. Exact durations are confirmed during the Discover stage.
2–3 weeks
We define tenant isolation, the data model and where authorisation is enforced. The output is an architecture document that belongs to you.
1–2 weeks
Plans, entitlements and the full subscription lifecycle, including proration and failed-payment handling, reviewed with your finance team before development.
10–20 weeks
Two-week sprints, each ending in a working build for your review. Administration tools are developed alongside the product.
2–4 weeks
Load testing, a security review of permission boundaries, monitoring and a documented rollback plan.
Ongoing
Optional retained engineering as your platform and roadmap evolve.
Technology
Application
Server-rendered by default, keeping both public pages and internal dashboards fast.
Data
PostgreSQL row-level security enforces tenant isolation directly in the database.
Infrastructure
Infrastructure is defined as code from the start, so every environment is reproducible.
The tenancy model is one of the first and most consequential decisions in a SaaS build. There are three practical options. In a shared schema, all customers’ data is stored in the same tables, separated by a tenant identifier and protected by row-level security. Schema per tenant gives each customer their own set of tables within one database. Database per tenant gives each customer a separate database.
A shared schema is the right default for most businesses. It is the most cost-effective to operate, migrations run once for all customers, and it scales comfortably to thousands of tenants. Because an authorisation error could expose data across customers, isolation should be enforced in the database itself through row-level security.
Schema per tenant is appropriate when a customer contractually requires separately restorable backups, when regulation requires demonstrable separation, or when a single large tenant would otherwise affect performance for others. It increases operational overhead, as every schema change must be applied to each tenant. Database per tenant extends this further and is typically reserved for enterprise deployments.
The decision should be made at the start of the project. It determines how queries are written, how migrations and backups run and how authorisation is enforced, so changing it later requires significant rework.
Related work
TramlineCustom SaaS · Logistics
A real-time dispatch board for multi-depot freight, showing vehicles, drivers and exceptions in one view.
SabreCustom SaaS · Financial services
A lending console with an application queue, risk scoring and KYC review, designed for high-volume daily use.
AlmanacCustom SaaS · Education
Cohort-based learning with publicly verifiable certificates on completion.
Engagement models
Pricing depends on scope and is provided after an initial consultation.
A defined platform with a set launch date and an approved budget.
Considerations
Changes to scope require a change request. Best suited to projects where requirements are already well defined.
A platform that will continue to evolve, with a flexible long-term roadmap.
Considerations
Requires active product ownership on your side, in exchange for the flexibility to change direction between sprints.
A live platform that needs ongoing engineering support.
Considerations
Hours are capped, so larger pieces of work are scoped and quoted separately.
Questions
Book a free 30-minute scoping call to discuss feasibility, budget and timeline.