Whisky distillery · Featured
SLIABH
SLIABH is a premium whisky distillery website template built with Next.js, TypeScript, Tailwind and All-intra video scrub + GSAP. Seven films, one dram — eighteen years of single malt, scrubbed by scroll. The Claude Code prompt that builds it is free; the exact tested source code is $79 with a commercial license.
Specifications
- Framework
- Next.js · TypeScript · Tailwind
- Motion
- All-intra video scrub + GSAP
- Category
- Luxury
- Use case
- Whisky distillery
- Responsive
- Desktop → mobile
- License
- Commercial · one end product
- Delivery
- Instant ZIP download
What the paid download adds
- The exact deployed code — tested, not AI-guessed
- Config-driven copy, palette & assets
- Compressed media included
- Deploy README — Vercel or your own VPS
- Commercial license — one end product
- Free updates to this template
The free Claude Code prompt
Run this with Claude Code to build your own SLIABH variant — free. Want the exact, tested code shown in the demo? That’s the $79 download.
# SLIABH — Free Claude Code Prompt
*From SmartDuke Studio (studio.smartduke.com). Run it with Claude Code
and build your own variant. Want the exact tested code — the encoded
films, the scrub engine with the iOS fixes — that's the paid download
at https://studio.smartduke.com*
## Before you start
- Node.js ≥ 20.9 and ffmpeg on PATH.
- You need 6–7 short films (6–12s each). Generate them with an AI video
tool (Veo/Gemini works well) or shoot them: ONE continuous take per
clip, slow constant motion, no cuts, and every clip must read
scrubbed backwards as well as forwards. Encode each all-intra:
`ffmpeg -i in.mp4 -an -vf "scale=1600:-2" -c:v libx264 -preset slow
-crf 29 -g 1 -pix_fmt yuv420p -movflags +faststart out.mp4`
(-g 1 makes every frame a keyframe — this is what makes scrubbing
instant instead of janky). Keep the total under ~30MB.
## The prompt
> Build me a premium single-malt whisky distillery site told as
> scroll-scrubbed films — Awwwards-level, for a fictional Highland
> brand. Each chapter of the page pins a full-viewport film and scroll
> scrubs it: barley field → copper stills → filling the cask →
> a warehouse dolly (the years passing) → amber liquid macro with
> tasting notes → the pour over ice → the bottle with a reserve CTA.
>
> **Stack:** Next.js App Router + TypeScript + Tailwind v4 + GSAP
> ScrollTrigger + Lenis. No 3D libraries — the films are the drama.
>
> **The scrub engine (one reusable component):** a tall section
> (~200vh) with a sticky full-viewport <video muted playsInline>.
> ScrollTrigger (top top → bottom bottom) maps progress to a target
> time; a gsap.ticker lerps video.currentTime toward it (factor ~0.14,
> only seek when the delta exceeds 0.004s, and bail while
> readyState < 2 so seeking never aborts the download). The film must
> complete exactly when the sticky releases.
>
> **The mobile trap (do not skip):** iOS never paints a seeked frame
> on a video that has not played. On mount, call play() then
> immediately pause(); if the browser refuses, retry on the first
> touchstart/pointerdown. Re-arm this after any load() call.
>
> **Seven videos, one page:** gate each chapter's ticker with an
> IntersectionObserver so only the on-screen film does work; ship
> later chapters with preload="metadata" and upgrade to "auto" one
> viewport early. Give every video a first-frame poster jpg so
> chapters paint instantly.
>
> **The dressing:** an in-character age gate as the loader ("You must
> be of legal drinking age — I am, pour me in"), roman-numeral chapter
> marks, serif editorial type (Fraunces italic accents), cream on
> near-black with one amber accent, film grain overlay, soft gradient
> veils at the frame edges for text legibility. All copy in one
> config file. Age gate skippable via ?nogate for automated capture.
>
> **A11y + housekeeping:** prefers-reduced-motion gets still posters,
> no scrubbing; overflow-x uses clip (never hidden — hidden turns body
> into a scroll container and silently kills position:sticky).
## Gotchas we hit (the paid version has these fixed)
- A cut inside a clip scrubs as a glitch — every film must be one take.
- Non-all-intra video makes scrubbing feel like a slideshow: without
-g 1, every seek decodes from the last distant keyframe.
- The iOS play()/pause() unlock must be re-armed after load() — the
preload upgrade resets the decoder and the hero works while every
later chapter silently freezes.
- Ease the text overlays in on pin, but tie their exit to the sticky
RELEASE, not chapter progress — or your copy fades while pinned.
SLIABH — questions
What is the SLIABH template built with?
SLIABH is a Whisky distillery website built with Next.js, TypeScript, Tailwind CSS, GSAP, Lenis, Scroll-scrubbed video. The motion is driven by All-intra video scrub + GSAP, with Lenis smooth scrolling and GSAP ScrollTrigger for the scroll choreography.
How much does SLIABH cost?
The free Claude Code prompt that builds a SLIABH variant is $0. The exact, tested source code — the same site shown in the demo — is $79, delivered as an instant ZIP with a commercial license for one end product.
Can I use SLIABH for a client project?
Yes. The $79 download includes a commercial license to use SLIABH in one end product, including paid client work. Everything is config-driven, so copy, palette and assets re-skin from a single file.
What's the difference between the free prompt and the paid download?
The free prompt gets Claude Code to build you a SLIABH variant — genuinely good, but it costs tokens and debugging time and results vary. The paid download is the exact site in the demo: tested, compressed, documented, licensed, with free updates.
Related templates
Aurelia
A voyage from above the clouds to a dinner at sea — scroll is the ship.
Vesper
Scroll assembles the watch — component by component to the finished piece.
NOVA
Ninety thousand particles become an orb, a DNA strand, a landscape, a black hole, a galaxy — as you scroll.
Part of
Ship SLIABH today.
The free prompt gets you a variant. The $79 download is the exact, tested site — deployed in an afternoon.