All projects

STR8 Rentals.

From finding the right car
to running the fleet.

I designed and built a premium London rental ecosystem: a public website, a native customer app and a staff operations app, connected through one shared platform.

Product design & development · React / TypeScript · SwiftUI · Supabase

STR8 website homepage
Public showroom
STR8 client discovery
Native client app
STR8 availability calendar
Staff operations

16 supplied STR8 screens are shown in full, with the driving-range interaction featured separately below.

A rental is one journey.
The tools should agree.

A premium car creates desire. Renting it introduces questions: which model fits the journey, what is included, which dates work, and what happens next?

Behind that choice, staff are coordinating the same car across bookings, servicing, customer checks and support. I approached STR8 as a connected service, giving each audience a clear interface without losing the information that connects them.

Discover on the website.

Introduce the fleet, explain the offer and turn interest into a useful enquiry.

Plan in the client app.

Explore suitability, review a rental, complete identity steps and get help.

Operate in the admin app.

Keep vehicles, availability, customers and service visible to the team.

01

Public website

Discover the fleet · Start a useful enquiry

The website makes the first choice feel easier.

The public experience starts with the cars. I gave imagery space to create interest, then placed the practical information where customers need it to compare and enquire.

STR8 website homepage
Desktop homepage — introduce the brand and fleet
STR8 fleet discovery
Fleet discovery

Desire, with enough detail to decide.

A fleet should be more than a row of beautiful cars. Category filters, rates, specifications and individual vehicle pages give customers several ways to find something that fits.

The composition moves from the overall offer into a specific vehicle. A repeatable imagery system keeps framing, scale and model details consistent as the catalogue grows.

The conversation starts where the browsing ends.

After selecting a car, dates, rate plan and extras, the website prepares a WhatsApp message with the displayed total. The customer can check the details and send the request themselves.

I wanted that handoff to carry their decisions forward. It creates a useful enquiry for the team; it does not automatically confirm a booking.

STR8 vehicle detail
Vehicle detail

Explain the experience before asking for a commitment.

The experience page explains how the rental fits around the customer, from choosing a vehicle to collection and service. It gives the premium promise practical meaning, so customers know what to expect before starting the conversation.

STR8 the rental experience
The rental experience — what customers can expect

Built around the way people search.

Vehicle, brand and London/location pages create distinct entry points. Generated page HTML, metadata and structured content support that structure; search rankings and traffic gains have not been measured.

02

Native client app

Choose a vehicle · Plan a rental · Get support

The client app turns interest into confidence.

Different customers arrive with different questions. The native experience brings discovery, rental planning and support together, so each decision has a place and the next step remains clear.

STR8 client discovery
Home and discovery
STR8 vehicle detail and range
Vehicle detail
STR8 reservation review
Itemised rental review

Several ways in. One considered journey.

Home, Explore, search, brands and saved cars support different levels of certainty. The detail screen brings specifications, imagery, rates, dates and extras together, then carries the selection into a review of the itinerary and cost.

A range figure becomes something you can explore.

A static mileage specification says little about the customer’s own plans. I made driving range interactive: moving through condition bands updates the estimated miles and a travelling tooltip.

The native interaction uses eight vehicle-specific segments, spring animation and haptic feedback. Fuel type, tank capacity and base range keep the estimate grounded in context.

This is a driving-range estimate. It does not read live vehicle telemetry, calculate a monetary fuel cost or guarantee a particular journey.

STR8 driving-range estimator in the customer app
Interactive driving-range estimator
STR8 reservation hold
Reservation hold

An unfinished rental keeps its place.

A temporary reservation appears on Home with the chosen vehicle, a countdown and a direct route back to the booking review. The database owns expiry, so the interface reflects a time-limited hold.

That makes the unfinished task visible and recoverable. The implemented confirmation path is a payment demonstration; a live payment-provider integration remains separate.

Helpful at the moment of uncertainty.

When a customer needs help choosing, vehicle context carries into the AI concierge. Approved catalogue facts inform the response, and recommendations can appear as actual vehicle cards within the app.

The assistant guides the choice. Booking workflows remain responsible for confirmation, while a separate team conversation gives customers a route to human help.

STR8 ai concierge
AI concierge
STR8 team support
Human support — conversation, context and replies
STR8 identity submission
Guided identity submission — fictional customer details

Necessary steps deserve the same care.

Identity capture, submission and review status make the rental requirement understandable. Uploading a document does not mean approval: authorised staff make that decision. Support stays inside the product, with conversation, read, reaction, typing and attachment workflows represented in the implementation.

