Skip to content

Rj's Cake Shop

A single-counter cake shop in Surrey, given a site that behaves like a menu and a shop window rather than a bakery template with a stock photo of a croissant on it.

Website Development · Restaurants & Hospitality

Rj's Cake Shop homepage screenshot
01The problem

What wasn't working

A custom cake is bought on two questions that a website usually answers badly: what does it look like, and what does it cost at the size I need. Small bakeries tend to answer neither. The work sits on Instagram where it cannot be searched or priced, the site carries a gallery with no prices and no sizes, and the ordering instructions live in a caption. Every enquiry then arrives as a message asking the same two questions, and the shop answers them by hand, one at a time, between orders.

02The build

What we built

A site built around the counter rather than around a checkout. Nine cakes the shop makes often are set out as a real menu, each opening into its own detail view with the flavour build, what can be personalised, and a size and price table with slice counts, so the two questions are answered before anybody messages. A gallery of work from the last week runs in two rows, shot at the shop rather than styled, and the visit section carries the address, the opening hours day by day, a map and the collection instructions, because everything here is picked up in person. There is no cart: with 48 hours' notice and hand lettering on most orders, the order flow is a conversation the site is meant to start well informed rather than replace.

03The visibility

How people find it

A neighbourhood cake shop is found three ways: somebody searching for a birthday cake near them, somebody searching for a specific style they have seen, and somebody asking an assistant where to order one in Surrey. All three need text. A shop whose work only exists as photographs on social media is invisible to every one of them.

  • The menu as text, with prices

    Each cake carries its name, its style, what is in it and what it costs at each size, as content rather than as a caption on an image. That is what lets a search for a flavour, a style or a price range match the page, and what an assistant can quote when asked what a birthday cake costs in Surrey.

  • One view per cake

    The nine regulars each open into their own detail view rather than expanding in place, so a specific cake is something that can be linked to and sent to whoever is paying, instead of a position in a grid.

  • Hours and address structured for the local pack

    Opening hours day by day, the street address, and the fact that everything is collected rather than delivered, all stated in a form Google and an assistant can read and match against the Business Profile. For a single-location shop this is most of the local ranking.

  • The terms of ordering, written down

    Forty-eight hours' notice, pickup only, lettering included. Stating the constraints on the page filters out the orders that were never going to work and stops the shop answering the same two questions by message all week.

Client

Rj's Cake Shop

Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS

Results

Positioning
A menu with prices, not a gallery
Ordering
Sizes, slice counts and lead time stated upfront
Local
Hours, map and collection details as readable content
04The screens

Page by page, as it shipped.

Drag, swipe, or use the arrows. Nothing here is a mockup.

Rj's Cake Shop screen 1

01of 04

05Services used

What went into this project

Want results like this?