← All notes

Designs that ship — editorial identities for real storefronts

May 29, 20265 min read

Most of what I write about here is backend plumbing — pipelines, hooks, post-mortems. This one is the opposite. It's about the part of the work that people actually see: the color, the type, the texture. The applied design craft that turns "a website for the taco place" into something a storefront owner is proud to send to their customers.

Over the past year I've shipped a small run of editorial identities for local businesses around Reynosa and the border — a couple of taco trucks, a salon, a 4x4 parts shop. Each one is the same exercise: take a real, scrappy business and give it a visual voice that feels deliberate instead of templated. Below is what I've learned, and at the bottom there's a live, fully interactive design study you can poke.

The constraint that makes it good

A local storefront has no brand book, no stock photography budget, and usually no logo beyond whatever was on the truck's vinyl wrap. That sounds like a limitation. It's actually the best constraint a designer can get, because it forces every decision to come from the material of the business itself.

A taco truck at night is lit by a string of warm bulbs. A salon smells like product and looks like polished concrete. A 4x4 shop is steel, rubber, and grease under fluorescent light. Each of those is a palette and a texture before it's ever a website. The job is to listen to the thing and translate it — not to reach for the same three Google fonts and a hero image of someone smiling at a laptop.

Texture before decoration

The mistake I see in cookie-cutter local sites is that they reach for decoration — drop shadows, gradients, a carousel — when what the business actually has is texture. Texture is cheaper to build, it reads as intentional, and it survives on a slow phone connection because it's almost always pure CSS.

For the dessert food-truck concept in the demo below, the entire visual identity is four hand-built textures, zero photography of the real product:

  • String lights — a repeating inline SVG of a sagging wire with warm bulbs, masked across the top of the header. It's the single cue that says "food truck at dusk" louder than any photo could.
  • Chalkboard — a radial dark-green gradient with a two-layer dotted noise overlay, for the "specials of the day" panel. The dotted layers at 3px and 7px give it the powdery, uneven look of actual chalk dust.
  • Ticket edge — a CSS mask of two rows of half-circles that bites scalloped notches into the side of the category blurb, so it reads like a torn admission ticket.
  • Scribble underline — a hand-drawn SVG squiggle as a background-image under the script word in the headline, instead of a clean rule. Imperfect on purpose.

None of these are images you download. They're all drawn in the stylesheet, which means they scale to any screen, recolor with a single variable, and add nothing to the network waterfall.

The palette is a system, not a mood board

Picking "warm cream and brown because dessert" is a vibe, not a system. What actually ships is a named set of tokens that every component pulls from:

--ink:        #2D2A26;  /* near-black, warm — all text */
--cream:      #F8F4EE;  /* paper base */
--beige:      #E8DDC9;  /* cards, ticket fills */
--wood:       #A07449;  /* the one accent that carries the brand */
--bulb:       #E6B97A;  /* the warm glow — highlights only */

Five values, each with one job. ink is never pure black — a warm near-black keeps the whole page from feeling clinical. wood is the only color allowed to draw attention, so the eye always knows where the next action is. bulb is reserved for glow and price chips, the small bright moments. Once the system is this tight, building new sections is fast and they're consistent by construction, not by discipline.

The same logic carried across the other storefronts with different inputs: the salon got a cooler graphite-and-blush pairing, the 4x4 shop got steel grey with a single hazard-orange accent. Different mood, identical method.

Type does the heavy lifting

Two typefaces, three roles. A high-contrast serif for display (the headlines, the prices, the dish names), a clean grotesque for body, and — this is the part most local sites skip — a script face used once or twice per screen for a single human word. "Un pequeño ritual." "Especiales de hoy." The script is the handwriting of the place; overuse it and it becomes a craft-fair cliché, use it once and it's a signature.

The hierarchy is doing the work that decoration usually gets blamed for. Big serif headline, tiny all-caps tracked-out eyebrow label, comfortable body measure capped around 46 characters. Nothing fancy — just the boring discipline of a real type scale, which is exactly what separates a designed page from a generated one.

See it

Here's the dessert food-truck concept, live and interactive. It's a self-contained design study — scroll to watch the header compact, switch menu categories to see the card grid re-lay with a hover lift, and look closely at the string-light, chalkboard, ticket, and scribble textures. The names, prices, and images are all sample data; it's the system on display, not a real storefront.

What carries over

The textures and the palette are specific to one concept, but the method isn't. Every storefront I've built starts the same way: find the material the business is already made of, turn it into five or six tokens and a couple of textures, pick two typefaces and give them strict roles, then let the hierarchy carry the page. Do that and even a single-page site for a taco truck looks like someone decided it — which, for a small business competing on a phone screen against a glossy chain, is most of the battle.