BUSY BUREAU
Websites, Apps & Marketing
Philippines — working with the UK, Europe, US & AU

Retail and rentals · Philippines

A costume shop where you can turn the costume around.

A rental platform for festival costumes and props: a catalogue with real 3D models, per-item pricing, deposits and live availability, a rental cart — and a back office for the shop.

Open the live site ↗(opens in a new tab)Overview

Client
Bahaghari Costume & Props Rental
Sector
Retail and rentals
Where
Philippines
What it is
Rental booking platform with a 3D catalogue
What we did
Product design · Full-stack build · 3D catalogue · Bookings and payments
Built with
Laravel · Inertia · React · React Three Fiber · GLB · Laravel Cloud · Cloudflare
A costume page on Bahaghari Rental, with its 3D model
A costume in the 3D viewer on a phone
Models to rotate and zoom, not just photos
3D
Catalogue filters: category, condition, price
3
Photos across seven gallery albums
200
Rental request for a whole cart
1
01 — Overview
The problem

Renting a costume is a leap of faith. A photo shows one side, in one light, and the customer finds out what the back looks like at pickup. The terms are a puzzle too: a daily rate and a weekly one, a deposit, a minimum and a maximum rental, and stock that is either on the rack or out on loan. Put that on a page builder and most of it ends up in a chat thread instead of on the page.

What we built

A catalogue where costumes come with real 3D models — drag to rotate, scroll to zoom — beside the photos. Every item carries its own daily and weekly rate, refundable deposit, rental limits and live availability, with size, colour, material and a SKU behind it. Customers filter by category, condition and price, put pieces in a rental cart and submit one request for the shop to confirm; their account then holds rental history, payments and return dates. The shop runs inventory, bookings and payments from an admin back office. Laravel and Inertia, with React Three Fiber for the 3D.

02 — The journey

From browsing to bringing it back

The customer side of a rental, start to finish. Browsing and the 3D viewer need no account; booking does.

  1. 01

    Browse

    Filter the catalogue by category, condition and price per day.

  2. 02

    Inspect

    Turn the costume around in 3D or flip to photos; see its rates, deposit and availability.

  3. 03

    Request

    Add pieces to a rental cart, choose dates and submit one request from a customer account.

  4. 04

    Confirm

    The shop reviews the request and confirms the booking.

  5. 05

    Return

    Pick up, wear, bring it back — the account tracks payments and the return date.

03 — Features

What it does

01

Real 3D models

Costumes with a 3D badge open as models you can drag to rotate and scroll to zoom, with the photo set one tap away.

02

Filters that match how people shop

Category, condition from New to Poor, and price per day — so a school on a budget and a theatre company find different racks.

03

Pricing rules per item

A daily and a weekly rate, a refundable deposit and an allowed rental window on every item, shown before it goes in the cart.

04

Live availability

Each item shows how many units are free right now, and an availability calendar shows when a rented piece comes back.

05

One cart, one request

Several costumes and props for one event go in a single rental cart and reach the shop as one request to confirm.

06

Accounts on both sides

Customers see rental history, payment records, balances and return dates; the shop manages inventory, bookings and payments from the admin.

04 — Up close

Anatomy of an item page

Everything a customer needs to decide, on one screen. Select a number to see what it does.

A costume page on Bahaghari Rental, with its 3D model
Point 1 / 8

A real 3D model

A GLB model rendered in the browser, lit by an HDR environment map. Drag to rotate, scroll to zoom, and the reset button puts it back.

05 — Under the hood

The hard parts, and how we solved them

01

3D without a 3D vendor

What made it hard

3D product viewers usually come as a separate service, with its own hosting, licence and upload pipeline — a lot of moving parts for a costume shop.

How we solved it

React Three Fiber renders standard GLB files inside the same Laravel and Inertia app, and the models live on Laravel Cloud object storage beside everything else.

02

Every item rents on its own terms

What made it hard

A sequinned festival costume and a simple folk-dance outfit do not rent on the same terms: different rates, deposits and allowed rental lengths.

How we solved it

Each item stores its own daily and weekly rate, deposit and minimum and maximum duration, and the item page shows all of it before the customer commits to anything.

03

Stock is on the rack or out on loan

What made it hard

Most pieces exist once. If a customer cannot see that a costume is already out, they plan an event around something they cannot have.

How we solved it

Every item shows its free units in real time, and an availability calendar shows when a rented piece is due back — so the customer can pick dates around it or choose another.

04

Cash at the counter, tracked online

What made it hard

The shop takes payment in cash at its own counter, but customers still need to know what they have paid and what is outstanding.

How we solved it

Payments are recorded against each rental, and customers see their payment records and outstanding balance in their account.

06 — Screens

The real thing

Captured from the live product — the site, and the app where there is one. Select any screen to enlarge it.

An item page: the costume as a 3D model on the left, everything needed to book it on the right.
The same costume, dragged round to its side — the view a photo never gives you.
The homepage: festival colour, and two ways in — explore or start renting.
The catalogue, filtered by category, condition and price per day; 3D items carry a badge.
The gallery: 200 photos in seven albums, one per costume set.
The homepage on a phone.
The catalogue filters on a phone.
The 3D viewer on a phone — drag with a thumb to turn it.
07 — Stack

Built with

Laravel
Catalogue, accounts, bookings and payments
Inertia
Pages without a separate API
React
The interface
React Three Fiber
The 3D viewer, with drei
GLB
3D model format
Laravel Cloud
Object storage for the 3D models
Cloudflare
In front of the site

Services used

Where it is now

Live and browsable

Open the catalogue and turn a costume around in 3D — no account needed. Bookings run through customer accounts, and the shop works from the admin back office.

Open the live site ↗(opens in a new tab)

Next case — 05Famcare Clinic and LaboratoryA clinic's front desk, laboratory and records, in one system.Read the case study →
The Famcare Clinic and Laboratory homepage

Your project, on this page next year

Tell us what is not working. We'll tell you what it would take.

Start a project