import Image from "next/image";
import Link from "next/link";
import { ContactForm } from "~/app/_components/contact-form";
import { MobileNav } from "~/app/_components/mobile-nav";
import { ThemeToggle } from "~/app/_components/theme-toggle";
const services = [
{
title: "Networks & Infrastructure",
body: "UniFi networking with wired links, wireless access, VLANs, and hardware that stays up when it counts.",
tag: "UniFi",
},
{
title: "Servers & Cloud",
body: "Local and cloud servers with web hosting, S3 storage, and backups tested by restore.",
tag: "Cloud",
},
{
title: "Databases",
body: "Designed, deployed, and operated under the stack, with backups, monitoring, and tested restores.",
tag: "Data",
},
{
title: "Web & Applications",
body: "Sites built and hosted from the marketing page to the ticket platform. When a site fails, one number gets the call.",
tag: "Web",
},
{
title: "Commerce & Ticketing",
body: "A ticket system built from scratch, plus a Shopify store running real event-day traffic, not a demo.",
tag: "Commerce",
},
{
title: "On-Site Operations",
body: "Event-day coverage at the counter, the gate, and wherever else the day requires. Most clients get this as part of the job.",
tag: "On-site",
},
];
export default function Home() {
return (
);
}
function Wordmark() {
return (
);
}
function Header() {
return (
);
}
const capabilities = [
"Networks",
"Servers",
"Cloud",
"Storage",
"Databases",
"Web",
"Commerce",
];
function Hero() {
return (
{/* The Hadlock Pond image fills the section with a slight darkening filter */}
{/* Scrims darken the top for the nav and the left for the text. They fade the base into the page */}
{/* Dark overlay, same treatment as the Racetix card, in dark mode */}
Everything technical, handled.
The same stack powers clients across Long Island — race tracks,
retailers, and web platforms. UniFi, cloud infrastructure, databases,
websites, ticketing, and commerce, built and operated by one person.
Hadlock Technologies is that work under one name.
{/* A capability strip, where DUNE puts its client logos */}
Working across
{capabilities.map((c) => (
{c}
))}
);
}
function Services() {
return (
{services.map((s) => (
{s.tag}
{s.title}
{s.body}
))}
);
}
function Approach() {
const points = [
{
title: "Full ownership",
body: "Everything from the network cable to the interface is built and owned in one place. Nothing gets lost in a handoff, because there is no handoff.",
},
{
title: "Hands-on, not hands-off",
body: "The person who designed the system is the person who fixes it, on-site when it matters. No ticket queue for an answer.",
},
{
title: "Built to stay up",
body: "Backups are tested. Monitoring alerts before a problem surfaces. The systems handle the busy night, not just an average Tuesday.",
},
];
return (
{points.map((p) => (
{p.title}
{p.body}
))}
);
}
const racetixFeatures = [
{
title: "Multi-tenant by track",
body: "Each track runs its own catalog, prices, and gate.",
},
{
title: "QR gate scanning",
body: "The scanner app verifies tickets offline at the gate.",
},
{
title: "Apple & Google Wallet",
body: "Paid tickets go straight into the phone wallet.",
},
{
title: "Stripe payments",
body: "Stripe Connect runs checkout, refunds, and tax.",
},
];
const beenvoiceFeatures = [
{
title: "Invoices that stay organized",
body: "Draft line items, apply taxes, send a link, and export a polished PDF.",
},
{
title: "Built-in time clock",
body: "Track billable hours as you work, then pull them into an invoice without retyping.",
},
{
title: "Recurring invoices",
body: "Set up retainers once, then let beenvoice generate the next invoice on schedule.",
},
{
title: "Send and follow up",
body: "Email invoices from the app and keep status visible from draft through paid.",
},
];
const racehubFeatures = [
{
title: "Events & schedule",
body: "Race events, special events, and iCal feeds for every fan's calendar.",
},
{
title: "Standings & results",
body: "Points, lineups, and results served live from the Hotlap API.",
},
{
title: "News & media",
body: "Articles, announcements, and promotions published from the CMS.",
},
{
title: "Granular permissions",
body: "97+ permissions, role-based access, and a full audit trail.",
},
];
const hristudioFeatures = [
{
title: "Visual experiment designer",
body: "Drag-and-drop blocks build branching protocols. No code required.",
},
{
title: "Guided wizard interface",
body: "Step-by-step trial execution with every action logged in time.",
},
{
title: "Robot-agnostic",
body: "Design once, run on any robot — NAO, Pepper, or TurtleBot.",
},
{
title: "Automatic data capture",
body: "Synchronized multi-modal streams, timestamped and exportable.",
},
];
function Projects() {
return (
The water at the top of this page is Hadlock Pond in Fort Ann, New
York. It is quiet, dependable, and built to last. This is the standard
held for infrastructure. You should not have to think about it for it
to work.