What they came with
Two clients with visual-arts backgrounds, one an architect and technical expert, one from the marketing side — both thinking in print, not web. They wanted a site that fit the screen the way a printed page fits a frame: no scrolling, ever. This was in the early CSS era, with real, meaningful differences across browsers to design around.
What the conversation revealed
The firm's expertise ran deep — LEED pioneers, water-wise planting, fire-area design, native and pollinator-friendly planting — and all of it needed a home on the site. But nearly every page carried the same tension: dense, valuable content that had to be scannable at a glance and rewarding on a closer look, whether it was a plant guide, an awards list, or a testimonial.
What we built
Early CMS options existed but couldn't give the design control this project needed, so we built the site in static HTML, CSS, and JavaScript with a custom .NET-based templating and build system, years before Node.js made that kind of tooling common. Each content-heavy section got its own small, tailored solution rather than a one-size-fits-all template.
What changed
The site is still live today, updated regularly, and scores 90+ across every Lighthouse desktop metric — two decades after launch, in an era of frameworks and build tools that didn't exist when it was built.
Service areas
App development
Motivation
Solve an unmet need
Human factor

A website is the opposite of print — it has to work everywhere, for everyone, indefinitely. Designing for that constraint turned out to matter more, twenty years on, than any specific technology we used to meet it.

Technology

Custom static-site templating system · Componentized build pipeline · Interactive career timeline · Crossfading snippet-to-detail navigation · Cross-browser design for an early-CSS era

A landscape architecture firm

A Vision Built for Paper

The site is still live today, updated regularly, and scores 90+ across every Lighthouse desktop metric — two decades after launch, in an era of frameworks and build tools that didn't exist when it was built.

Everything in frame.

Everything in frame.

What sparked it

My contacts on this project didn't need help finding a vision — they already had one. Both were artists before anything else: one an architect with real technical depth, one from the firm's marketing side, both fluent in the language of print. They'd already imagined the site the way you'd imagine a printed page: fixed, composed, complete within its frame — no scrolling, ever. My job wasn't to help them decide what they wanted. It was to find out whether the web, in a much earlier and far less capable era of CSS, could actually deliver it — across a dozen browsers that each interpreted it differently.

The content challenge

The firm wasn't just a landscape architecture practice — they were pioneers in LEED design, water-wise planting, designing for fire-prone areas, and using native, non-invasive plants that supported pollinators like bees. All of that expertise needed a home on the site, but nearly every section carried the same underlying tension: content that had to be scannable at a glance and rewarding on a closer look. The founder's own history was one case of this — extensive enough that a standard bio page would have buried it, so I built an interactive timeline instead. Awards, testimonials, and associations posed a related but distinct problem: visitors needed a sense of just how much was there, and a taste of each item, without losing the depth behind any single one. The solution was a list of snippets with key words highlighted, paired with a detail pane that crossfaded between items — working identically whether a visitor was actively clicking through or just letting it play on its own.

StructuredWhat I built

CMS options existed at the time, but none gave the level of design control this project needed — so we built the site in static HTML, CSS, and JavaScript. To keep shared pieces like the header and footer from being duplicated across dozens of hand-built pages, I wrote my own templating and build system in a .NET console application — years before Node.js made that kind of tooling common — that assembled the full site from its component pieces.

What changed

That system is still running the site today. It gets updated with new content every year, and scores 90+ across every Lighthouse metric — a site built in the CSS Wild West still outperforming plenty of sites built with modern frameworks.