// home.jsx — Home page function Hero({ onContactClick }) { const { navigate } = useRouter(); const slides = [ { eyebrow: 'Smart. Secure. Scalable.', h1: ['Smarter IT for', 'Gibraltar businesses'], body: 'We are the calm, capable IT partner small and mid-sized businesses lean on for cloud, cybersecurity, networks and day-to-day support.', img: 'assets/hero-network.jpg', }, { eyebrow: 'Managed IT, done properly', h1: ['Technology that', 'gets out of your way'], body: 'Named engineers, sub-12-minute response, and a roadmap that ties every pound of IT spend to a business outcome.', img: 'assets/hero-server.jpg', }, { eyebrow: 'Future-ready', h1: ['Cloud, security,', 'and a plan that fits'], body: 'We migrate, harden and run the platforms your business depends on \u2014 Microsoft 365, Azure, SentinelOne, Veeam and more.', img: 'assets/hero-cloud.jpg', }, ]; const [i, setI] = React.useState(0); const [paused, setPaused] = React.useState(false); React.useEffect(() => { if (paused) return; const t = setInterval(() => setI(x => (x + 1) % slides.length), 7000); return () => clearInterval(t); }, [paused]); const s = slides[i]; return (
setPaused(true)} onMouseLeave={() => setPaused(false)}> {/* decorative orbs */}
{s.eyebrow}

{s.h1[0]}
{s.h1[1]}

{s.body}

Browse services
{slides.map((_, ix) => (
{/* floating badges */}
Status
All systems healthy
11m
Avg first
response time
); } function StatBand() { const stats = [ { num: '12+', label: 'Years serving Gibraltar' }, { num: '60+', label: 'Active business clients' }, { num: '99.9%', label: 'Service uptime' }, { num: '<12m', label: 'Avg first response' }, ]; const ref = useReveal(); return (
{stats.map(s => (
{s.num}
{s.label}
))}
); } function ServicesShowcase({ onContactClick }) { const ref = useReveal(); return (
What we do

Six services. One trusted team.

From the strategy on the whiteboard to the engineer on the helpdesk, we cover the full IT lifecycle for your business.

All services
{SERVICES.map((svc, i) => (

{svc.title}

{svc.blurb}

    {svc.bullets.slice(0, 3).map(b => (
  • {b[0]}
  • ))}
Learn more ))}
); } function PartnerStrip() { const { partners } = useCms(); const list = [...partners, ...partners]; // for marquee return (
Trusted technology partners
{list.map((p, i) => (
{p.src ? ( {p.alt} ) : ( {p.text} )}
))}
); } function WhyBand() { const items = [ { icon: Icon.spark, title: 'A real partner, not a ticket queue', body: 'Named engineers who learn your environment. We pick up the phone \u2014 fast.' }, { icon: Icon.shield, title: 'Security baked in', body: 'EDR, identity hardening, immutable backups. We assume the bad day, then prepare for it.' }, { icon: Icon.bolt, title: 'On-time, on-budget delivery', body: 'Plain-English plans, milestones you can actually track, no scope-creep surprises.' }, ]; const ref = useReveal(); return (
Why CloudWise

The boring stuff, done brilliantly.

We are not in love with shiny tech for its own sake. We are obsessed with the unglamorous fundamentals — patches applied, backups tested, MFA enforced, tickets answered — that quietly keep good businesses running.

{items.map(it => (
{ e.currentTarget.style.background = 'rgba(31,182,255,0.08)'; e.currentTarget.style.borderColor = 'rgba(31,182,255,0.32)'; }} onMouseLeave={e => { e.currentTarget.style.background = 'rgba(255,255,255,0.04)'; e.currentTarget.style.borderColor = 'rgba(255,255,255,0.08)'; }}>

{it.title}

{it.body}

))}
); } function TestimonialBlock() { const ref = useReveal(); const { testimonials } = useCms(); const t = testimonials[0]; if (!t) return null; return (
Client story

Words from the people we work with.

“{t.quote}”

{t.img && }
{t.name}
{t.role}
); } function HomeCTA({ onContactClick }) { const ref = useReveal(); return (

Let's make technology work for you.

A 30-minute, no-obligation conversation to understand your business and where IT could be doing more — or less.

+350 225 02143
); } function HomePage({ onContactClick }) { useSEO('Smart, Secure, Scalable IT for Gibraltar', 'Managed IT, cloud, cybersecurity and support for Gibraltar businesses. Smart. Secure. Scalable.'); return (
); } window.HomePage = HomePage;