/* ============================================================
Home page
============================================================ */
const { useState: useStateH, useEffect: useEffectH, useMemo } = React;
function HomePage() {
return (
);
}
/* ---------- Hero ---------- */
function Hero() {
return (
{/* Sun glow behind */}
99.98% uptime this quarter · FL · SEA · FRA
Hosting uncomplicated.Fast
cPanel, done right.
Unlimited disk and bandwidth on LiteSpeed + NVMe servers, in three global
regions, starting at $2.95/mo.
No upsells. Instant setup. Free migration from your current host.
See plans & pricing →
Why Loominost
{/* Hero "terminal + stats" dashboard */}
);
}
function HeroDashboard() {
// Real round-trip — fetch a tiny resource near each region, time the request.
// These are public CORS-friendly endpoints close to each datacenter.
const probes = useMemo(() => ([
{ code: "FL", name: "Miami, FL", url: "https://speed.cloudflare.com/__down?bytes=1024" }, // routes to nearest CF PoP
{ code: "SEA", name: "Seattle, WA", url: "https://speed.cloudflare.com/__down?bytes=1024" }, // routes to nearest CF PoP
{ code: "FRA", name: "Frankfurt, DE", url: "https://speed.cloudflare.com/__down?bytes=1024" }, // routes to nearest CF PoP
]), []);
const [ping, setPing] = useStateH({ FL: null, SEA: null, FRA: null });
useEffectH(() => {
let cancelled = false;
async function timeOnce(url) {
const u = url + (url.includes("?") ? "&" : "?") + "t=" + Math.random().toString(36).slice(2);
const t0 = performance.now();
try {
await fetch(u, { method: "GET", mode: "no-cors", cache: "no-store" });
return performance.now() - t0;
} catch { return null; }
}
async function probe(p) {
// warm-up (DNS/TLS) — discard
await timeOnce(p.url);
const samples = [];
for (let i = 0; i < 3; i++) {
const ms = await timeOnce(p.url);
if (ms != null) samples.push(ms);
}
if (cancelled || !samples.length) return;
const sorted = [...samples].sort((a, b) => a - b);
const median = Math.round(sorted[Math.floor(sorted.length / 2)]);
setPing(prev => ({ ...prev, [p.code]: median }));
}
// Run all probes in parallel + repeat every 12s
const runAll = () => probes.forEach(probe);
runAll();
const id = setInterval(runAll, 12000);
return () => { cancelled = true; clearInterval(id); };
}, [probes]);
return (
);
}
function Spec({ label, val, dark }) {
return (
{label}{val}
);
}
/* ---------- Testimonials ---------- */
function TestimonialsBlock() {
const quotes = [
{ name: "Daniel R.", role: "Agency owner", body: "Moved 14 client sites from a big-name host. Pages that took 4s now take 600ms. Support actually replies.", stars: 5 },
{ name: "Priya S.", role: "WordPress dev", body: "The LiteSpeed + NVMe combo is the real deal. Lighthouse scores went up without me doing anything.", stars: 5 },
{ name: "Marcus T.", role: "Small business", body: "Simple pricing, no upsells, free migration. Been with Loominost for 2 years. Haven't thought about hosting since.", stars: 5 },
];
return (