Crystal Decor
A lead-generating website for a Calgary-based wedding and event decor company, built to turn browsing visitors into booked consultations with a fast, visual, mobile-first experience.

The previous site left couples with no structured way to browse real event work or request a quote for specific services, and inquiries had no dependable path to the owner's inbox, meaning warm leads were likely getting lost before a conversation could even start. The rebuild fixed that: a category-organized gallery lets visitors find inspiration fast, a validated multi-service quote form captures exactly what a couple needs, and every submission now arrives as a formatted email the team can act on immediately. The site went from a static brochure to an active lead-capture tool for the business.
Crystal Decor is a wedding and event decor company serving Calgary and the surrounding Alberta region, offering everything from floral design and ceiling draping to full wedding coordination and catering. Before this project, their online presence couldn't do justice to the work: no way for couples to browse real event photos by category, no structured way to request a quote for specific services, and no reliable channel for inquiries to actually reach the team. For a visually-driven business like event decor, that's a direct hit to bookings, since couples shop with their eyes first, and a weak or clunky website loses them to competitors before a phone call ever happens.
We rebuilt the site from the ground up on Next.js as a fast, image-heavy but performance-conscious experience. The homepage leads with the brand story, service highlights, real project galleries, service-area coverage, and testimonials, the exact trust signals a couple compares before choosing a decorator. A dedicated Projects section organizes hundreds of real event photos into categories (Backdrops, Centerpieces, Table Settings, Ceiling Draping, Entrances, Stairs, Lighting) with a lazy-loaded, paginated gallery and lightbox viewer, so visitors can find inspiration for exactly the element they're planning without wading through an unsorted photo dump. A searchable, filterable Products catalog lets visitors browse rental inventory by category and subcategory.
The core conversion path, the contact/quote form, was rebuilt to actually work end-to-end: client-side and server-side validation, input sanitization against malformed or malicious submissions, a multi-select field so a couple can flag every service they need (flowers, catering, coordination, etc.) in one inquiry, and a Nodemailer-based email pipeline that delivers a formatted request straight to the business inbox with a working reply-to address. That closed the biggest gap in the original setup: inquiries that previously had nowhere reliable to go now land directly in the owner's inbox, ready to follow up on. A floating WhatsApp button gives visitors a lower-friction path to reach out instantly, which matters for a service where couples often want a quick human answer before filling out a form.
The result is a site that matches the quality of the events it's selling: fast-loading galleries, a frictionless quote request, and clear service-area and service-line information, built to convert visual browsing into real consultation bookings.
- Categorized project gallery (Backdrops, Centerpieces, Tables, Ceiling Draping, Entrances, Stairs, Lighting) with lazy loading, pagination, and a full lightbox viewer
- Searchable, filterable product catalog with category/subcategory browsing for rental inventory
- Working quote-request form with multi-select service picker, client- and server-side validation, and input sanitization
- Automated email delivery via Nodemailer with a formatted HTML template and reply-to routing straight to the business inbox
- Service-area showcase highlighting every city covered, plus a floating WhatsApp button for instant, low-friction visitor contact
- Fully responsive, image-optimized layout for a visually-driven audience, patched against known Next.js/React Server Components CVEs



