Everything below is chosen on the same principle: standard parts, owned outright. Each one is something a competent developer already knows or can learn from public documentation, and none of it is a service that can raise its price or close its doors and take your website with it.
The foundation
3Next.js 16.2.12
It is what turns the source into the fourteen finished pages, and it is configured to produce plain files rather than a running application. That single setting is why there is no server to patch, no runtime to keep alive, and nothing that can be down at two in the morning.
It also draws the preview cards that appear when a page is shared, handles the search metadata on every page, and generates the sitemap.
React 19.2.4
The site is built from reusable pieces rather than repeated markup. A card, a badge, a section header: each is defined once, and every page that needs one uses the same definition.
The practical effect is that a change lands everywhere at once. When the news cards were reworked, the article, LinkedIn and video cards all moved together because they share the parts underneath.
TypeScript 5.9.3
Every piece of content on the site has a declared shape. An article has a title, a date, a set of tags drawn from a fixed list. Get one wrong and the build stops with the file and line, rather than the page going out with a blank space in it.
That is not theoretical here. The tags were renamed twice while the news section was being built, and both times the rename was safe because a tag that no longer existed could not compile.
How it looks
4Tailwind CSS 4.3.3
The brand is defined once as a set of named values: the navy, the orange, the corner radius, the spacing steps, the easing curve. Everything on the site refers to those names rather than repeating the numbers.
Change the orange in one place and it changes everywhere it was meant to, and nowhere it was not. It also strips out every style the site does not actually use, which is most of why the pages are as light as they are.
Class Variance Authority 0.7.1
A button has sizes and styles; a badge has colours and sizes. This declares those options in one table per component, so “small outline badge” is a named combination rather than a string of styles somebody retyped slightly differently on another page.
clsx 2.1.1
A small helper for “apply this style only when the card is featured”. Two kilobytes doing a job that is otherwise a mess of string joining.
tailwind-merge 3.6.0
When a component says “normal padding” and the page using it says “more padding”, something has to decide. This makes the last instruction win, every time, instead of the outcome depending on which style was written first.
Interface parts
3Radix Dialog 1.1.23
Opening a video darkens the page and shows the player. What that actually requires is more than it looks: the keyboard has to stay inside the overlay while it is open, Escape has to close it, focus has to return to the thumbnail you clicked, and a screen reader has to be told the rest of the page is inert.
All of that is solved here, correctly, by people who work on it full time. Written by hand it is a reliable source of accessibility defects.
Radix Slot 1.3.3
“Request a demo” looks like a button but is a link, because it goes somewhere. This is what lets one component carry the styling while the underlying element stays whichever one is correct.
Lucide 1.27.0
One consistent, open-licensed set for every arrow, tick and chevron on the site, drawn as shapes rather than images so they stay sharp at any size and take their colour from the text beside them.
Movement
3Three libraries for movement looks like one too many, so here is the division of labour: one animates things as they arrive, one draws the two diagrams that draw themselves, and one changes how scrolling itself feels. They are three different problems, and each of these is confined to the one it is best at.
Motion 12.42.2
Sections rise into place as they come into view, cards lift under the cursor, the reveal order staggers down a list. It runs animation on the browser’s own compositor where it can, which is the difference between movement that feels attached to the page and movement that stutters.
GSAP 3.15.0
The line that threads through the five stages of the process diagram, and the arcs that reach across the coverage map, are drawn on rather than faded in. Doing that means measuring the true length of each curve in the browser at the moment it runs, then animating the line from fully hidden to fully drawn.
That measurement is the reason this library is here. It is a specific capability, used in exactly two places.
Lenis 1.3.25
Gives the wheel a small amount of momentum, so the page feels like a surface being moved rather than a list jumping by fixed steps. Subtle by design: you would notice its absence sooner than its presence.
Its second job is quieter. Once anything is smoothing the scroll, two parts of the page can disagree about where the scroll actually is. Everything that reacts to scrolling is pointed at this one source instead, so they cannot drift apart.
Build and delivery
2Node.js runtime
Two small scripts of our own run either side of it: one pulls the latest videos from the channel before the site is built, one stamps the copyright notice into every page afterwards.
Cloudflare Pages hosting
The built folder is copied to servers worldwide and each visitor is answered by the nearest one. Because there is nothing to execute, hosting a site like this sits at the bottom of every pricing table, and often at zero.
What is deliberately not here
Every dependency is a thing that can break, get slower, change its licence or need updating. These are the ones worth naming because their absence is a decision, not an oversight.
No analytics or tracking scripts
Nothing on these pages reports your visitors to a third party. No tag manager, no pixels, no cookie banner needed, because there are no cookies to consent to. Measurement can be added later and deliberately, with a tool that does not require one.
No database, and no CMS to log into
Content lives in files that are versioned like code, so every change has an author and a date and can be undone. For a site this size that is faster to work with and impossible to leave unpatched.
No web fonts fetched from Google
The typefaces are served from your own domain. One less company knowing who reads your site, and one less connection to somebody else’s server before your text can appear.
No page builder, and no theme to outgrow
Nothing here is a template bought from somewhere with parts that cannot be reached. Every element on the page is ours to change, which is why the revisions you have asked for have been changes rather than workarounds.