This project is an interactive Workspace Builder web application built as part of the challenge.
The goal is to provide a visual and engaging experience where users can design their ideal workspace setup by selecting desks, chairs, and accessories — and instantly see their configuration update in real time.
The application focuses on clean architecture, modular components, scalable state management, and responsive design.
🔗 Live URL:
https://workspace-builder-rho.vercel.app
- Next.js 16 (App Router)
- TypeScript
- Tailwind CSS
- Zustand (State Management)
- Vercel (Deployment)
- Select from multiple desk options
- Select from multiple chair options
- Add / remove accessories
- Real-time workspace preview updates
- Toggle behavior (click again to unselect)
- Dynamic summary panel with total price calculation
- Responsive 3-column layout:
- Select Your Items
- Design Your Workspace
- Your Setup Summary
- Automatic deployment via GitHub + Vercel
This implementation uses custom SVG-based dummy assets to simulate furniture visuals for:
- Desks
- Chairs
- Accessories (monitor, lamp, plant, laptop, etc.)
These SVG components are dynamically layered inside a preview canvas to mimic a workspace layout.
The SVG approach was chosen to:
- Keep the project lightweight
- Avoid dependency on external image hosting
- Maintain full control over scaling and styling
- Focus on layout logic and state management
The architecture allows seamless replacement of SVG assets with real product images in future iterations.
Global state is handled using Zustand with the following structure:
{ desk: Product | null chair: Product | null accessories: Product[] }
Behavior logic:
- Desk and Chair use toggle selection logic
- Accessories can be added or removed dynamically
- Clear Workspace resets the entire configuration
app/ components/ store/ data/
The project follows a modular architecture separating:
- Routing & layout (App Router)
- UI components
- Global state management
- Data models
- Install dependencies: yarn install
- Run development server: yarn dev
- Build for production: yarn build
- Run production server locally: yarn start
This project is deployed using Vercel.
Every push to the main branch automatically triggers a new deployment.
While the current implementation fulfills the challenge requirements, the following enhancements could elevate the experience:
- Integrate real product images from monis.rent
- Use PNG transparent assets
- Improve visual realism
- Allow repositioning accessories
- Enhance configurator experience
- Integrate WebGL / Three.js
- Create immersive workspace simulation
- Persist configuration
- Generate shareable workspace links
- Add rental period selector
- Calculate total pricing based on duration
- Connect to real product inventory
- Implement checkout flow
This project is structured as a scalable foundation for a future workspace configurator platform.
The modular design makes it easy to:
- Expand product categories
- Replace mock data with real API integration
- Add authentication
- Implement payment processing