Lemon Juice
Web Publishing LabField notes / 003

An open workshop / Rochester, NY

The web is a material.
The screen is a place.

We experiment with photography, typography, color, code, and emerging technology to find new ways to make and share things.

What happens in the Lab?

Sometimes the result is a website. Sometimes it’s a television, electronic paper, a small computer, or a radio network.

Some experiments become reusable tools for client work. Others become independent projects. This is a working record of what we’re learning—not a catalog of finished products.

See a system at work

Material study / Type

Live in this browser

Type specimen: Make room.

A small, working example. Change the words, spacing, or impression. On a pointer, the letters respond to proximity. Nothing is uploaded.

From the Lab / Working prototype

G Screen

Play with G Screen

A phone becomes a mixing board.
A browser becomes a display.
The television is optional.

Inspect a component to see what it does. Trace a change to follow words and color from the phone, through shared room state, to the browser that makes the image.

Fig. 01 / Room architectureExplanatory model · not live telemetry
Screen background
Ready / Simulation

Choose a component, or send a change one step at a time.

Server acceptedNot sent

Display appliedNot applied

Physical screenVisibility not verified

Explore the systemComponents & connections
NetlifyApplication delivery
Phone browserMixing board
WorkerConnection routing
Durable ObjectShared room state
Computer browserVisuals render here
TV / projectorOptional physical output

Netlify delivers the app. Cloudflare coordinates the room. The computer renders the visuals. HDMI carries the computer’s output to a physical screen.

NetlifyApplication delivery

Delivers the interface files to the phone and computer browsers. Once the application is loaded, room commands follow a different path.

Netlify is not the room coordinator and does not stream the finished screen.

Phone browserMixing board

The controller chooses words, colors, and scene settings. It sends a command to the room; sending is not the same as acceptance or display application.

The small preview represents settings, not a camera feed from the television.

WorkerConnection routing

The Cloudflare Worker routes room requests and connections to the appropriate room logic. This is the connection boundary, not a graphics renderer.

This drawing explains roles. It does not inspect the deployed transport, authentication, or network traffic.

Durable ObjectShared room state

The room coordinates accepted settings for its connected controller and display. A server acceptance means the room accepted a change—not that the display or television has shown it.

Persistence and recovery policy are implementation details not verified by this explanatory model.

Computer browserVisuals render here

The display browser receives room settings and renders the visual scene locally. A display-applied acknowledgment is separate from server acceptance.

An acknowledgment from the browser is not proof that an attached physical screen is visible.

TV / projectorOptional physical output

A television or projector can show the computer’s output over HDMI. The computer alone is enough; the larger physical screen is optional.

There is no TV acknowledgment in this model. Visibility, input selection, and cabling are not verified.

Read the paths without the drawing

Application delivery: Netlify serves HTML, CSS, and JavaScript to the phone browser and the computer browser.

Shared room control: Both browsers connect through the Cloudflare Worker and the room’s Durable Object. Commands, settings, and acknowledgments are not rendered video.

Physical output: The computer browser renders the image. HDMI can carry the computer’s output to a television or projector. The television is optional.

A separate local demonstration: The G Screen landing page describes two windows in the same browser profile. That is not the same as pairing a phone with another computer. Its local coordination mechanism is not specified here.

Authored SVG + semantic HTML + small JavaScriptOpen G Screen

The library / Code, context & recipes

Open the notebook.

Methods, materials, and possibilities.
Expand what interests you.

Working principles / Open researchBorrow the knowledge.
Build with care. Share what works.

The Lab is part workshop, part library: a place to discover existing tools, understand their methods, and adapt what is useful.

We begin with the native web and what is already available: HTML, CSS, JavaScript, free and open-source tools, inexpensive hardware, and techniques shared by other makers. We research licenses and give credit. We prefer understandable systems to unnecessary complexity.

Discover / Understand
Study working examples, published techniques, platforms, and open-source tools.
Adjust / Experiment
Make controls visible: sliders, parameters, variants, and before/after comparisons.
Test / Document
Check accessibility, mobile behavior, performance, maintenance, and provenance.
Reuse / Share
Turn successful studies into repeatable recipes and adaptable web packages.
Research index / Six connected areasAreas of investigation
01 / Image & type
Bitmap, halftone, dithering, photographic color, responsive typography
02 / Web & code
Browser-native graphics, shaders, interaction, portable website recipes
03 / Screens
Televisions, projectors, e-paper, remote signage, slow publishing
04 / Computing
Mini computers, sensors, microcontrollers, inexpensive hardware
05 / Radio & networks
LoRa, mesh, local-first communication, distributed publishing
06 / Emerging tools
Open-source creative applications and new production methods

Research areas are not interchangeable transport systems. A browser-rendered scene, an e-paper image, and a radio message have different technical requirements.

Working philosophy / From a library to a websiteA website is a composition.

We don’t build every website from scratch.
We don’t make every website look the same.

We collect proven foundations and deeper research packages: responsive type, image treatments, color systems, navigation, motion, publishing components, and platform-specific adaptations. Think of it a little like DJing a website: select, mix, tune, test, and refine the materials for the particular work.

Collection / Context

Systems that travel

Responsive layouts, accessible menus, color variables, type scales, image handling, and tested CSS/JS patterns.

SelectMixTuneTestRefine

Useful when a sound foundation lets the project’s individual character take the lead.

Working status — This is a curated index of research directions, not a claim that every recipe is released or production-ready.

From the Lab / Into practice

Design Week.
Build Week.

Anna × Lemon Juice
Making creativity work.

The Lab supports a growing set of adaptable website packages. We select useful foundations and make room for what is specific to each client.

Light / Lemon JuiceEstablish the visual language

Photography, identity, typography, color, and creative direction. Design Week establishes how the website should communicate and feel, starting with the people and work it represents.

Lens / Anna YatesMake the system work

Strategy, structure, systems, and development. Build Week carries the agreed direction into a functioning website, with practical decisions about editing, publishing, and upkeep.

Strategy and design inform each other throughout. The library helps us avoid rebuilding every foundation; it does not replace understanding the project. Custom code belongs where it improves the experience, not where it merely shows off.

From research to practice

One experiment.
Many possible forms.

The Lab helps us develop reusable components for websites and other publishing environments. We use custom code when it serves the material, the people, and the work—not because every page needs another effect.