All work

Case study · Concept

Silverroot Plant Protein

Rooted in power.

Supplement sites usually sell protein with a stock photo of a shaker and a list of grams. Silverroot is a fictional plant-protein brand we invented to try the opposite: a one-page product site where the jar turns in 3D as you scroll, a silver gorilla built by plants breaks through the screen, and every number sits where the story needs it. Silverroot is not a real product and is not for sale.

The Silverroot homepage: a black protein jar with a glowing green lid and a faceted silver gorilla on the label, between the words Rooted in and Power, in a haze of floating protein dust.
The jar is the hero. Scroll turns it from the lid to the label.
Project
Silverroot, a fictional plant-protein brand (studio concept, not a real product)
Scope
Concept, name and logo, label and three flavor jars, art direction, 3D, motion, front-end build
Stack
Astro 7, Tailwind CSS 4, GSAP, three.js, Cloudflare Pages
Timeline
September–October 2026
Pages
One product page: 3D hero, scroll story, benefits, flavors, comparison, reviews, stockists, FAQ, order
Result
3D jar on screen in 5.9 s on a slow phone, down from 21.3 s

The brief

A protein brand that feels like a game trailer

The plant-protein shelf is crowded and looks the same: green leaves, white tubs, "clean" in a light sans-serif. The athletes it wants to reach scroll right past it.

We wrote ourselves a brief as if a client had sent it: a vegan protein for people who train hard, that has to feel as strong as whey without borrowing its gym clichés. One page, one product, one action: order a jar.

Silverroot is a concept. The brand, the athletes, the reviews and the stockists are invented, and the site says so: in the footer, in the FAQ ("Is Silverroot a real product? No.") and in a noindex tag that keeps it out of search results.

The idea

Built by plants

Plant protein has an image problem: people picture something soft. So the brand's symbol is the strongest plant-eater we could think of, the silverback gorilla. It lives on leaves, stems and fruit, and it is one of the strongest animals alive.

The name follows from it: silver for the silverback, root for the plants. The tagline says both at once: Rooted in power.

Our gorilla isn't fur. It's a faceted silver figure with glowing green seams, like veins of chlorophyll running through stone. That one image carries the whole site: the logo, the label, the story in the middle of the page and the roar at the end.

Design choices

One green, almost black

The page is near-black so the green can glow. #00FF66 is used like light, not paint: on the gorilla's seams, the energy lines, the protein numbers and the order button, and almost nowhere else. On #090A0F it has a contrast of 14.6:1, so it works for small text as well as for glow.

  • --page

    #090A0F

    Page background

  • --surface

    #020617

    Cards, the comparison table

  • --line

    #1E293B

    Borders, dividers

  • --muted

    #94A3B8

    Secondary text, mono labels

  • --ink

    #FFFFFF

    Headlines, body

  • --accent

    #00FF66

    Energy: veins, numbers, the one button

