spb/satelliteindex
Public
TypeScript 66.5%
Python 30.9%
JavaScript 1.4%
CSS 0.7%
1import type { Metadata } from 'next';2import Link from 'next/link';3import { ATTRIBUTION, DISCLAIMER } from '@/components/meta/legal';4import { Callout, Prose } from '@/components/meta/prose';5import { Container, PageHeader, Section } from '@/components/ui/section';6import { AUTHOR, CONTACT_EMAIL, SITE_URL, routes } from '@/lib/site';78export const metadata: Metadata = {9 title: 'Terms of use',10 description: 'SatelliteIndex is an informational platform provided as is. Disclaimer, attribution of sources and limits of use.',11 alternates: { canonical: `${SITE_URL}/terms` },12 openGraph: { title: 'Terms of use | SatelliteIndex', description: 'Informational platform, provided as is. Disclaimer, attribution and limits of use.', url: `${SITE_URL}/terms` },13 twitter: { card: 'summary', title: 'Terms of use | SatelliteIndex', description: 'Informational platform, provided as is.' },14};1516export default function TermsPage() {17 return (18 <Container>19 <PageHeader eyebrow="Terms" title="Terms of use" lede="Short, because the situation is simple: this is a free informational reference built from public catalogs, offered without warranty." />2021 <Section eyebrow="1" title="Informational platform" className="pt-0">22 <Callout tone="warn" className="mt-0">23 {DISCLAIMER}24 </Callout>25 <Prose className="mt-4">26 <p>27 Positions are propagated with SGP4 from published element sets and degrade with the age of those elements; statuses, owners and launch data follow the upstream catalogs with their own latency; classifications such as orbit class, mission type and constellation membership are derived by documented rules and can be wrong for individual objects. Freshness and provenance are displayed on every page so you can judge each value yourself.28 </p>29 </Prose>30 </Section>3132 <Section eyebrow="2" title="No warranty, limitation of liability">33 <Prose>34 <p>35 The site and its API are provided <strong>as is</strong> and <strong>as available</strong>, without warranty of any kind, express or implied, including accuracy, completeness, fitness for a particular purpose or uninterrupted availability. To the fullest extent permitted by law, {AUTHOR} accepts no liability for any loss or damage arising from the use of, or reliance on, the information published here.36 </p>37 </Prose>38 </Section>3940 <Section eyebrow="3" title="Sources and attribution">41 <Prose>42 <p>{ATTRIBUTION}</p>43 <p>44 Upstream data remains subject to the terms of its publishers, listed with each source on <Link href={routes.sources()} className="link">/sources</Link>. If you reuse data obtained from SatelliteIndex, keep those attributions — in particular <em>“Orbital data courtesy of CelesTrak”</em> — and link back to this site for derived values.45 </p>46 </Prose>47 </Section>4849 <Section eyebrow="4" title="Acceptable use of the API">50 <Prose>51 <p>52 The public API is free during the MVP phase and rate-limited per client (limits on <Link href={routes.developers()} className="link">/developers</Link>). Do not attempt to bypass rate limits, scrape the HTML pages in bulk when the API provides the same data, or access the private <code>/admin</code> area. Abusive clients may be blocked without notice.53 </p>54 </Prose>55 </Section>5657 <Section eyebrow="5" title="Changes and contact">58 <Prose>59 <p>60 These terms may change as the platform evolves (for example when API keys or paid tiers are introduced); the current version is always the one published at this address. Questions: <a href={`mailto:${CONTACT_EMAIL}`} className="link">{CONTACT_EMAIL}</a>. See also the <Link href={routes.privacy()} className="link">privacy page</Link>.61 </p>62 </Prose>63 </Section>64 </Container>65 );66}67