← Back to our work

PrestigeKitchens & Bedrooms

I was introduced to Prestige Kitchens & Bedrooms by a previous client, Prestige Barbers, when the business had no website.

The project began by establishing its online presence, then grew into an e-commerce platform supported by systems for processing supplier catalogues and organising more than 70GB of product files.

The products Prestige has prioritised so far are now available on the site, and the platform continues to expand across more ranges. I continue to develop the platform and support the team at Prestige Kitchens & Bedrooms, helping the business grow while learning more about its needs along the way.

Prestige Kitchens website homepage
Validated products
306
Organised supplier images
786
Product features
1,862
Accessory links
1,361

The business challenge

  • Large, inconsistent supplier datasets
  • Thousands of images and documents
  • Inconsistent supplier formats
  • Adding products by hand was slow
  • Products required validation before publication
Supplier data, product images and specifications becoming four validated product cards
WHAT I BUILT
STOREFRONT

A complete route from browsing to buying

The customer-facing website turns the catalogue into a clear journey across discovery, enquiry and purchase.

  • Catalogue browsingCategory pages help customers find the right products.
  • Product pagesImages, features, specifications and compatible accessories stay together.
  • Basket and checkoutCustomers can build an order and pay through secure Stripe checkout.
  • Accounts and ordersCustomers can securely access payments and order history using Google or a one-time email link.
PRODUCT SYSTEM

Product review and publishing

I built internal tools to review and approve supplier information before products appeared on the website.

  • Catalogue reviewProduct details, images, features and accessories can all be checked in one place.
  • Image orderingProduct images can be approved and placed in the correct order.
  • Feature reviewFeatures extracted from supplier PDFs are checked before being added to the product catalogue.
  • Publishing controlsProducts must be reviewed and approved before appearing on the live website.
DATA PIPELINES

Supplier information

I built tools to process large supplier catalogues and flag uncertain information for review.

  • ScrapingSupplier pages were collected automatically, with failed requests retried and progress saved along the way.
  • CleaningUnwanted page text, duplicate information and inconsistent formatting were flagged for review.
  • Product matchingSupplier product codes were used to connect each product with the correct category, images and accessories.
  • ImportingOnce approved, products were added to the catalogue with their images, specifications and links to compatible accessories and related products.
INFRASTRUCTURE

Website infrastructure

The website and its data run on infrastructure designed for a growing business.

  • Cloudflare WorkersRuns the website on Cloudflare’s global network so pages respond quickly. OpenNext adapts the Next.js server code to run inside Cloudflare Workers.
  • D1 and R2D1 holds the product information, while R2 holds the images and documents. Technically, D1 is Cloudflare’s serverless SQL database and R2 is its object-storage service.
  • StripeCreates secure checkout sessions and records payment status.
  • Transactional emailSends sign-in links, customer messages and enquiry notifications.
SYSTEM ARCHITECTURE

Catalogue build pipeline

01 / SOURCESupplier inputsProduct pages · PDFs · Images
02 / PROCESSScrape and structureRetry · Clean · Match · Canonical JSON
03 / CONTROL POINTHuman approvalProducts · Features · Image order · Links
04 / CLOUD CORED1 + R2Catalogue · Relationships · Media
05 / DELIVERYCustomer experienceBrowse · Enquire · Sign in · Buy
Simple order logic
ACCESSBetter AuthGoogle + magic links
PAYMENTSStripeCheckout + signed webhook
MESSAGINGCloudflare EmailSign-in + enquiries
OPERATIONSD1 ordersCustomer + admin history

Some of the biggest
problems I had to solve.

PROBLEM

Prestige was given more than 70GB of product images and documents by its suppliers. They were difficult to organise and match to the right products. Technically, the files arrived in inconsistent folders, formats, sizes and resolutions, so they could not be safely used on the website.

WHAT I CHANGED

I built a repeatable system to prepare and organise every approved image. Processing jobs converted files to WebP, assigned stable Cloudflare R2 locations and recorded their dimensions, supplier product codes and display order.

RESULT

Prestige now has an organised image library connected to the correct products. Each catalogue entry points to consistent, web-ready files stored in R2.

PROBLEM

Important product details were locked inside supplier PDFs and had to be separated before use. Technically, features, physical dimensions, warranty information and repeated page content were mixed within layouts designed for people rather than software.

WHAT I CHANGED

I built a system that extracts possible product features and presents them for human approval. Deterministic PDF parsing handles predictable content. When PDF formats vary, a locally run AI model identifies likely product features within less predictable text. Its output is restricted to a defined structure and sent for human review; neither the parser nor the AI can write directly to the live catalogue.

RESULT

Approved information can be added to the catalogue without blindly trusting automation. Every feature is stored as structured catalogue data with a recorded human decision and audit trail.

PROBLEM

Customers could be left waiting at checkout because the connection to Stripe did not always complete correctly. Technically, Stripe’s default Node.js transport was unreliable inside the Cloudflare Worker runtime and could leave requests open indefinitely.

WHAT I CHANGED

I changed how the website communicates with Stripe and added safeguards so checkout either completes or returns a clear error. The Stripe SDK now uses Fetch transport with explicit timeouts, idempotency keys prevent duplicate checkout sessions, and prices are recalculated securely on the server.

RESULT

Customers receive a more dependable checkout and a clear response when something goes wrong. Duplicate sessions are controlled, and order history is updated only when the payment state has been confirmed.

The system in use.

Prestige Kitchens and Bedrooms sink category page showing stainless steel, packs, granite and ceramic ranges
Prestige product page for a grey granite sink with price, physical dimensions, features and basket controls
Sanitized catalogue administration view showing a supplier product, SKU, price, images, features and accessories
Sanitized PDF feature approval workflow with extracted features, specifications and supplier document
Sanitized side-by-side view of a supplier specification and structured product features
Sanitized product image selector showing image types, selection order and save controls

If you would like to see more about each part, have a look at my LinkedIn

ONGOING PARTNERSHIP

I have worked with Prestige from having no website to the platform they use today, and I continue to develop and support it.

TECHNOLOGY
  • Next.js
  • TypeScript
  • Cloudflare Workers
  • OpenNext
  • D1
  • R2
  • Stripe
  • Better Auth
CONFIDENTIALITY

Selected technical details are shown. Client data, credentials and operational information remain private.

View live website

Let's work together