Dawson Construction

A ground-up rebuild of dawson.com, mine end-to-end — design system, CMS architecture, custom scripts, copy, publishing pipeline. Launched June 2026 and verified page by page.

dawson.com — the Dawson wordmark with the .COM hanging from a crane hook
Year
2026
Services
Web Design · Design System · CMS Architecture
Live link
Visit site
Client
Dawson Construction
Stack
Webflow · Finsweet · GSAP · Viewpoint API
Marketing & Communications Specialist, rebuilding dawson.com end to end: design system, CMS architecture, custom scripts, copy, and the publishing pipeline.

Dawson Construction is a third-generation, employee-owned general contractor — Juneau and Bellingham, est. 1967, 917 projects built. In 2025, leadership put a rebuild of dawson.com on the table. Here is what they asked for, and what shipped.

The ask

Four asks, one idea underneath: make the website sell Dawson the way Dawson sells in a proposal room — before an RFP ever goes out. A digital preemptive proposal.

  • Cinematic headers — construction in motion on every key page, not stock stills.
  • Projects that keep themselves current — finish a job, add it once, see it everywhere.
  • Community, front and center — the giving and the partnerships, not just the buildings.
  • A site that sells like the proposals do — people, proof and numbers doing the persuading.
The answer

Every ask shipped, every one verifiable on the live site — and every bug found along the way is logged below, with its fix.

  • Drone-film heroes on the key pages — silent loops of Dawson's own crews and sites, cut from the company's own footage.
  • A 13-collection CMS behind 119 project pages — one record flows to the index, the filters, the related rails and the sector modules.
  • Dawson Cares, rebuilt around real partnerships — including the 117 projects built with tribal partners.
  • Proposal-grade proof on every scroll — live job feeds, license numbers, real stats, and the audit trail this very page is built from.
Plate 00 — the build at a glance: 119 CMS project pages, 13 collections, 1,624 style classes, 15 of 15 script slots, 9,218-photo library, 120 URLs swept
Plate 00 · measured from the production Webflow project, launch day

Nine weeks separate the first 42-finding punch list from the launch-day sweep that closed the project green. The full breakdown — problem, build, bugs and receipts — follows below.

Problem

By 2025 the old dawson.com was a static WordPress slideshow, two testimonial cards, an empty portfolio page, and a careers PDF.

A contractor with 917 completed projects had a portfolio page with zero projects on it. The About page rendered client-side — invisible to search engines. The homepage carried two contradictory stat blocks 600 pixels apart; one claimed 12,000 projects, and the defensible number is 917.

The clearest measure of how little was there: the entire 2025 homepage ran 2,188 pixels deep. The rebuild runs 6,756 — three times the story on the same URL.

And the rebuild didn't start with me. Leadership first hired a third-party agency — which ran two months past its own timeline with little more to show than a wireframe prototype of the three main pages. I took the project over in-house.

Construction is a craft people want to watch happen. A slideshow can't show that. An empty portfolio page can't either. Here is everything described above, in one screen:

The old dawson.com — WordPress, static slideshow hero, two testimonial cards, thin footer
The old site, captured live before cutover · the whole story in one screen

Solution

From brochure to film — hero video on every key page, a CMS that owns the content, one design system, one accent color, and a pipeline that verifies itself.

The takeover ran as a full studio process, every phase in-house: the whole site re-wireframed from zero in two weeks, then built template-free in Webflow over four months — branding carried down to the favicon, video content planned before it was shot.

Plate 10 — the full process: agency handoff two months late, full wireframe in 2 weeks, template-free build in 4 months, content systems, verified launch June 2026
Plate 10 · the full process, one person · handoff to launch

Research came before pixels: Turner, McCarthy, Wilhelm and Rosendin, reverse-engineered — then rebuilt in Dawson's voice with Dawson's own photography. A ten-dimension audit scored the work-in-progress 48/100 against Hoffman's 87, and that gap became the punch list.

