Builds By Luke
All work

SaaS · Product Analytics · 2025

Halcyon

See what your product is really doing.

Role
Design, Front-end, Motion
Stack
HTML, CSS, Vanilla JS, Canvas
Year
2025
Discipline
SaaS · Product Analytics
  • A self-animating canvas chart that continuously redraws smooth analytics curves with a gradient fill and a travelling glow point
  • IntersectionObserver-driven staggered reveals and count-up impact metrics that fire only when scrolled into view
  • Glassy bordered cards with a pointer-follow glow and a gradient-masked featured pricing tier
  • Fully responsive 360→1440px, semantic, keyboard-friendly, and entirely code-generated — zero image assets

Live preview · the real, built site

Embedded and fully interactive. Resize it with the device controls, or open it in its own tab.

halcyon.app
Preview width
Open
Live, interactive preview of Halcyon. Use the controls to change the preview width, or open the site in a new tab.

Halcyon is a study in restraint at speed — the kind of dark, exacting product page you’d expect from a developer-tools company that cares about every pixel. The reference points were Linear and Vercel; the execution is wholly original and, importantly, static: one self-contained page with no framework and no build step.

The centerpiece

The hero isn’t a screenshot of a dashboard — it is one. A <canvas> continuously redraws smooth Catmull-Rom analytics curves with a gradient area fill and a glowing point that travels the line, backed by a live count-up readout. It animates on its own, pauses politely when the tab is hidden, and falls still under prefers-reduced-motion.

The details that sell it

  • Scroll choreography via IntersectionObserver: sections rise in with a measured stagger, and the impact metrics count up only once they’re actually on screen.
  • Glassy cards with a soft pointer-follow glow and crisp hairline borders.
  • A pricing block with one tier lifted by a gradient-masked border — the quiet “choose me.”
  • A sticky, blurred nav with a working mobile menu.

Everything is drawn in code. There are no images to optimise because there are no images — just gradients, SVG and canvas, which keeps it razor-fast and trivially easy to recolour for a different brand.