Case Study

Larj Media Website

Designing and hand-coding a podcast-first agency's website inside Squarespace — built so the founder can run it herself.

Timeline
Jan – Oct 2026 · strategy → build → launch
Collaboration
Tina & Joelle Nole (founders) · Josiah Scott (content strategy) · Carrie Hawthorne (advisor) · Karen Mendoza (coordinator)
My Role
Solo Product Designer · Design System · Front-End Build
Tools
Figma, HTML / CSS / JS, Squarespace 7.1, Claude, Canva
View Larj Media Site ↗
Introduction

Turned a research-backed strategy into a live, client-run website — and wrote the front-end myself.

Larj Media is an award-winning, sister-run podcast agency (since 2011) whose clients include Microsoft and the Gates Foundation. I owned everything after strategy: the visual system, every page layout, and the custom code that makes Squarespace do things it normally can't.

The Challenge

The old site was a bottleneck, not a storefront.

In my first meeting with the founders, they described a site "clogged up" with information. Four problems kept coming up.

01

Wrong leads

It wasn't reaching the clients they wanted: brands, foundations, and comms leaders.

02

Unclear message

Visitors couldn't tell what a "podcast-first creative agency" does, or why it's different.

03

Hard to change

New services had nowhere to live. The business was growing faster than the site.

04

No visual proof

An audio agency still needs to show visual brand craft. The old site hid it.

Key constraint

The founder would maintain the site herself after launch — and she already found Squarespace limiting.

My Role

A bridge between strategy, visual design, and working code.

Started as a UW Communication Leadership engagement with content strategist Josiah Scott, then continued as a paid contract where I led design and build.

Process

Ten months, from sitemap to shipped site.

Design ran in weekly cycles with the founders, content strategist, and advisor. Build ran page by page in Squarespace.

  1. Jan

    Discover

    1:1s with founders, strategist, and advisor. Squarespace data report. Sitemap feedback.

  2. Jan – Feb

    Define the direction

    Brand story Q&A with the founders: "thoughtful, strategic, calm." Mood board in 2 directions.

  3. Feb

    Wireframe

    Three Services page layouts (V1–V3), with written trade-offs for each.

  4. Feb – Mar

    Brand guide + contrast tests

    Every color pairing tested for WCAG contrast before it went into the system.

  5. Mar

    Feedback → pivot

    The first sample design felt "stationary and academic." I rebuilt the look as "Fresh & Bright."

  6. Apr – Sep

    Build

    Paid contract. Every page coded and built in Squarespace, with weekly reviews.

  7. Oct

    Launch + handoff

    Live on larjmedia.com. Editing guides for the founder.

Early UX Calls

Small structure changes, big clarity gains.

In sitemap reviews, I pushed for changes that put proof and action in front of the visitor.

Before"Podcast" page — a list of shows
→
AfterOur Work — shows framed as outcomes
Visitors don't just need to see what Larj made. They need to see what it can do for them.
BeforeAwards tucked in the footer
→
AfterAwards as a homepage section
Awards are the strongest social proof for enterprise buyers. They belong on the homepage, not under the footer.
Before"Contact" at the end of the road
→
AfterClear action CTAs on key pages
Action-focused labels give ready buyers a next step, wherever they are on the page.
Final sitemap: Home, About Us, Services, Our Work, Blog, FAQs, Contact
Sitemap V3. Three rounds with the team: About You moved under About, Jumpstart Workshop under Services, and FAQs became its own page.
Visual Direction

From mood board to a real website direction.

The founders described the brand as "thoughtful, strategic, calm" and "grounded and confident." I turned that into two mood board directions in Larj's existing colors.

Two mood board directions: light gray and a yellow diagonal version
Mood board V1 and V2. Same palette, two energy levels.
Advisor note

"Turn the mood board into directions for the website." So I moved from mood boards to a digital brand guide and real sample sections.

Wireframes

Three layouts for the hardest page: Services.