Plate 01 — one system at three widths: 1440, 768 and 390 pixels, rendered live on dawson.com at true relative scale
Plate 01 · production renders at true relative scale · 1440 : 768 : 390

The CMS is the load-bearing change. Thirteen collections; 119 published project pages. Marketing adds a record once and the index, the filters, the related rails and the History modules update themselves.

Plate 03 — the projects index filtering from 119 to 18 live, with the three filter generations documented
Plate 03 · captured on production · the first filter failed silently, the third is on the record

The featured slider is fed by math, not mood.

Plate 04 — the relevancy formula: image quality over 2 plus recency over 5, capped at 10, with 8 protected editorial overrides
Plate 04 · the formula proposes, the editor disposes, the file remembers both

The design system absorbed an archaeology problem — 1,624 accumulated classes — and answered with canonical families: dw-card, dw-btn, dw-shelves, dw-positions. Fifteen competing button classes became two.

Plate 02 — the design system specced: Montserrat type scale, three-color palette with hex values, and the canonical button with hover spec
Plate 02 · values verbatim from the locked specs, May 2026

Careers went from a PDF download to a pipeline. HR posts a requisition in the company's hiring system; it renders on dawson.com without anyone touching the site.

Plate 08 — the careers pipeline: Viewpoint ATS to a 24-field CMS collection to three live careers pages, zero manual steps
Plate 08 · HR posts once · nobody touches the site

Speed was measured, not assumed — production domain, launch day, cold cache.

Plate 06 — launch-day performance timeline: TTFB 251ms, LCP 560ms, DOM ready 1285ms, full load 1900ms, CLS 0.001
Plate 06 · PerformanceObserver + navigation timing · Jul 01 2026

And the brief's first line, kept: the homepage opens on the company's own drone footage — planned, shot-listed, and cut into a silent loop with no controls. Construction in motion. Thirty-six seconds on the production site, the day it launched:

Homepage motion · live filtering · a project gallery · captured Jul 01 2026

Challenges and Learnings

Launch week earned this case study its keep: the worst bugs were found, diagnosed, fixed, and re-verified on production before a single visitor hit them.

The bidding form that mailed no one. The highest-value form on a contractor's site wasn't reaching anyone. Webflow was storing submissions — so the failure was delivery, not wiring. Root cause: a per-form notification override, visible only in the Designer and invisible to the API, silently beating the global setting. Repointed, republished, confirmed.

Three layers of reduced-motion kill switch. One visitor accessibility setting froze the entire site: GSAP's guard, Webflow's IX2 engine and the background-video component all honor prefers-reduced-motion independently. The fix is a scoped matchMedia override in the site head — exercised across 11 pages, then re-verified page by page on dawson.com.

Plate 05 — gallery frame geometry: cover crops a portrait to 26 percent visible; contain plus a blurred self-backdrop shows 100 percent
Plate 05 · fix the class of problem, not the instance you were shown

The totem-pole bug. A project gallery cropped a totem pole photograph to a fifth of its height — the frame geometry was wrong for a six-decade, mixed-orientation archive. The fix took an evening. The standard took the sweep: all 119 galleries verified programmatically on the production domain, every slide.

The rest of the log is below. Every row was re-verified on the live domain. None of it was found by a visitor.

Plate 09 — the bug log: eight bugs with root cause, fix and production verification, from the bidding form to the silent filter
Plate 09 · the bug log · bug, root cause, fix, verified
Plate 07 — five audits in nine weeks: 42-item punch list, 60+ findings, 48/100 vs six peers, marketing-director review, production sweep
Plate 07 · every audit exists as a dated file in the project archive
Plate 11 — three times the site: 2,188px in 2025 versus 6,756px in 2026, page depth at true relative scale
No items found.

Campaign Highlights

Movement, delivered

The hero is a film now