03

Native staff app

Run the fleet · Manage bookings · Serve customers

The admin app makes the operation understandable.

Once a customer chooses a car, the work continues. The staff app connects Messages, Cars, Calendar and Settings, putting fleet maintenance, rental context and customer service into the same working environment.

A blocked day is not always a sale.

I separated availability from purchases because they answer different questions. Servicing can make a vehicle unavailable without generating revenue. Staff need to see both what can be rented and what has actually been sold.

STR8 availability calendar
Availability — bookings and operational blocks
STR8 purchase activity
Purchases — confirmed rental activity

Built for the plans that change.

Staff can record an additional purchase or add a manual availability block when a car needs servicing, an MOT or another operational arrangement. Colour-coded entries make the reason visible, keeping real-world changes in the same calendar as customer rentals.

STR8 fleet editor
Fleet editor

Keep the catalogue useful on both sides.

A guided add-car wizard and fleet editor give staff a structured way to maintain vehicle information, rates and media. Shared records support the public showroom and customer app.

Public listing content stays separate from private operational details. The staff record can carry what the business needs without publishing it to customers.

Give service the context it needs.

Customer profiles bring details and rental history together. Identity review has its own queue and controlled document access, rather than treating sensitive files as ordinary message attachments.

The team inbox sits alongside those tools, with active and archived conversations. Staff can continue the service with the relevant customer and fleet context close by.

STR8 customer context
Customer context
STR8 team inbox
Priority Inbox — AI-assisted enquiry prioritisation

Put the conversations that matter first.

A busy inbox mixes serious rental enquiries with routine questions. I built a Priority Inbox around a simple business need: help the team see where their attention can make the biggest difference.

Useful AI needs to make business sense.

The priority view uses AI-assisted prioritisation to surface higher-intent conversations for staff to review. The cost-conscious approach is designed to avoid unnecessary repeat API usage. The aim is straightforward: spend less time sorting the inbox and give promising enquiries attention sooner, while keeping the team responsible for the response.

Make information easier to share.

I designed a three-page financial and operations report, using native charts and PDF rendering. It gives the reporting work a clear hierarchy beyond the everyday screens. The export implementation exists; the report currently uses sample figures and commentary.

One shared foundation keeps the journey connected.

The interfaces have different jobs, but they need to agree on the vehicle, the customer and the rental. That relationship shaped the platform as much as the visual design.

Website

Client app

Admin app

Shared catalogue and controlled services

Vehicles & rates · reservations & bookings · customer accounts · identity review · support · AI

Responsive discovery.

A versioned public feed, cache checks and local catalogue snapshots help the app show the fleet and recover sensibly when a fresh connection is unavailable.

Rules behind the interface.

Holds, bookings and vehicle allocations are separate records. Database workflows enforce expiry and conflicting allocations, rather than relying on which buttons an interface displays.

AI with a defined role.

Authenticated requests, selected catalogue context and bounded history support the concierge. The assistant explains and recommends while commercial decisions stay with the booking and staff workflows.

Start with the service. Refine the details.

The work connects product structure, interface design, native and web development, data modelling and AI integration. Each layer supports a decision the customer or operator needs to make.

Understand the moving parts.

Define the three audiences and their responsibilities, then establish the catalogue and rental data they need to share.

Build the connected journeys.

Develop the visual system and the workflows around discovery, review, recovery, verification and fleet operations.

Give the details a purpose.

Refine contextual handoffs, the range interaction and controlled AI. Prepare consistent imagery and release material around the experience.

A connected implementation.
A foundation to keep building on.

STR8 demonstrates how I connect visual craft with the practical work of a service. The result is a substantial web and native implementation, with the customer experience and staff tools designed around the same rental business.

3 products

Public website, native client app and staff operations app.

8 range segments

A condition-based, vehicle-specific interaction in the native client.

2 calendar views

Availability and purchases answer different staff questions.

3-page report

Native PDF export with illustrative report content.

What the work shows.

A considered fleet experience, recoverable rental decisions, contextual assistance and clearer operational tools. The value comes from connecting those details through the whole service.

What comes next.

Release status and end-to-end service checks still need verification. Live payments, push delivery and commercial performance are separate follow-up work. No conversion, revenue or time-saving results have been supplied.

A premium experience is built in the details.

Helping someone understand a car. Carrying their decisions into the next conversation. Giving the team a clear view of the operation. That is the thinking behind STR8.

Talk about your project

Website, client app and admin screens, with space for the details in between.

16 supplied STR8 screens are shown in full, with the driving-range interaction featured separately below.