spb/satelliteindex
Public
TypeScript 66.5%
Python 30.9%
JavaScript 1.4%
CSS 0.7%
1import Link from 'next/link';2import { Wordmark } from '@/components/brand/logo';3import { AUTHOR, CONTACT_EMAIL, routes } from '@/lib/site';45const columns = [6 { title: 'Explore', links: [[routes.explore(), 'Live globe'], [routes.satellites(), 'Satellites'], [routes.constellations(), 'Constellations'], [routes.operators(), 'Operators'], [routes.countries(), 'Countries']] },7 { title: 'Activity', links: [[routes.launches(), 'Launches'], [routes.launchSites(), 'Launch sites'], [routes.debris(), 'Debris'], [routes.reentries(), 'Reentries'], [routes.events(), 'Events']] },8 { title: 'Data', links: [[routes.stats(), 'Statistics'], [routes.rankings(), 'Rankings'], [routes.sources(), 'Sources'], [routes.methodology(), 'Methodology'], [routes.status(), 'Status'], [routes.developers(), 'API']] },9 { title: 'SatelliteIndex', links: [[routes.about(), 'About'], [routes.privacy(), 'Privacy'], [routes.terms(), 'Terms'], [`mailto:${CONTACT_EMAIL}`, 'Contact']] },10] as const;1112export function SiteFooter() {13 return (14 <footer className="mt-16 border-t border-rule bg-plane/40">15 <div className="container-x mx-auto max-w-[1600px] py-10">16 <div className="grid gap-8 md:grid-cols-[1.4fr_repeat(4,1fr)]">17 <div>18 <Wordmark />19 <p className="mt-3 max-w-xs text-sm leading-relaxed text-ink-3">The world’s orbital infrastructure, mapped and indexed. Canonical, source-attributed data on everything in Earth orbit.</p>20 </div>21 {columns.map((c) => (22 <div key={c.title}>23 <p className="eyebrow mb-3">{c.title}</p>24 <ul className="space-y-1.5">25 {c.links.map(([href, label]) => (26 <li key={href}>27 <Link href={href} className="inline-block py-1 text-sm text-ink-2 hover:text-ink">{label}</Link>28 </li>29 ))}30 </ul>31 </div>32 ))}33 </div>34 <div className="mt-10 border-t border-rule pt-6 text-xs leading-relaxed text-ink-3">35 <p>SatelliteIndex aggregates public and licensed orbital, governmental, scientific, and operator data from multiple sources. Orbital data courtesy of CelesTrak. Derived classifications (constellation membership, orbit class, mission type) follow the published methodology.</p>36 <p className="mt-2">37 SatelliteIndex.io is an informational platform. Orbital positions, predictions, conjunction information, reentry predictions, and derived metrics may contain delays or uncertainty and must not be used as the sole source for safety-critical, navigation, mission-control, military, or operational decisions.38 </p>39 <p className="mt-3">40 © {new Date().getUTCFullYear()} {AUTHOR} · <a href={`mailto:${CONTACT_EMAIL}`} className="hover:text-ink">{CONTACT_EMAIL}</a> · Hosted on{' '}41 <a href="https://www.maclustr.io" className="hover:text-ink" rel="noopener">MacLustr</a>42 </p>43 </div>44 </div>45 </footer>46 );47}48