Openstatus www.openstatus.dev
at main 228 lines 4.3 kB view raw
1import { 2 getComparePages, 3 getProductPages, 4 getToolsPages, 5} from "@/content/utils"; 6import type { Region } from "@openstatus/regions"; 7 8const products = getProductPages(); 9 10const productsSection = { 11 label: "Products", 12 items: products.map((product) => ({ 13 label: product.metadata.title, 14 href: `/${product.slug}`, 15 })), 16}; 17 18const resourcesFooterSection = { 19 label: "Resources", 20 items: [ 21 { 22 label: "Blog", 23 href: "/blog", 24 }, 25 { 26 label: "Pricing", 27 href: "/pricing", 28 }, 29 { 30 label: "Docs", 31 href: "https://docs.openstatus.dev", 32 }, 33 { 34 label: "Guides", 35 href: "/guides", 36 }, 37 { 38 label: "External Status", 39 href: "/status", 40 }, 41 { 42 label: "OSS Friends", 43 href: "/oss-friends", 44 }, 45 { 46 label: "Marketing V1", 47 href: "https://v1.openstatus.dev", 48 }, 49 ], 50}; 51 52const resourcesHeaderSection = { 53 label: "Resources", 54 items: [ 55 { 56 label: "Docs", 57 href: "https://docs.openstatus.dev", 58 }, 59 { 60 label: "Blog", 61 href: "/blog", 62 }, 63 { 64 label: "Changelog", 65 href: "/changelog", 66 }, 67 { 68 label: "Global Speed Checker", 69 href: "/play/checker", 70 }, 71 { 72 label: "Compare", 73 href: "/compare", 74 }, 75 ], 76}; 77 78const companySection = { 79 label: "Company", 80 items: [ 81 { 82 label: "About", 83 href: "/about", 84 }, 85 { 86 label: "Changelog", 87 href: "/changelog", 88 }, 89 { 90 label: "I'm an LLM", 91 href: "https://www.openstatus.dev/llms.txt", 92 }, 93 { 94 label: "Terms", 95 href: "/terms", 96 }, 97 { 98 label: "Privacy", 99 href: "/privacy", 100 }, 101 { 102 label: "Subprocessors", 103 href: "/subprocessors", 104 }, 105 ], 106}; 107 108const compareSection = { 109 label: "Compare", 110 items: getComparePages().map((page) => ({ 111 label: page.metadata.title, 112 href: `/compare/${page.slug}`, 113 })), 114}; 115 116const toolsSection = { 117 label: "Tools", 118 items: [ 119 ...getToolsPages() 120 .filter((page) => page.slug !== "checker-slug") 121 .map((page) => ({ 122 label: page.metadata.title, 123 href: `/play/${page.slug}`, 124 })), 125 { 126 label: "Theme Explorer", 127 href: "https://themes.openstatus.dev", 128 }, 129 { 130 label: "All Status Codes", 131 href: "https://openstat.us", 132 }, 133 { 134 label: "Vercel Edge Ping", 135 href: "https://light.openstatus.dev", 136 }, 137 ], 138}; 139 140const communitySection = { 141 label: "Community", 142 items: [ 143 { 144 label: "Discord", 145 href: "https://openstatus.dev/discord", 146 }, 147 { 148 label: "GitHub", 149 href: "https://openstatus.dev/github", 150 }, 151 { 152 label: "X", 153 href: "https://openstatus.dev/twitter", 154 }, 155 { 156 label: "BlueSky", 157 href: "https://openstatus.dev/bsky", 158 }, 159 { 160 label: "YouTube", 161 href: "https://openstatus.dev/youtube", 162 }, 163 { 164 label: "LinkedIn", 165 href: "https://openstatus.dev/linkedin", 166 }, 167 ], 168}; 169 170export const playSection = { 171 label: "Play", 172 items: [ 173 ...getToolsPages() 174 .filter((page) => page.slug !== "checker-slug") 175 .map((page) => ({ 176 label: page.metadata.title, 177 href: `/play/${page.slug}`, 178 })), 179 { 180 label: "Theme Explorer", 181 href: "https://themes.openstatus.dev", 182 }, 183 { 184 label: "All Status Codes", 185 href: "https://openstat.us", 186 }, 187 { 188 label: "Vercel Edge Ping", 189 href: "https://light.openstatus.dev", 190 }, 191 { 192 label: "React Data Table", 193 href: "https://logs.run", 194 }, 195 { 196 label: "Shadcn Time Picker", 197 href: "https://time.openstatus.dev", 198 }, 199 { 200 label: "Astro Status Page", 201 href: "https://astro.openstat.us", 202 }, 203 ], 204}; 205 206export const headerLinks = [productsSection, resourcesHeaderSection]; 207 208export const footerLinks = [ 209 productsSection, 210 resourcesFooterSection, 211 companySection, 212 compareSection, 213 toolsSection, 214 communitySection, 215]; 216 217// -------------------------------- 218 219export type RegionMetricsChartTable = { 220 region: Region; 221 count: number; 222 ok: number; 223 p50Latency: number | null; 224 p75Latency: number | null; 225 p90Latency: number | null; 226 p95Latency: number | null; 227 p99Latency: number | null; 228};