yala
← help

palette themer.

upload a cover image; yala themes the landing page on it. no color picker. no fiddling. the record is the brief.

how the extraction works.

on every artwork upload, a server-side worker job runs:

  • random sample — we pull ~5,000 pixels from the image at uniformly random positions. fast, doesn’t load the full bitmap into JS.
  • RGBA quantization — collapse near-identical colors into buckets, count occurrences.
  • luminance filter — drop near-blacks (<15% lum) and near-whites (>85% lum) before ranking. this is the bit old yala didn’t do; without it, scans of dark records always returned black as “the” color, which makes for a black landing page that’s unreadable.
  • frequency rank — the top 5 buckets become your palette: surface, ink, accent, primary, contrast.

the result lives on link.palette (jsonb in postgres). landing pages render directly from it.

how much control do I get?

none, by design. if the extraction returns a palette you don’t like, the move is to upload different artwork. yala isn’t a color picker; it’s a record-themed page generator.

the exception: bio pages let you set an accent color override (single hex value) on the profile editor. if you want your bio to feel more palette-y than the cover suggests, override the accent.

when does the palette update?

every time you upload new artwork, the worker re-runs and stamps the result. landing-page revalidation happens automatically (a few seconds). until extraction finishes, the palette preview shows “extracting…” with a soft loader.

next upinsights + analyticsvisits, clicks, ctr, sources, services, locations, devices. anonymized via one-way IP hash.