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