Services had six offerings, each with a price, audience, and long checklist. I tested how much to show at once, and wrote down the trade-offs for the client.

V1 wireframe: folded cards

V1 · Folded cards

Fast to scan. But "View details" hid what each service includes.

V2 wireframe: row-based layout

V2 · Rows Approved

Room for detail. Slows readers down for high-ticket services.

V3 wireframe: column cards, expanded

V3 · Column cards

Easy to compare prices. But cards got very long and uneven.

Rows support a Z-pattern for reading depth. Cards support an F-pattern for comparison. For services starting at $18K, depth won.

Design Feedback

The feedback that changed the whole look.

My first sample design used the original brand guide: script accents, Cormorant Garamond, and lots of ivory. It was clean, but it didn't feel like Larj.

First Services page sample designs, V1 and V2
Sample design V1 and V2, March. Before the pivot.

"Style feels stationary and academic. Add more colors to brighten it up."

Tina, founder

"Font size 16 minimum. Garamond feels old and traditional. Make Contact Us bigger."

Carrie, advisor
What I changed
  • Cormorant + script→Playfair Display + Nunito Sans
  • Mostly ivory→Red, gold, teal color blocks
  • Small body text→16px minimum, 1.5× line-height
  • Quiet Contact link→Bold CTA button in the nav
Design System

"Fresh & Bright" — bold enough for a creative agency, calm enough to read.

I built the system as a living HTML document first, then mapped it into Squarespace Site Styles so native blocks and custom code look like one product.

Click a swatch to copy its hex.

Type pairing

Aa
Playfair Display

Headlines · 900 / 700 · italic for one key word

Aa
Nunito Sans

Body & UI · 400 / 800 · caps eyebrows

Type scale · desktop

  • H1Impact story32–36px
  • H2Grow your impact24–30px
  • H3Full production20–24px
  • BodyReadable at every size.16px
  • EyebrowOur services12–14px

Color contrast test (WCAG)

Before any color went into the system, I tested each text / background pair. Pairs that failed were banned, and teal was darkened for text.

Aa
Charcoal on gold9.9 Pass
Aa
White on red5.3 Pass
Aa
Gold on white1.4 Banned
Figma board of contrast test results sorted into pass, OK, and fail
Contrast board in Figma. Sorted into ✅ best, 🆗 passes, and 🚫 never use.
16pxMinimum body size
1.5×Minimum line-height (WCAG)
remUnits everywhere, so text scales
6 / 4pxRadius for cards / buttons
Design Craft

Explore wide, then combine the best parts.

For the homepage, I prototyped three directions in code, so the founders could react to real, scrollable pages instead of static frames.

A · Editorial Magazine

Three-column hero, magazine rhythm.

Kept: hero layout

B · Bold & Graphic

Hard borders, color blocks, soundwaves.

Kept: section structure

C · Warm & Organic

Soft forms, warm cream backgrounds.

Kept: warm cream tone
A+B+C

The final homepage combines the editorial hero, the bold section structure, and the warm palette. Then I stripped the hero back to approved copy only — eyebrow, headline, subtitle, one CTA — because every extra element competed with the message.

Since 2011100+ mission-driven episodes
Three core pillarsSocial Justice · Climate · Equity
The teamSister-run since 2011

About cards: craft is in the details

My first stack hid the red card's text behind the gold one. I tested a hover fan-out, but it buried key facts behind an interaction. Final call: re-position all three so every fact is readable at rest.

Service cards: one pattern, many accents

Number + title, description, "Ideal for" + CTA. Each service gets its own accent from the system, so the page scans fast but still feels like one family. Pricing was removed at the client's request, but the structure can bring it back in one line.

Building in HTML / CSS

A hybrid build: native where the founder edits, custom code where the design needs it.

Squarespace templates couldn't produce the design. Moving platforms would leave the client unable to maintain it. So I split the site into two layers.

Native Squarespace

Founder edits by drag-and-drop
Text & headingsImagesGalleriesFormsSite StylesNavigation

Custom Code Blocks

