Design
Three bands stacked: the same site hero in a cream palette, a navy one, and a near-black one.

Web design and build · 2024–2026

four sites, and the systems under them

Three of these are running right now. The fourth is the page you are reading. Each one started as a written system rather than as a layout, and on the one with the longest record the directions that lost are still in the document.

01 · masa

a palette that keeps its own dead ends

masa is a company I co-founded with my partner Kaylee. It builds and runs sites for people who already have an audience and nowhere of their own to send it. I designed the system and I built the site.

The design language is a written document rather than a mood board, and it governs one idea: masa is the base. It went through three palettes in eight days. The first two are still in the file, marked superseded, each with the date it lost and the reason.

The masa hero in the Azul palette: cream ground, deep navy headline, a coral hand-script line, and the mascot as a navy blob in a pale card.
cut Azul. Cream ground, deep navy ink, a coral hand-script, and the mascot sitting alone in whitespace.
The same hero in the Noche palette: deep navy ground, cream headline, a mango button, and a night scene with the mascot under a moon.
cut Noche. The page becomes the night, and one mango chip lands on the only thing you can press.
The same hero in the Flask palette: near-black ground, white centred headline, a pale gradient button, and a phone showing a chat.
Flask. Near-black, one accent, and the mascot moved out of the whitespace into the demo. This is the one that shipped.

The mascot is the whole argument between the second and the third. Isolated in whitespace it was decorative by construction, and the markup said so out loud by shipping it aria-hidden in the most valuable space on the page. In the third it answers you.

The stylesheet still carries the older names. A token called --coral holds a cyan today, and one called --cream holds near-black, because each palette retired the one before it by changing what the names point at rather than by renaming everything downstream. Reading the live CSS tells you what order they came in.

madebymasa.com as it runs: near-black ground, a two-line headline, a pale gradient button and a cyan hand-script line.
madebymasa.com in September 2026. Eight pages in English and eight in Spanish.

Thirty-four standalone studies sit behind those three. Most are whole pages, built to be looked at once and ruled on.

design system · tokens · eleventy · bilingual

02 · Boyle Heights Bestie

a creator hub that keeps itself current

Boyle Heights Bestie is masa's first client, an East LA creator whose audience lives on platforms she does not own. The site gives her an address that is hers.

The build is Eleventy, with the shared chrome as partials so a change to the navigation happens once instead of on every page. A feed file carries her latest event and posts into the page, so the site stays current without her opening it.

The Boyle Heights Bestie hub: cream ground, a blue outlined headline reading Move more, build wealth, a rust italic line, an email sign-up, and a portrait in an orange frame.
The hub as it stands. The identity, the palette and the layout are mine; the photography is hers.

It is built and deployed. Her own domain still answers with the site she had before this one, so it is not yet the address the public reaches.

eleventy · content feed · creator site

03 · Kova

the storefront has to sell

Kova is my ice cream company, and I wrote the Shopify theme it sells through. A hundred and twenty-three Liquid templates, sixty-four of them sections, so the store gets rearranged from the admin instead of from an editor.

This is the one piece here whose design has a number attached to it. A lid gets judged on whether it prints. A storefront gets judged on whether somebody buys.

kovakream.com: a cream navigation bar with the Kova lockup, a full-bleed photograph behind the headline Fresh protein ice cream, and two buttons over a scalloped cream edge.
kovakream.com in September 2026. The strip under the fold reads “Popped up at” and names the venues.

shopify · liquid · commerce

04 · This site

the fourth one has no screenshot

You are looking at it. juanernesto.com is a CRT: one shell, one router, and every page arriving inside the same tube rather than replacing it.

It is hand-built static, with no build step, no dependencies and no webfonts. Fourteen pages share one chrome, and a script compares them against each other before anything ships, because the failure here is a page built by copying another page and quietly inheriting whatever was missing at the time. Nothing throws when that happens. Every page still renders.

static · no build step · one shell

05 · What it taught me

the document outlives the design

Every one of these started as writing. The two palettes that lost are still in masa's document with the date and the reason, and that is why I can tell you why the third one won instead of only that it did.

Next

AI operations, solutions, or internal tooling — work where the job is turning a messy process into a system that holds. Remote, or close to Los Angeles. English and Spanish.

Open to work JET/OS · web