Two subscription plans. Hosting, domain, and SEO included. Built and maintained by a two-person studio so you can focus on the work that actually matters.
—Based in Ireland · serving businesses across the EU
made with care
);
}
/* ============================================================
V2 — Production hero
Asymmetric two-column on desktop, stacked on mobile.
Big floating browser mock with rotating-industry headline.
============================================================ */
function HeroVariant2() {
const sectionRef = React.useRef(null);
const [industryIdx, setIndustryIdx] = React.useState(0);
// Rotate the industry word every 2.4s with a soft crossfade
React.useEffect(() => {
if (window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
const id = setInterval(() => {
setIndustryIdx(i => (i + 1) % HERO_INDUSTRIES.length);
}, 2400);
return () => clearInterval(id);
}, []);
// Cursor-aware spotlight (desktop, fine pointer only)
React.useEffect(() => {
const el = sectionRef.current;
if (!el) return;
if (window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
if (window.matchMedia && window.matchMedia("(pointer: coarse)").matches) return;
let raf = 0;
let pendingX = 50, pendingY = 30;
const onMove = (e) => {
const r = el.getBoundingClientRect();
pendingX = ((e.clientX - r.left) / r.width) * 100;
pendingY = ((e.clientY - r.top) / r.height) * 100;
if (!raf) raf = requestAnimationFrame(() => {
el.style.setProperty("--mx", pendingX + "%");
el.style.setProperty("--my", pendingY + "%");
raf = 0;
});
};
el.addEventListener("pointermove", onMove);
return () => { el.removeEventListener("pointermove", onMove); if (raf) cancelAnimationFrame(raf); };
}, []);
const cur = HERO_INDUSTRIES[industryIdx];
return (
{/* Layered ambient background */}
{/* ---------- LEFT: copy ---------- */}
IE/COM domain with EU hosting
We build websites for{" "}
{cur.word}
and the small businesses{" "}
that make them.
Website as a service. We design, build, and host your website — live in days, looked after for life.
Live in days, not months99.9% uptime on EU serversSSL, backups, security included