export const SITE_NAME = 'SatelliteIndex'; export const SITE_URL = (process.env.NEXT_PUBLIC_SITE_URL ?? 'https://www.satelliteindex.io').replace(/\/$/, ''); export const TAGLINE = "The world's orbital infrastructure, mapped and indexed"; export const DESCRIPTION = 'SatelliteIndex is the public intelligence layer for everything in Earth orbit: satellites, constellations, operators, countries, launches, debris and reentries — with live SGP4 positions, orbital history and transparent sources.'; export const CONTACT_EMAIL = 'contact@spboucher.ai'; export const AUTHOR = 'Simon-Pierre Boucher'; export const routes = { home: () => '/', explore: () => '/explore', search: (q?: string) => (q ? `/search?q=${encodeURIComponent(q)}` : '/search'), satellites: (qs?: string) => (qs ? `/satellites?${qs}` : '/satellites'), satellite: (slug: string) => `/satellite/${slug}`, constellations: () => '/constellations', constellation: (slug: string) => `/constellation/${slug}`, operators: () => '/operators', operator: (slug: string) => `/operator/${slug}`, countries: () => '/countries', country: (slug: string) => `/country/${slug}`, launches: (qs?: string) => (qs ? `/launches?${qs}` : '/launches'), launch: (cospar: string) => `/launch/${cospar}`, launchSites: () => '/launch-sites', launchSite: (slug: string) => `/launch-sites/${slug}`, debris: () => '/debris', reentries: () => '/reentries', events: (qs?: string) => (qs ? `/events?${qs}` : '/events'), stats: () => '/stats', rankings: (metric?: string) => (metric ? `/rankings?metric=${metric}` : '/rankings'), sources: () => '/sources', methodology: () => '/methodology', status: () => '/status', statusData: () => '/status/data', developers: () => '/developers', about: () => '/about', privacy: () => '/privacy', terms: () => '/terms', admin: () => '/admin', } as const; export const primaryNav = [ { href: routes.explore(), label: 'Explore' }, { href: routes.satellites(), label: 'Satellites' }, { href: routes.constellations(), label: 'Constellations' }, { href: routes.operators(), label: 'Operators' }, { href: routes.countries(), label: 'Countries' }, { href: routes.launches(), label: 'Launches' }, { href: routes.events(), label: 'Events' }, { href: routes.stats(), label: 'Stats' }, ] as const; export const moreNav = [ { href: routes.debris(), label: 'Debris' }, { href: routes.reentries(), label: 'Reentries' }, { href: routes.rankings(), label: 'Rankings' }, { href: routes.launchSites(), label: 'Launch sites' }, { href: routes.sources(), label: 'Sources' }, { href: routes.methodology(), label: 'Methodology' }, { href: routes.status(), label: 'Status' }, { href: routes.developers(), label: 'API' }, { href: routes.about(), label: 'About' }, ] as const; export const ORBIT_CLASS_COLORS: Record = { LEO: 'var(--leo)', MEO: 'var(--meo)', GEO: 'var(--geo)', HEO: 'var(--heo)', OTHER: 'var(--other)', UNKNOWN: 'var(--other)', }; export const STATUS_COLORS: Record = { ACTIVE: 'var(--active)', INACTIVE: 'var(--inactive)', DECAYED: 'var(--ink-3)', UNKNOWN: 'var(--warn)', LOST: 'var(--danger)', FAILED: 'var(--danger)', PLANNED: 'var(--accent-2)', }; export const MISSION_LABELS: Record = { communications: 'Communications', 'earth-observation': 'Earth observation', navigation: 'Navigation', weather: 'Weather', science: 'Science', military: 'Military', technology: 'Technology', iot: 'IoT / M2M', station: 'Space station', 'rocket-body': 'Rocket body', debris: 'Debris', unknown: 'Unknown', }; export const OBJECT_TYPE_LABELS: Record = { PAYLOAD: 'Payload', ROCKET_BODY: 'Rocket body', DEBRIS: 'Debris', STATION: 'Space station', UNKNOWN: 'Unknown', CREWED: 'Crewed', }; export const EVENT_TYPE_LABELS: Record = { SATELLITE_LAUNCH: 'Launch', DECAY: 'Decay / reentry', ORBIT_CHANGE: 'Orbit change', SATELLITE_DECOMMISSION: 'Decommission', SATELLITE_ACTIVATION: 'Activation', REENTRY: 'Reentry', CONSTELLATION_EXPANSION: 'Constellation expansion', REGULATORY_APPROVAL: 'Regulatory approval', NEW_LICENSE: 'New license', COMPANY_ANNOUNCEMENT: 'Announcement', };