Business platforms
Rental software: build or buy? What two custom builds taught us
Buy if a product can run your rate cards, contracts and billing with small changes to how you work. Build only when how you charge or contract is what sets you apart, or the product gap costs you more each month than custom software would.
By itmarkerz Technologies. Updated 30 October 2026.
Where this comes from
We have built two rental platforms for one owner: a heavy-equipment rental system in Qatar, and later a vehicle-rental application in Dubai. Both use a Laravel API, MySQL and a Next.js front end. Most of our work is delivered under NDA, so many projects cannot be named. So this page shares what the systems had to do, and leaves out the client’s name and figures.
We don’t sell a rental product. That means no reason to favour one vendor, and an obvious reason to favour building, so check our reasoning rather than taking it on trust.
The decision table
| Question | Points to buying | Points to building |
|---|---|---|
| How do you charge? | Day, week and month rates that a product can express | Rules a product can only handle with manual overrides |
| How standard are your contracts? | Similar terms for most customers | Negotiated terms that change billing, per customer |
| What do you rent? | One asset type, tracked in a common way | Mixed assets with very different handover and maintenance |
| Where does the spreadsheet live? | Reporting extras only | Core work: availability, invoicing or reconciliation |
| Who else must connect? | Accounting, through a listed integration | In-house systems or local suppliers with no connector |
| Does your process set you apart? | Customers choose you for fleet, price or location | Customers choose you partly for how the service runs |
| Who will look after it? | Nobody; you want it to be the vendor’s problem | You have, or will pay for, someone to own it for years |
| How soon do you need it? | Within weeks | You can scope properly and release in stages |
| How many businesses run on it? | One, with typical operations | Several businesses that could share a core |
Don’t count the columns. One strong answer can decide it. If your billing can’t be expressed in the product without a person fixing invoices each month, that alone may justify custom work, while a long list of minor wishes doesn’t.
The requirements checklist
Use this to brief a vendor, a developer or us. Write your own answer in each row before any demo. If you can’t answer a row, that is worth finding out regardless of what you decide.
| Area | What to specify | What to ask for in a demo |
|---|---|---|
| Asset register | Individual units, classes, specifications, documents and expiry dates | Show one unit’s full history, with an expired document |
| Availability | By unit or by class; time needed for delivery, cleaning and checks | Try to double-book the last available unit |
| Reservations | Provisional and confirmed holds; how long a quote holds a unit | Convert a quote to a contract after its unit was taken |
| Rate cards | Day, week and month rates per class; customer-specific prices | Price a 10-day hire, then explain the calculation |
| Contracts | Terms, extensions, early returns and swaps mid-hire | Extend a live contract and swap the unit |
| Delivery and return | Who moves it, when charges start and stop, proof of each | Return a unit a day late and see what bills |
| Maintenance | Scheduled service, breakdown holds, what happens to the live hire | Put a hired unit into maintenance |
| Deposits | Held or charged, release conditions, deductions | Part-release a deposit after a damage charge |
| Invoicing | Billing cycles, part periods, credit notes, tax | Correct an issued invoice |
| Statements and credit | Customer statements, ageing and credit limits | Block a new hire for a customer over their limit |
| Damage and extras | Inspection records, charges, fuel, mileage and fines where relevant | Add a charge after the contract has closed |
| Utilisation reporting | Your definition: by time, by revenue, by class | Show how the report treats a unit in maintenance |
| Permissions | Who may change a rate, void an invoice or override availability | Log in as a junior user and try |
| Audit trail | Who changed what, and when | Show the record of a rate override |
| Multiple branches or companies | Shared fleet or separate; separate tax and numbering | Move a unit between branches |
| Accounting | Which system, and what passes across | See a real invoice arrive in your accounting system |
| Field use | What drivers and yard staff do on a phone; poor signal | Complete a return on a phone with the network off |
| Data export | Everything, in a usable format, at any time | Export contracts with their line items |
| Migration | Open contracts and balances on day one | Ask how a live contract is brought across |
| Support and change | Who changes what, how fast and at what cost | Ask for the last rule change a customer requested |
Bring a real, awkward contract to the demo, not the vendor’s sample. The hire that was extended twice, changed unit midway and had a disputed damage charge will tell you more than an hour of slides.
What the two builds had in common
On paper, an excavator and a saloon car have little in common. In software, the contract and billing core carried over, and reusing it made the second build faster. The differences sit around that core.
| Heavy equipment | Vehicles | |
|---|---|---|
| Shared core | Contracts and billing | Contracts and billing, reused from the first build |
| Register holds | Specifications and documents | Registration, insurance and service dates |
| Pricing | Rate cards by class; day, week or month | Agreements with mileage and fuel terms |
| Start and end of hire | Delivery and return tracking | Handover and return inspections |
| Unit unavailable when | Maintenance holds | Bookings and availability against the fleet |
| Money beyond the rate | Invoicing and statements | Deposits, and traffic fines and tolls passed through |
| Reports | Utilisation and revenue | Fleet reporting |
The lesson is practical: if you operate more than one rental line, or expect to, the contract and billing model is the part to get right first. Design it around a generic “thing on hire”, and keep what is specific to each asset in its own modules. Had the first system assumed every contract was an equipment contract, there would have been less to reuse.
More detail on the difficult parts is in rate cards, availability and utilisation and deposits, fines and handover.
Comparing the real costs
Comparing a subscription with a build quote is misleading unless both include everything. Take the same period, five years say, and fill in this list for each option:
- To buy: licences per user or per asset as you grow, setup, data migration, paid integrations, and the staff hours you spend each month working around what it can’t do.
- To build: the build, hosting, security and framework updates, a retained developer for changes, and the risk of depending on few people who know the system.
- Either way: training, moving data, and running the old method alongside the new one for a while.
The workaround hours are often what decides it. Ask the person who raises invoices how long the month-end takes, and what they would stop doing with a system that fitted. Be equally honest about custom software: it isn’t finished at launch. For scale, a dedicated senior developer with us costs ~$5,400 for 160 hours a month, invoiced in USD, GBP, EUR or INR, though most systems need much less than a full-time person once they are stable.
The option people forget: buy the core, build the edge
It doesn’t have to be one or the other. A product can run contracts and invoices while a small custom application handles the part that sets you apart: a customer portal, a yard app or a pricing tool. This works when the product has a documented API and lets you export your data. Check both before you rely on them, and find out what the vendor charges for API access.
It fails when the edge needs data the product won’t share in time. If your custom app has to know availability to the minute, and the product only exports overnight, you have two sources of truth. That is the problem you were trying to solve.
Signs you have outgrown what you have
Plenty of rental companies run well on spreadsheets or an old system for years. Replacing either costs time and attention, so look for symptoms that are costing you something rather than a general feeling that it should be better.
- Staff phone the yard to find out whether a unit is free, because the screen can’t be relied on.
- Invoices are checked against contracts by hand, and the checking regularly finds errors.
- Extensions and early returns get billed late, or not at all, and customers find the mistakes first.
- Only one person understands the workbook, and everyone worries about what happens when they take a holiday.
- Nobody can say which equipment classes earn their keep without a day of manual work.
- Opening a second branch or a new asset type would mean copying the whole arrangement.
If two or three of these sound familiar, some system change is probably worth pricing. These symptoms don’t tell you whether to buy or build. They tell you what the new system must fix, so turn them into your first test cases.
How to run a fair product trial
Vendors’ demos are designed to go smoothly, and that isn’t a criticism. To learn whether a product fits, you have to take over the script. A short, structured trial with two or three shortlisted products will tell you far more than comparing feature lists.
- Pick five real contracts, including the worst one from last year. Take out anything confidential.
- Enter them yourselves. Have the people who do this every day try it, not only a manager and a sales engineer.
- Raise the invoices, and compare them to what you actually billed. Every difference is either a bug in your old process or a gap in the product.
- Change something mid-hire. Extend, swap a unit and add a damage charge. Note how many of these need a workaround.
- Pull the report you look at every Monday. If it can’t be produced, ask what it would take, and from whom.
- Export everything, then read the file. Check line items and history are included, not just headers and totals.
Keep a simple list of each workaround, with who would do it and how often. That list is the honest monthly cost of “it nearly fits”, and it goes straight into the comparison above. If the list is short, buy the product and stop reading articles like this one.
Who should be in the room
| Person | What they check | What they often catch |
|---|---|---|
| Whoever raises invoices | Billing rules, credit notes, statements | The exceptions nobody else knows exist |
| Yard or depot lead | Returns, inspections and phone use | Steps that won’t happen in the rain with a driver waiting |
| Sales or hire desk | Quoting speed and availability | How long a phone quote really takes |
| Workshop lead | Maintenance holds and service history | Units shown as free that can’t be sent out |
| Your accountant | What posts to the ledger, and tax | Deposits and fines treated as revenue |
| Owner or director | Reports, cost, and who holds the risk | Whether the system survives losing a key person |
Moving off spreadsheets
Whichever you choose, data is usually the slowest part, and it is your work rather than the supplier’s. Start before the software decision is final, because the clean-up pays off either way.
- Give every unit one identity. A fleet number or serial that appears the same way everywhere. Duplicates surface fast once you try.
- Clean the customer list. The same company under three spellings will split its statement and its credit limit.
- Agree the opening position. Open contracts, deposits held and unpaid invoices need a date on which someone signs them off.
- Decide what history you really need. Bringing over closed contracts costs effort. A read-only archive may do.
Questions for any supplier, vendor or developer
- Who else runs a rate structure like ours on this, and can we speak to them?
- When did you last change a billing rule at a customer’s request, and what did it cost them?
- What happens to our data, and in what format, if we leave?
- Who has access to our customers’ records, and how is that logged?
- How are updates released, and can a change break our customised parts?
- What is not included in this price that most customers end up paying for?
These work on us as well. Good answers are specific and a little uncomfortable, and a supplier who claims nothing has ever gone wrong probably hasn’t been asked properly before.
If you decide to build
- Collect the awkward cases first. Real contracts, real credit notes, real disputes. They are your specification and your tests.
- Start with the register, availability and contracts. Everything else depends on them.
- Keep invoices immutable once issued. Corrections should be credit notes, so the books can always be explained.
- Plan the cutover around open contracts. Decide how a hire that spans the switch is billed before you set a date.
- Release to one branch or asset class first, and run old and new side by side until the invoices agree.
Our rental sector page describes how we approach this work.
The two platforms behind this guide
Equipment register, availability and reservations, rate cards, rental contracts, delivery/return tracking, invoicing and utilisation reporting for a Qatar heavy-equipment rental company. Laravel, MySQL, Next.js.
- Sector
- Construction & equipment rental
- Region
- Qatar
- Stack
- Laravel, MySQL, Next.js
- Engagement
- Custom business application
Vehicle register, bookings, rental agreements with deposits and mileage terms, handover and return checks, fines pass-through, invoicing and fleet reporting for a Dubai vehicle-rental company. Second rental platform for the same owner.
- Sector
- Automotive & rental
- Region
- UAE
- Stack
- Laravel, MySQL, Next.js
- Engagement
- Repeat client, custom business application
Questions
Should a small rental company build its own software?
Usually not. If a product handles your rate structure and contracts with small changes in how you work, buy it. Custom software starts to make sense when the way you charge or run contracts is unusual, or when you've outgrown what products can do and the gap costs you money every month.
How much does custom rental software cost?
We don't publish a fixed price for custom platforms, because it depends on scope. We quote after a first conversation. As a reference for our rates, developers start from $20/h, invoiced in USD, GBP, EUR or INR. Compare any quote with several years of subscription fees and include the running costs of custom software.
Can we start with a product and move to custom later?
Yes, and it is often the sensible order. A year on a product teaches you what you need. Before you sign, check that you can export customers, units, contracts and invoices in a usable format, because that decides how hard the later move will be.
Is this advice biased?
It may be: we build software and don't sell a rental product, so we make money only when you build. Weigh our view with that in mind. The checklist below is useful either way, including for briefing a software vendor.
More on business platforms
- Rate cards, availability and utilisation: the hard parts of rental softwareThe three calculations that decide whether a rental system can be trusted.
- Vehicle rental software: deposits, fines and handoverWhere vehicle hire differs from equipment hire, and what to build for it.
- Custom ERP or off-the-shelf for a wholesaler?How to decide, from a two-year ERP we built, including how old that build is.
- From desktop to web: three generations of one systemA manpower company's .NET application, its Electron rebuild and the web scoping now.
What do you rent, and how do you charge for it?
Send us your rate structure and what you keep in spreadsheets today. We will say whether we think you should build, including when you shouldn't.
We reply within one business day (IST).