Presencify › Projects › Davies

Web DesignPersonal BrandingStatic HTMLGSAP Motion

A portfolio site that proves the craft before the pitch.

Dark, editorial, motion-heavy. Character-level scroll reveals, pinned horizontal service panels, a WebGL hero — delivered as clean static HTML that loads fast, indexes properly, and runs on any host without a CMS bill.

2LayoutsHomepage Variants
8ThemesColour System
11ModulesMotion Engine
4TemplatesBlog System
View live site

// the brief

Your portfolio has about four seconds.

You already know your work is good. That's not the problem. The problem is that the person deciding whether to hire you is looking at your site on a phone, between meetings, with two other tabs open on two other people who do roughly what you do. They'll form an opinion before they read a single case study. Then they'll either scroll — or close the tab.

Everything we do on a portfolio build is aimed at that four-second window, and at the ninety seconds after it. Make me look like the best person in my field, and don't make it slow. That was the brief.

Davies portfolio homepage preview

// the motion system

Motion that guides. Not motion that decorates.

Scroll animation has a bad reputation, and it's earned. Most of it is decoration: things sliding in from the left because a plugin was installed. We use it as a pacing tool — motion controls the order in which a visitor absorbs information.

01

Character-Level Scroll Reveals

Headlines are split into individual characters. Each one lifts from dim grey to full white in sequence, tied directly to scroll position — not on a timer. Scroll slowly and it fills slowly. Scroll back up and it un-writes. The visitor is physically in control of the reveal, which means they actually read the line instead of skimming it.

GSAP SplitTextScrollTriggerScrub
02

Pinned Horizontal Service Scroll

When you reach the services section, the page holds still and services move sideways. It turns a list into a sequence, so each offering gets its own moment instead of competing with the next one in a vertical stack. On mobile it dismantles itself completely and becomes a normal scroll — because a pinned horizontal section on a phone is a trap, not a feature.

ScrollSmootherPinResponsive teardown
03

WebGL + Momentum Scroll

One homepage variant runs a real-time WebGL background via Unicorn Studio that reacts as you move. Both variants run momentum scrolling with weight and easing rather than snapping line by line — the single change most people can feel but can't name. A cursor trail draws a gradient line behind the pointer and ripples on click.

Unicorn StudioWebGLCanvas cursor

Critical detail: every animation is held back until the page finishes loading. A preloader gates everything — only when it clears do animations begin measuring the layout. That's why nothing jumps, stutters, or fires at the wrong scroll position, which is the failure mode of roughly every animated template you've clicked through and closed.

// design tokens

One line changes the entire colour scheme.

Brand colours change. Clients rebrand, sub-brands launch, a campaign needs its own palette for six weeks. So we don't hard-code colour. Every colour in the build resolves through a single token layer.

This site ships with eight complete palettes — green, amber, orange, cyan, lime, violet, red, pink — each defined once and applied everywhere. Switching the site's entire identity is one attribute change on the body element, not a find-and-replace across 150 KB of stylesheet.

Self-hosted, editable icons.

A custom Icomoon icon font rather than a third-party CDN. Editable in the Icomoon app, so a client's icons can be added to the set later — and it doesn't depend on someone else's CDN staying online in 2029.

Green
Amber
Cyan
Violet
Orange
Lime
Red
Pink

// page architecture

Everything a creative business needs — in one scroll.

Homepage section order

01Hero — WebGL or full-bleed video
02Selected Work — synced slider pair
03About Me — character reveal
04Tech Stack — animated grid
05Services — pinned horizontal scroll
06Brand logos — infinite marquee
07Awards — stacked cards
08Testimonials — Swiper carousel
09Pricing — three-column tier cards
10FAQ — animated accordion
11Contact / CTA — form + location
12Footer

What ships alongside

2 Homepage Layouts

Version 1 runs GSAP + WebGL. Version 2 uses a video hero and adds a Feature breakdown and Process walkthrough — genuinely different structures, not one recoloured twice.

4-Template Blog System

Single-column with sidebar, two-column grid, three-column grid, and a full article page with comments, search, and related posts.

Styled 404 Page

Because the error page is a page your visitors will see, and a default server error is the one moment a site tells the truth about how much care went into it.

// performance & accessibility

The unglamorous work that decides whether it performs.

This is the part most people never see, and it's most of the value. A site can look incredible in a Figma file and still fail every real-world measure that matters.

Hero video re-encoded to modern codecs — poster frame served first, video deferred
Explicit width/height on every image — zero layout shift as the page fills
Scripts bundled, deferred, and stripped per page — no carousel library on a page with no carousel
JSON-LD structured data so search engines understand who this person is and what they publish
prefers-reduced-motion guard — vestibular disorder users get a calm, static version
Descriptive alt text, per-image, written by a person — not generic alt="Image"
Contact form wired to a real handler with spam protection — not silently swallowing enquiries
Off-canvas mobile menu with body scroll-lock — correct behaviour on all devices

// the architecture decision

No framework. That's deliberate, not a shortcut.

For a portfolio site, HTML, CSS and JavaScript is not a limitation. It's the correct architecture, and it matters to the budget and longevity of the project.

Runs anywhere

Netlify, Vercel, S3, or £4/month shared hosting. No build server, no serverless functions, no platform subscription that scales with traffic.

Doesn't decay

A framework build needs its dependencies updated or it becomes unbuildable in about eighteen months. Static HTML from 2015 still works. Come back in three years wanting a new case study — the site opens and edits.

Faster by default

No hydration, no client-side routing, no JavaScript bundle to parse before anything appears. The browser gets HTML and renders HTML. Search engines see everything in the initial response.

26 SCSS partials. One compile command.

Styling is written across 26 organised partials — variables, mixins, reset, typography, then one file per component: buttons, forms, accordions, carousels, testimonials, header, footer. It compiles with a single command and no toolchain. Structured like a system, delivered as a static file.

// built with

The stack.

Structure & Styling

HTML5SCSS (26 partials)Bootstrap 5CSS Custom Properties

Motion & Interaction

GSAPScrollTriggerScrollSmootherSplitTextSwiperSlick

Advanced Effects

Unicorn Studio (WebGL)Canvas cursor trailIcomoon icon fontinfiniteslide.js

Performance & SEO

Lazy loadingExplicit dimensionsJSON-LD structured dataDeferred scripts

// want a site like this?

A portfolio site is a sales asset that works while you're asleep.

Motion that guides instead of decorating. Colour that's one line to change. Static delivery that stays fast and stays alive. Tell us what you do and who you're trying to reach.

Built by Presencify · presencify.digital

Next Project

Aigocy →

AI Agency Website

Get in Touch

Let’s build
something 
remarkable.

Tell us about your project and we’ll get back to you within 24 hours. No commitment required.