I built them · founder edits only the content config
Service cardsWorkshop scheduleTestimonialsTeam gridSVG visuals
schedule-block.html
/* ==========================================
   EDIT CONTENT HERE ONLY (Tina)
   One { week, title } per row.
   ========================================== */
var schedule = [
  { week: 1, title: "…" },
  { week: 2, title: "Podcast First Planning" },
];
/* ======== END OF EDITABLE ======== */

// Responsive: JS class toggle, not @media
function fit() {
  root.classList.toggle("is-mobile",
    window.innerWidth <= 768);
}
window.addEventListener("resize", fit);
Problem@media queries broke inside Code Blocks.FixA tiny JS check toggles .is-mobile at 768px.
ProblemCustom section backgrounds wouldn't override the theme.FixPaint them with ::before on data-section-id.
ProblemMany cards on one page = style collisions.FixNamespace every component: .lm-card-01.
AI-Assisted Workflow

AI wrote a lot of the code. I set the rules and owned every decision.

Early on, I proposed prototyping in code instead of only in Figma, and the founders agreed. I used Claude as a pair programmer. That let one designer ship what usually takes a designer plus a developer — because I built a process around it.

1

Brief

Approved copy, tokens, page goal

2

Draft

AI builds an HTML prototype

3

Review

Check system, copy, accessibility

4

Ship

Into Squarespace, desktop + mobile

5

Refine

Targeted edits from feedback

MeAI-assisted
Rule 01

Content fidelity

An early AI draft invented stats and copy the client never approved. I caught it and made a hard rule: source copy only, and any UI text I add gets labeled for review.

Rule 02

A written rulebook

Tokens, naming, platform quirks, and "no images in code" live in one conventions doc, so every session starts from the same rules.

Rule 03

Editable by design

Every component keeps content in one config block at the top. Changing words never touches structure.

Rule 04

Verify before save

When a missing comma from a client edit blanked the schedule, I fixed it live and added a step: check the script is valid before every save.

AI made me faster. The design system, the rules, and the review made it good.

Motion Design

Motion with meaning — and the restraint to remove it.

The founders asked for "thoughtful, strategic, calm" — not fancy animation. So I kept motion small and purposeful: things should feel on air, and everything must work without it. Try the demos.

Entrance: staggered rise

Content arrives in reading order, so the eye follows the hierarchy.

property
opacity, translateY 24→0
duration
650ms · ease
stagger
150ms

Ambient: the soundwave

A looping waveform and an "On Air" pulse say "audio" without words.

property
scaleY 1 → 0.35 → 1
duration
1.6s · ease-in-out · loop
offset
100ms per bar
Full Production

Static-first cards

The prototype revealed the accent bar on hover. The client asked to drop hover effects, so it became always visible.

Never hide content behind motion

If a fact only appears on hover, mobile users never see it. Every card works fully at rest.

Keep interaction where it adds info

On Our Work, hovering or tapping a host's photo reveals their name and show.

Host name
Show title
Host name
Show title
Host name
Show title

Respect reduced motion

Motion is enhancement only. With "reduce motion" on, this page falls back to static states.

Impact

Launched on larjmedia.com — and the founder runs it herself.

Bounce rate dropped from 97% to 55%. And success wasn't just a launch — it was the client making changes without calling me.

Edit without code

Copy, schedules, and testimonials live in labeled config blocks. Galleries and new show sections use native Squarespace.

Visual how-to guides

Step-by-step guides with annotated screenshots, like adding a new show while keeping the section color rhythm.

A system that scales

New pages like the Jumpstart Cohort were built from existing components and tokens.

Add: homepage screen recordingSwap this box for an image or video of the live site.
Reflection

What I'd take into my next product.

Design for the maintainer

A beautiful site fails if the client can't update it. "Who edits this next month?" shaped every component.

Constraints spark craft

Squarespace's limits pushed me into a cleaner architecture than a blank canvas would have.

AI needs a system

Speed came from AI. Quality came from tokens, rules, and review.