The Challenge
Thousands of race cars sit idle in Australian workshops. At the same time drivers are hunting for seats, chasing test days, enduro drives and arrive-and-drive packages through word of mouth, private Facebook groups and whoever happens to know whoever. There was no single place to look. Teams with a car sitting on a hoist had no way to put it in front of the people who wanted to drive it. A driver with a budget and a free weekend had no way to find what was actually available.
This one is ours. RaceCarsHire is not a client project, it is a platform we built and run ourselves, which means every decision in it is one we had to live with.
What We Built
A full marketplace, not a brochure site with a contact form bolted on. Two completely different types of user, each with their own account, their own view and their own set of things they are allowed to do.
- For drivers: a searchable board filtered by discipline (GT, formula, tin tops, karting, rally, endurance), by location and by date, with a real profile and a request history
- For teams: a self-service portal where they run a garage of any number of cars, each with its own photos, its own rates and its own availability
- An availability calendar tied to real dates at real circuits, so a driver is looking at when a car is genuinely free rather than sending a hopeful email
- A request flow that runs end to end: a driver requests a car, it lands in that team’s portal, they accept or decline, then the status updates back on the driver’s side
- Photo uploads straight into the portal, so a team can put a car on the board without going through us
- A matchmaking form for people who do not yet know what their budget buys, which deliberately needs no account at all
- Team self-signup so a team can join and publish a car without a human in the loop
The Payment System
This is the part that makes it a business rather than a noticeboard. It is also the part that took the longest to get right.
Drivers pay RaceCarsHire through Stripe. RaceCarsHire then pays the team their cut to the bank details they save in their own portal, which are locked so only that team can ever see them. We earn a percentage of the booking, which means listing a car is free. That was a deliberate call: supply is the whole problem in this market, so charging teams to list would kill the thing that makes the marketplace work.
The publishing rules are enforced in the database itself, not in the page. A new car is forced into draft the moment it is created. Going live is then checked against the plan it claims to be on. We tested that by attacking it from a browser console rather than trusting the buttons, which is how we found that an unrecognised plan code slipped through as free. The rule now has to positively recognise a valid plan or it refuses. Listing what is allowed instead of blocking what is not is the only version of that check that holds up.
Team names get the same treatment. A team name owns that team’s cars, bookings and payouts, so open signup would have let anyone register an existing team’s name and walk off with their listings and their money. The role is granted server-side only after the name is confirmed unclaimed, with a database rule underneath that refuses a duplicate even if the check above it were bypassed.
Under the Hood
- Postgres in Sydney with row level security set to deny by default, so a table is unreachable until a rule explicitly opens it
- Sales enquiries, which carry people’s budgets, have no public read or write access at all and are reachable only through the server
- An admin dashboard for enquiries, registrations and live listings
- Seven automated test suites running 139 checks, covering security, the driver journey, the team journey, multi-car handling and signup. Each one creates its own throwaway team and car then deletes them, so the live board is never touched
- Sponsor placements built into the board and listing pages, with real advertisers running
The Look
Night pit lane. Black, chrome and racing orange pulled from the logo, with listings laid out like a timing board rather than a row of ecommerce product cards. Every photo on the site is an original from real Australian race meetings, no stock.
Where It Is Now
Live at racecarshire.com and in soft launch. The first founding team is on the board with a real car and real dates while more teams onboard. The platform side is done: accounts, portal, calendar, requests, payments and payouts all work today. What we are building now is the supply.