Leadership asked for movement, so the static slideshow became film. The new hero is silent drone footage of a Dawson tower crane at work, captured by our own team and cut for fast load and silent autoplay. It plays here exactly as it runs on the live site. The same motion language now carries through the whole build: GSAP scroll reveals, Webflow Interactions, hover states, and carousels that move because the company finally does. At launch the motion system survived its hardest test — a visitor accessibility setting that silently disabled every animation on the site through three separate layers of the stack. The fix and the three-layer diagnosis live in the challenges section below; the point is that the film kept playing.

The research

Benchmarked against the giants

Before touching a pixel I studied the national firms leadership wanted to stand beside, and reverse-engineered what made each site work. Turner set the bar for careers architecture: hero, culture proof, clear role pathways. McCarthy showed how sector landing pages turn a portfolio into a sales tool. Wilhelm's one-line filter bar became the model for browsing the project archive. Rosendin's footer and publication patterns shaped the site-wide chrome. Every benchmark was then rebuilt in Dawson's voice with Dawson's own photography. Borrowed discipline, original skin. The same discipline got a scoreboard: a ten-dimension competitive audit scored the work-in-progress 48/100 against Hoffman's 87 — and the gap became the punch list that the next six weeks worked through, item by item, on the record.

The research — four national GCs reverse-engineered: Turner, McCarthy, Wilhelm, Rosendin
Before and after — real captures one year apart: 2025 WordPress versus 2026 Webflow
The design system — 87 elements unified: 4 class families, 5 production scripts, 1 footer component, 0 emdashes
Arrow Icon
Arrow Icon
Project gallery on production after the portrait fix — Sealaska Heritage Arts Campus
Craft under the hood

The totem-pole bug, and why all 119 galleries got audited

Midway through launch week, a project gallery cropped a totem pole photograph down to a fifth of its height. The gallery frame ran object-fit: cover in a fixed-height, full-width slider — perfect for drone landscapes, wrong for portrait photography, and a construction archive spanning six decades contains plenty of both. The fix pairs object-fit: contain (applied inline per image, because Webflow's generated stylesheet beats custom !important rules) with a blurred, full-bleed copy of the same photograph painted behind each slide — portraits now float on their own image instead of dead space. The fix itself took an evening. The standard is what happened next: a programmatic sweep of every one of the 119 project galleries on the production domain — object-fit verified, backdrop verified, image integrity verified, on every slide of every gallery. One rule from this project's own playbook: fix the class of problem, not the single instance you were shown.

Launch-week hardening

Found before visitors did

The 48 hours around DNS cutover surfaced the three bugs that would have cost the most quietly: bidding-form notifications routing to a per-form override instead of the monitored inbox — the kind of misconfiguration that loses real work, found by proving submissions were stored and the failure was delivery; a reduced-motion kill switch buried in three separate layers of the stack that froze the entire site for visitors with animations off; and 41.8 megabytes of hero video, re-encoded to 24.3. Every fix shipped with its own verification pass on the production domain: forms re-checked with reCAPTCHA v2 live, the motion override exercised across 11 pages, all 119 galleries swept after the crop fix, and a final 120-URL HTTP audit with the hostname stamped into the log. Launch-day confidence wasn't a feeling. It was a checklist with receipts.

Launch-week hardening: hero video re-encoded minus 42 percent, 2 forms re-routed, 3-layer reduced-motion fix, 119 of 119 galleries verified
Reflection

Nine weeks, five audits, every score preserved — including the ugly ones. They are why the launch wasn't ugly.

What remains is on the record too: a sitemap to enable, one orphan page. A site is never finished. This one has stopped pretending otherwise.

Four pages of the rebuilt dawson.com — every hero moving
Every page CMS-driven · every hero moving

What I care about most is what the site does when nobody is working on it. Records in, pages out. Jobs in, listings out. Two button classes instead of fifteen. A regional contractor doesn't close the gap with the giants by imitating them — it steals their discipline and keeps its own voice. The system outlasts the session. That was the point.

Got a project? Bring it.

MESSAGE ME!