import { Metadata } from "next"; import { getAllServices, SERVICE_CATEGORIES, type ServiceCategoryId } from "@/lib/services"; import ServiceCard from "@/components/ServiceCard"; import Link from "next/link"; export const revalidate = 86400; export const metadata: Metadata = { title: "Services — Van Hunen IT", description: "Explore Van Hunen IT's fixed-scope sprints and managed solutions — from VPS hardening and Docker orchestration to Kubernetes, Cloudflare, Core Web Vitals, and Minecraft operations.", alternates: { canonical: "/services" }, }; export default function ServicesPage() { const services = getAllServices(); const categories: ServiceCategoryId[] = Object.keys(SERVICE_CATEGORIES) as ServiceCategoryId[]; return (
{/* --- Hero Header --- */}

Professional IT Services

Fixed-scope sprints and managed plans for{" "} VPS, Docker, Kubernetes,{" "} Cloudflare, Core Web Vitals, and{" "} Minecraft. Clear outcomes, flat pricing, and proof you can keep.

{categories.map((id) => ( {SERVICE_CATEGORIES[id].label} ))}
{/* --- Service Categories --- */}
{categories.map((id, index) => { const list = services.filter((s) => s.category === id); if (!list.length) return null; return (

{SERVICE_CATEGORIES[id].label}

Jump to top ↑
{list.map((svc, i) => (
))}
); })}
{/* --- CTA footer --- */}

Ready to optimize your IT infrastructure?

Get in touch to discuss your goals — we’ll help you choose the right sprint or managed plan.

Contact Us
); }