Each flavor gets its own neon. Vanilla Bean Bliss keeps the brand green, Double Chocolate glows amber (#FFB347) and Wild Berry glows magenta (#FF4FD8). Same jar, same gorilla, a different light.

  • Headlines: heavy, uppercase and tightly spaced, like the type on a stadium screen: "ROOTED IN POWER", "POWER, GROWN FROM PLANTS".
  • Labels: monospace with a // prefix, like a spec sheet: "// PER SCOOP", "// THE FORMULA".
  • No web fonts. Both are the system's own sans-serif and monospace, so the type costs nothing to download and appears instantly.

The mark is the gorilla's head cut into facets, silver planes with green light in the seams. It reads as a gorilla at favicon size and as armour up close. The same gorilla, full body, is printed on the jar label. The working file was a 3.2 MB PNG; the mark on the site is 13 KB.

The Silverroot mark, a faceted silver gorilla head with green seams, beside three jars: Vanilla Bean Bliss glowing green, Double Chocolate glowing amber and Wild Berry glowing magenta.
The faceted mark, and one jar in three lights.

Key interactions

A product page you play

1 A jar you turn with your scroll

The page opens on the jar in 3D, floating between "ROOTED IN" and "POWER" in a slow storm of protein dust: 2,600 particles, softly out of focus. Scrolling turns the jar. First to the lid, where a card explains the twist-lock seal; then to the opening, where the numbers appear (25 g protein, 5 g BCAAs, 130 calories, 0 g added sugar); and finally to the label, with the pea, rice and pumpkin blend. At the top view the dust spirals around the lid.

The label has a soft satin coat, and the jar is lit like a product shot: a key light, a green rim and a faint green fill from below.

The jar tipped towards the camera to show its lid, with a card about the twist-lock seal.
Lid: the twist-lock seal.
The jar seen from above with a card listing per scoop: 25 g protein, 5 g BCAAs and glutamine, 130 calories, 0 g added sugar.
Per scoop: the numbers appear beside the jar.

2 The gorilla story, scrubbed by scroll

Below the jar, the page becomes a film you play with your scroll. 88 frames of the silver gorilla, drawn on a canvas, advance over about four screens. "BUILT BY" and "PLANTS" stand on either side of him; as he roars, the words turn green and are pulled into his chest. "THE BEAST IS IN YOU." He winds up. "BREAK YOUR LIMITS." He punches the screen and it shatters, with lightning and glass drifting towards you, until the shards form the last line: UNLEASH THE SILVERBACK.

Scroll back and the whole thing runs in reverse, so it never feels like a video you missed.

The silver gorilla roaring while the green words Built by Plants break apart on either side of him.
The roar pulls "BUILT BY PLANTS" in.
The gorilla clenching a fist beside the green line The beast is in you.
"THE BEAST IS IN YOU."
The gorilla's fist breaking through the screen in a burst of glass shards and green lightning.
The punch: glass and lightning, drifting towards you.

3 Energy lines between sections

Where one section would end on a hard edge, a thin green line ignites from the centre, then two sparks keep running out to the edges. It takes no space on the page: it sits on the seam. It appears twice, after the gorilla story and above the closing gorilla.

The end of the gorilla story, Unleash the Silverback over shattered glass, then a thin glowing green line across the page, then the benefits title Power, grown from plants.
The story's last line, the seam, and the next section.

4 The flavor lineup

Three jars, rendered from the same 3D model with three labels, each with its own neon glow, tag and pairing ("Mix with · oat milk · banana"). Hovering a card turns its glow up, and the button takes on the flavor's colour.

The Pick your fuel section: three cards with the Vanilla Bean Bliss, Double Chocolate and Wild Berry jars, each glowing in its own colour.
Pick your fuel: one model, three labels, three lights.

5 The athlete loop

Behind "FIELD TESTED BY ATHLETES", an athlete does one clean pull-up with the veins in his back lit green, and a burst of chalk. In the source clip he sank before the rep, which made the loop bob, so we kept only the 1.2 seconds where he rises, slowed it by 35% and played it forward and back. A seamless 3.25-second loop in 260 KB.

One rep, up and back down, forever.

6 The closing roar

The order section ends where the story started: the gorilla roaring inside rings of green energy, edge to edge, so the orbits run off the screen. A 9-second seamless loop, 2.5 MB at 1080p and 1.1 MB on phones, under one question: "READY TO GROW STRONGER?"

The closing section: the roaring gorilla inside green energy rings, above the headline Ready to grow stronger? and a Claim your supply button.
The last screen: the gorilla again, and the one button.

Imagery

One look, generated and then edited

The gorilla, the athlete and the ingredient photos are AI-generated from one brief: faceted silver, green light, a near-black studio. Generated clips rarely loop or land on the right beat, so each one was cut, slowed, reversed or patched by hand until it did.

AI garbles lettering, so the product was never generated. The jar is a real 3D model wearing a label we designed, and the three flavor jars and the hero's fallback still are rendered from that same model, so every jar on the page matches.

Three phone screenshots: the 3D jar hero, the gorilla story with The beast is in you, and the flavor lineup.
On a phone, 390 px: the hero, the story and the flavors.

Speed and old devices

The jar in 6 seconds, not 21

A 3D hero only impresses if it shows up. We measured the first published version on a simulated phone on slow 4G and on a laptop with a real graphics card. On the phone, the jar took 21 seconds to appear, mostly because of the 3D model files.

  • A poster first. A 29 KB still of the jar appears almost at once, about 1.7 s on the slow phone, and the live 3D jar fades in over it when it's ready. The same still is the fallback on devices that can't show 3D, and a script remakes it whenever the model or the lighting changes.
  • A lighter model, same look. Four files with 1.6 MB of PNG textures became one 447 KB file, plus a 287 KB version for phones. Screenshots before and after are identical. One compression option made the jar invisible on older graphics chips, so we chose a safer one.
  • Load what's needed, when it's needed. The model starts downloading while the page loads, the 3D code arrives after the page is up, and videos and images further down load only as you scroll near them.
Measure Before · first version After
3D jar visible, slow phone21.3 s5.9 s
Still of the jar visible, slow phone—~1.7 s
3D jar visible, laptop4.2 s2.0 s
3D model4 files, 1.6 MB of textures447 KB (phones 287 KB)

Measured on silverroot.contrastic.io, October 2026: a simulated mid-range phone on slow 4G, and a laptop with a dedicated graphics card.

An iPad from 2014

Then we opened it on an iPad Air 2, which can't update past iOS 15. Nothing in Chrome on a fast computer had warned us:

  • No 3D. three.js uses newer JavaScript than the Safari in iOS 15 can read. The build now rewrites it for older Safari.
  • No menu bar. The frosted-glass blur made the fixed bar disappear over the 3D hero. Old Safari now gets a solid bar.
  • A menu that didn't fit, and solid blocks of colour. On the upright iPad the menu ran out of room, and faded colours showed as solid blocks. Both are fixed.

The lesson we keep: test on the oldest real device you care about.

Under the hood

How it's built

  • Stack: Astro 7 (static), Tailwind CSS 4, GSAP for the scroll timelines, three.js for the jar. Hosted on Cloudflare Pages.
  • A template, not a one-off: Silverroot runs on our product-page template. The whole site, colours, sections and their order, copy and 3D settings, is one config file; a new brand is a new file.
  • The jar: one glTF model with Meshopt-compressed geometry and WebP textures, a phone version with a smaller lid texture, and lighting, label finish and particles all set from the config.
  • The scroll story: 88 WebP frames (1920 px, 1280 px on phones) drawn on a canvas and driven by a GSAP ScrollTrigger, with the titles, phrases and the shattered-glass overlay timed to frame numbers.
  • Flavor jars from the 3D model: the three labels are generated from one design file, and the jars are rendered from the same model in a headless browser.
  • Scripts for the next change: npm run poster remakes the hero still, npm run model packs a new model.
  • Releases: each version is tagged and published by pushing to its own branch; Cloudflare builds and deploys it.
  • Visibly a concept: noindex, a concept notice in the footer and the FAQ, and invented stockists with 555 phone numbers.

Outcome

A protein brand you remember

Silverroot shows what a single product page can do when the product is the hero and the brand has a story: a jar you turn with your scroll, a gorilla that roars when you reach him, and numbers that appear where they matter. It also shows the part nobody sees: a 3D hero that appears in seconds on a slow phone and still works on an iPad from 2014.

Your brand could be next.