Case Study · Website Rebuild

A stock template, rebuilt into a site that answers the question and books the session.

Liz Middleton has photographed Omaha families for more than twenty years — clients call her “the baby whisperer.” Her website said none of that: a Squarespace template with four menu items, a grid of unlabeled photos, no prices, and no way to book. Liz gave us two words — beautiful and logical — so we rebuilt it in two weeks into a fast, brand-built site where a parent at 11 p.m. can answer their own question and book, all from the page they landed on.

ClientPhotos by Liz — Liz Middleton
SectorNewborn, family & senior photography · Omaha & Bellevue
ScopeBrand, design, build, search, booking & migration
Live atphotosbyliz.net
Photos by Liz website rebuilt by BDX Omaha
The problem

Twenty years of work the site never mentioned.

The old site was a Squarespace template with four menu items — a headline, three testimonials, and a grid of photos with no captions, no prices, and no way to tell a newborn session from a senior session without clicking into each one. Pricing was plain text on a separate page. There was no search, no contact form, and no way for a parent to find out what a session costs or where the studio is. The only calls to action were an email address and a phone number.

193KB
Homepage weight
The template shipped 193 KB of HTML before a single image loaded, with third-party fonts on top.
No prices
The photo grid
Unlabeled photos, no captions, no way to tell one session type from another without clicking in.
None
Structured data
Nothing told Google what the business is or where it operates — no schema at all.
What we built

Beautiful and logical — the two words Liz gave us.

Make the work look as good as it is, and make it effortless for a visitor to answer their own question and book.

01

A design pulled from the brand, not a template

We started with Liz’s 2009 logo — an Illustrator EPS that modern macOS can no longer even render. We traced the path data straight out of the PostScript and rebuilt the mark as a crisp inline SVG. That gave us the whole palette: the script’s warm tan, the “LIZ” wordmark’s dark brown, a cream ground. A soft optical-size serif for headlines, a clean sans for everything else, and one shared card/chip/button system — so the site reads as one considered thing.

02

A session finder instead of a photo grid

Ten session types, each with its own gallery, price, age range, length, location, and what’s included. On the homepage one question — “Who are the photos for?” — narrows the ten cards to the ones that fit: a baby, a kid, a teen, a senior, a couple, a family, a big group, or just you. Every card shows the price up front.

03

Search that understands how people actually ask

Site-wide search (⌘K on desktop, one tap on mobile) runs entirely in the browser on an index built at compile time. It handles synonyms (“infant” finds Newborns, “graduation” finds Seniors), typos (“newbron”, “engagment”), and intent: “how much is a family session” returns a pricing card with the answer, “where is the studio” returns the address, “what to wear” returns the FAQ — each linking to the exact section.

04

Galleries built for 944 photos

Every photo was pulled from the old site, converted to WebP in three sizes, and given a blur placeholder and dominant color so nothing pops in as it loads. A justified-row layout respects each photo’s aspect ratio, images load in batches, and a lightbox adds keyboard and swipe navigation. Cache headers keep repeat visits instant — 944 photos, self-hosted as 2,832 optimized files.

05

Booking that closes the loop

The contact form pre-selects the session a visitor came from. Submitting it fires two emails: a lead alert to Liz with the visitor’s details and a one-click “Reply to [name]” button, and a branded confirmation to the visitor with a card for the session they asked about and links to pricing and galleries. Both are table-based HTML that renders correctly in Gmail, Outlook, and Apple Mail — and if delivery is ever unavailable, the form falls back to opening the visitor’s mail app with the request already written.

06

SEO that describes the business

Every page has its own title, description, and Open Graph image, plus a full schema graph: LocalBusiness with the studio address and service area, a Service entry with pricing for each session type, an FAQ schema on the pricing page, and breadcrumbs. Sitemap and robots files are generated at build. The old site had none of it.

07

A migration that kept the mail

We moved DNS off a legacy MediaTemple zone to a modern, security-hardened edge platform — removing stale Squarespace and old-host records, keeping Liz’s Google Workspace mail completely untouched, and adding the SPF and DMARC records the domain had been missing. Her inbox never dropped a message.

Static-firstEdge-hostedInline-SVG brand markIn-browser search indexSession finder2,832 optimized WebPFull schema graphZero-downtime DNS migration
The results

From a template with a headline to a self-service tool.

A visitor can answer “what does this cost,” “is this right for my kid’s age,” and “where is the studio” without leaving the page — then book in one form. Liz gets a lead she can answer in one click.

193KB→45KB Homepage HTML — ~77% lighter before a single image loads
5→16 Pages — session finder, search, galleries & pricing
944→2,832 Photos self-hosted as optimized WebP (three sizes each)
10 Session types — price, age range, length & location up front
⌘K In-browser search — synonyms, typo tolerance, answer cards
Zero Mail downtime — Google Workspace untouched through the DNS move

Every figure above is measured from the old site and the new build — homepage weight, page count, and the self-hosted photo library.

Is your best work hiding behind a template?

If your site is a pretty grid that doesn’t say what you do, what it costs, or how to book, it’s costing you the customer who was ready. We build fast, brand-true sites that answer the question and close the loop. Let’s talk.