Built a B2C proof-of-concept platform for a workout clothing rental service, combining short-term rentals, subscriptions, and direct purchases in a single seamless experience.


The incubator wanted to explore a new way to help customers access premium workout clothing without committing to full-price purchases upfront.
Let customers test new products in real life before deciding to purchase—reducing purchase anxiety and returns.
Help frequent travelers pack light while still being able to work out in quality gear at their destination.
Use rentals as a low-friction entry point that drives full-price purchases of new items users fall in love with.
The core experience was a guided "Create Your Kit" flow where users could build a complete workout outfit by mixing and matching items.
Browse and select shoes, shirts, shorts, and accessories by style and size to create the perfect workout kit.
Select rental period, check real-time inventory availability, and get appropriate pricing based on subscription status.
After the rental period, return items or purchase new versions of anything you want to keep.


Users can easily customize their kits and save favorite combinations for future rentals, making reordering fast and simple.
The same kit-building flow reworked into a focused, mobile-optimized UI preserving full functionality in a lighter experience.
As lead full-stack developer, I owned the complete delivery of the platform—from architecture decisions to production deployment.
The platform acted as the coordination hub between multiple systems that didn't natively talk to each other.
// Item state machine for inventory tracking
const itemStates = {
AVAILABLE: 'available',
RESERVED: 'reserved',
OUT_FOR_DELIVERY: 'out_for_delivery',
WITH_CUSTOMER: 'with_customer',
IN_CLEANING: 'in_cleaning',
BLOCKED: 'blocked'
};
// Barcode scan triggers state transition
const processBarcodeScan = async (itemId, scanType) => {
const item = await Item.findById(itemId);
const nextState = getNextState(item.state, scanType);
await item.updateState(nextState);
await syncWithEzRentOut(item);
};Building on an early-stage rental API while keeping operations simple required creative problem-solving.
The EzRentOut API was still relatively immature—not all endpoints behaved as documented, and some needed features didn't exist yet.
Inventory needed to track time-based reservations, cleaning buffers, and delivery windows—but staff needed a process they could follow without technical knowledge.
The POC successfully validated the rental model and provided a foundation for the incubator's continued development.
Delivered a functioning proof-of-concept platform supporting real customers across the full rental and purchase journey.
Provided clean architecture, integrations, and workflows that an internal team could build on as the offering grew.
Real-time inventory, intuitive kit-building, and seamless checkout felt like a modern e-commerce experience despite complex logic.
After validating the concept, transitioned the project to a larger development team with clear technical and product foundation.
When multiple external tools are involved, the custom application has to be the source of truth for business logic and data flow.
A great customer experience depends on giving operations simple, reliable tools to keep the system's data accurate.
Even under POC timelines, investing in clean architecture makes it much easier for future teams to scale and extend.
