Furniture Odyssey
Furniture Odyssey needed two connected systems — a public-facing catalog website to showcase their furniture products and an internal POS dashboard to manage the full sales workflow from quotation to delivery.
We built a landing page with Supabase-backed product listings and a separate sales operations tool handling customer records, quotations, negotiated orders, payments, deliveries, and downloadable PDF documents.

Two systems, one furniture business
Furniture Odyssey runs on two custom-built applications. The catalog website is a public-facing React + Vite landing page backed by Supabase that showcases their furniture products to potential buyers. The POS dashboard is a Next.js internal tool with Prisma and Supabase that handles the entire manual sales workflow — from customer records and quotations to order fulfillment, payments, and delivery scheduling.

Manual sales workflows with no digital backbone
The business was managing customer inquiries, quotations, and orders through manual channels — phone, Viber, Facebook Messenger, and walk-ins. There was no centralized system to track which quotations were approved, which orders had partial payments, or which deliveries were still pending. Product references and pricing lived in scattered spreadsheets and chat threads.
A public storefront built with React and Supabase
The catalog website is a React + TypeScript application built on Vite with Supabase as the backend. It displays the full furniture product line with images, categories, and product details. The site is designed to be the first touchpoint for customers — showcasing the brand and product range before they reach out through manual channels to place an order.

An internal sales operations tool built on Next.js
The POS is a full internal dashboard built with Next.js App Router, Prisma, and Supabase. It covers customer directory records with contact and source context, quotation creation with custom items and negotiated discounts, approved quotation conversion into operational orders, multiple payment tracking per order with downpayment and partial payment types, delivery scheduling with partial fulfillment, and downloadable React-PDF documents including quotations, invoices, receipts, and delivery summaries. Role-based permissions and activity logging keep the team accountable.
