← Selected work

Editorial art platform

Let’s Worm

Since 2017, writer Dan Murphy and I have prompted one another through stories and images; the current site gives a selected part of that long-running exchange its own editorial identity.

Role
Illustration · Editorial collaboration · Web design and engineering
When
2017—Now
Built with
SvelteKit · Sanity · TypeScript
Product screenshot Static preview
Open live site
Let’s Worm issue landing page featuring the Moon City title and a large sculptural pink worm
01

The beginning

Let’s Worm began in 2017 as a creative exchange between writer Dan Murphy and me. Dan had a Tumblr for his stories and would ask me to illustrate them. Over time, the collaboration loosened into a broader way of prompting one another: sometimes a story leads, sometimes an image does, and the work develops by worming around inside an idea until it becomes something neither of us would have made alone.

The name also carries a small piece of our history. After staying with Dan in Brooklyn while I was living in Chicago, I drew a group of worms spelling out “thank you.” The worm became both a mascot and a useful verb for the process.

02

The body of work

We have made more than 100 stories, illustrations, and paired experiments together. The work moves between flash fiction, longer stories, drawing, painting, character studies, collage, and sequential images without forcing every piece into one house style.

Dan leads the writing and defined most of the collection's editorial categories. I create the illustrations and visual responses, occasionally edit or offer opinions on the writing, and help shape the collaboration as it evolves.

03

A home built for the idea

The original Tumblr gave the stories somewhere to live, but it never fully expressed the collaboration as its own project. I designed and built the current SvelteKit and Sanity site to give Let’s Worm a dedicated identity and editorial structure.

The public site is a curated selection from the larger archive—not a migration of all 100-plus works. Its logo, squiggles, paper-like surfaces, and proudly wormy details create continuity while leaving room for each story and image to set its own tone.

04

What I owned

I created the illustrations and visual responses, designed the identity and interface for the current site, and built its frontend and content system. My role also includes the informal editorial conversation that has sustained the collaboration since 2017. Dan Murphy is the project's writer and primary architect of its written categories.

Design system Emerging · Contract 1.0.0

The system behind the work

Let's Worm Design System

A warm, strange, and accessible editorial system that gives Let's Worm a coherent literary identity while keeping stories resilient across themes, viewports, content lengths, and input methods.

  1. Editorial before ornamental

    Stories, contributors, and issue context remain clear before the system introduces visual flourish.

  2. Warm, strange, and human

    Caslon, Futura, paper tones, mauve, and the worm motif create handmade character without compromising legibility.

  3. Movement has meaning

    Motion communicates state and continuity while reduced-motion users receive an equivalent static experience.

  4. Resilient by default

    Components tolerate long titles, absent images, narrow containers, zoom, and light or dark environments.

  5. Native interaction first

    Links, buttons, forms, headings, and landmarks retain native behavior, visible focus, and clear accessible names.

Visual fingerprint

Identity, components, and proof.

A curated view of the system’s real foundations and state coverage—not a second documentation site.

01

Foundation

Semantic color

  • Paper#f6eee8

    Primary editorial surface

  • Warm ink#271d09

    Reading text and structure

  • Mauve dark#8c5061

    Focus and strong accent

  • Mauve#bf718e

    Primary action and worm identity

  • Mauve light#d9a5b3

    Dark-theme action and tint

  • Cream#f5f1e8

    Raised editorial surface

02

Foundation

Typography roles

  • Reading Adobe Caslon Pro

    Carries stories and long-form editorial content with a literary voice.

  • Display and interface Futura PT

    Marks structure, navigation, metadata, and expressive headlines.

  • Technical Fira Mono

    Supports code-like and technical moments without entering story text.

03

Inventory

Representative components

Let’s Worm design-system specimens showing action states, invalid field guidance, and an empty editorial state
Actions, field feedback, and the empty state captured from the Let’s Worm specimen.
  • Actions

    Native buttons share one action and focus language across editorial and utility flows.

    • Primary
    • Secondary
    • Disabled
  • Field guidance and error

    Visible labels, associated guidance, and errors keep forms understandable in every state.

    • Default
    • Guidance
    • Invalid
  • Empty state

    A quiet editorial fallback explains the absence of stories without turning the page into a dead end.

    • No stories
    • Status
    • Responsive
04

In the product

System at work

Let’s Worm story page showing editorial typography, contributor credits, issue context, and long-form reading layout

Decision propagation

Editorial character without fragile layouts

Paper, ink, mauve, Caslon, Futura, and the worm motif adapt across themes while stories, bylines, summaries, and navigation remain structurally clear.

Accessibility and resilience Native interaction carries the expressive layer

A three-pixel focus ring, reduced-motion transitions, mobile-menu focus containment, forced-colors fallback, and responsive reflow protect the reading experience.

Next project Brown Dog Inn

More selected work

Elsewhere in the portfolio