© 2024 Olayimmika

Spacer — Space Management System
Spacer · Frontend
Spacer · Frontend
Spacer — Space Management System
A space-management platform where organizations list and manage hotel, coworking and event spaces — with bookings, dedicated branded booking URLs, invoicing, attendance, and immersive 360° panoramic previews.
Spacer lets organizations list and manage their spaces — hotel rooms, coworking desks, and event venues — and take bookings from their own customers. Each organization gets a dedicated, branded URL where their customers can browse the available spaces and book directly, so the platform works as a white-label front door for every space provider.
Beyond booking, Spacer handles the operational side: spaces can be created and managed, invoices are generated automatically after a booking, and attendance is tracked for each session. A standout feature is the immersive 360° panoramic viewer — built with Panolens.js — that lets customers explore exactly how a space looks before they commit to a booking.
As the frontend engineer, I built the product interface end-to-end in Next.js and Tailwind CSS, with shadcn/ui for the component layer, Zustand for local state, Zod for schema validation, and React Query for server state and caching.
Tech stack
- Next.js
- Tailwind CSS
- shadcn/ui
- Zustand
- Zod
- React Query
- Panolens.js
Key features
360° panoramic space preview
Immersive panoramic views of each space using Panolens.js, so customers can explore how a space actually looks before booking.
Dedicated branded booking URLs
Every organization gets its own URL where customers browse and book that provider’s spaces directly.
Bookings & space management
List and manage hotel rooms, coworking desks and event venues, with availability and full booking workflows.
Automatic invoicing
Invoices are generated automatically once a booking is completed.
Attendance management
Track attendance for booked spaces and sessions.
Type-safe, cached data layer
Zod-validated forms and React Query caching keep the booking flow fast and reliable, with lightweight Zustand state.
Gallery
6 items





Conclusion
The panoramic viewer was the most interesting challenge — balancing a rich, immersive 360° experience against performance meant lazy-loading the heavy Panolens.js assets and keeping the rest of the booking flow snappy with React Query caching and minimal client state.
Visit Website