2026-06 · Designer & Developer

Corporate Site

Building flarely.co.jp on Astro 5, React 19, Tailwind, and shadcn/ui. A WebGL grain-gradient shader, a GSAP pin-based horizontal services scroll, and a three-page structure (Top / Privacy / Terms) — all in service of one goal: lowering the barrier to reach out.

Corporate Site hero

One goal: lower the barrier

Flarely walks alongside small and mid-sized businesses across Kanagawa and Tokyo. The studio’s offer is “it’s okay if your service is still fuzzy” — and the site has to make that feel true.

Everything else was reverse-engineered from there:

A standalone /contact page implies “this is a formal inquiry.” We wanted the feeling of scrolling all the way down and finding a form there.

Stack

LayerChoice
FrameworkAstro 5
UIReact 19 + Tailwind v3 + shadcn/ui
AnimationGSAP (ScrollTrigger pin)
Visual@paper-design/shaders for a WebGL grain-gradient
Formshadcn (input / textarea / label / select) + Radix
Packagepnpm

The shader started as a paper-design/shaders MeshGradient layered with feTurbulence film grain. It fought the FV copy too aggressively. After tuning, we landed on speed: 0.7, mix-blend-overlay, opacity 0.22 — just enough motion to suggest “the tinder is still alive.”

Horizontal services scroll

The six services slide horizontally on desktop via GSAP pin + ScrollTrigger. The math for the slide distance — offsetLeft + paddingLeft — is tuned so the last card’s right edge lines up exactly with the wrap’s right edge.

Flarely services section

On mobile, the same six become a vertical one-column stack. Same information, only the eye’s path changes.

Flarely mobile FVFlarely mobile services

A consistent header

The headers on the sub-pages (Privacy / Terms) match the Top FV header exactly — position, size, and color. sticky, border-b, and backdrop-blur were intentionally dropped to keep the header behaving like a transparent, weightless layer.

I wanted the feeling of “you’ve moved to another page” to be as quiet as possible. The header not flinching was the top priority.

Tried and dropped

You can only sharpen “what to keep” after seeing “what was extra.”

Takeaway

Aiming the whole site at a single goal — lower the barrier to reach out — made every downstream decision (structure, copy, header, shader, form width) snap into place. Once the brand statement is locked, site decisions move at roughly twice the speed.