Charles
Client work

chuckdesign.com

The studio's own site. A darkroom where one coral pixel is the only light and the work develops out of black as you scroll.

Status
Live
When
Jun to Aug 2026
Category
Client work
Links

I run a one-person studio in Florida, and this is its front door. The whole site obeys one light: a hero beam, a scroll-scrubbed interlude where a print develops out of black, and a projector cone on the portfolio page. Everything else stays dark and quiet so the work reads as the light source.

It launched in July 2026 after a full redesign and an elevation pass.

The home page on desktop. One beam of light, everything else dark.
The home page on desktop. One beam of light, everything else dark.
The home page on a phone.
The home page on a phone.
The pinned interlude. The Ember and Tide print developed under Made to last.
The pinned interlude. The Ember and Tide print developed under Made to last.
The work section. Built for businesses that can't afford to look average.
The work section. Built for businesses that can't afford to look average.
The portfolio page, the projector cone lit on one item and the neighbors dark.
The portfolio page, the projector cone lit on one item and the neighbors dark.

Stack

  • Next.js 16 App Router, React 19
  • Tailwind v4 with a hand-authored CSS system
  • GSAP, Phosphor icons
  • Vercel with CLI deploys
  • GA4, Formspree, LocalBusiness JSON-LD

Decisions

  1. One light grammar site-wide. Three independent reviewers flagged soft ambient glows as generic, so every lit element became a beam, an interlude beam, or a projector cone.
  2. A restraint law. No translate lifts, no scale pops, no glow blooms. The coral accent never does label work.
  3. Field data over lab score. A mid-80s lab score was accepted because real visitors measured LCP 1.5s, CLS 0, and TBT 40ms, and the brand type stays guaranteed with font-display swap.

Lesson

  1. Documentation that copies the design system inline rots the moment the direction pivots. Docs now point at sources; where docs and code disagree, the live code wins.