Openstatus www.openstatus.dev

feat: slack feed subscribe (#1599)

* feat: slack feed subscribe

* chore: update subscribe order

authored by

Maximilian Kaske and committed by
GitHub
667a3c95 f989c21e

+43 -5
+10
apps/docs/src/content/docs/reference/status-page.mdx
··· 33 33 You can access your status page data in JSON format by appending `/feed/json` to your status page URL. 34 34 35 35 Example: `https://status.openstatus.dev/feed/json` 36 + 37 + ### SSH Command 38 + 39 + Check the current status page anytime from your Terminal with: 40 + 41 + ``` 42 + ssh [slug]@ssh.openstatus.dev 43 + ``` 44 + 45 + Example: `ssh status@ssh.openstatus.dev`
+3 -3
apps/status-page/src/components/nav/header.tsx
··· 84 84 85 85 const types = ( 86 86 page?.workspacePlan === "free" 87 - ? ["rss", "ssh", "json"] 88 - : ["email", "rss", "json", "ssh"] 89 - ) satisfies ("email" | "rss" | "ssh" | "json")[]; 87 + ? ["rss", "ssh", "json", "slack"] 88 + : ["email", "rss", "json", "ssh", "slack"] 89 + ) satisfies ("email" | "rss" | "ssh" | "json" | "slack")[]; 90 90 91 91 return ( 92 92 <header {...props}>
+20 -2
apps/status-page/src/components/status-page/status-updates.tsx
··· 17 17 import { Check, Copy, Inbox } from "lucide-react"; 18 18 import { useState } from "react"; 19 19 20 - type StatusUpdateType = "email" | "rss" | "ssh" | "json"; 20 + type StatusUpdateType = "email" | "rss" | "ssh" | "json" | "slack"; 21 21 22 22 type Page = NonNullable<RouterOutputs["statusPage"]["get"]>; 23 23 ··· 31 31 32 32 export function StatusUpdates({ 33 33 className, 34 - types = ["rss", "ssh", "json"], 34 + types = ["rss", "ssh", "json", "slack"], 35 35 page, 36 36 onSubscribe, 37 37 ...props ··· 59 59 <TabsList className="w-full rounded-none border-b"> 60 60 {types.includes("email") ? ( 61 61 <TabsTrigger value="email">Email</TabsTrigger> 62 + ) : null} 63 + {types.includes("slack") ? ( 64 + <TabsTrigger value="slack">Slack</TabsTrigger> 62 65 ) : null} 63 66 {types.includes("rss") ? ( 64 67 <TabsTrigger value="rss">RSS</TabsTrigger> ··· 138 141 className="w-full" 139 142 id="ssh" 140 143 value={`ssh ${page?.slug}@ssh.openstatus.dev`} 144 + /> 145 + </div> 146 + </TabsContent> 147 + <TabsContent value="slack" className="flex flex-col gap-2"> 148 + <div className="flex flex-col gap-2 px-2 pb-2"> 149 + <p className="text-sm"> 150 + For status updates in Slack, paste the text below into any 151 + channel. 152 + </p> 153 + <CopyInputButton 154 + className="w-full" 155 + id="slack" 156 + value={`/feed subscribe ${baseUrl}/feed/rss${ 157 + page?.passwordProtected ? `?pw=${page?.password}` : "" 158 + }`} 141 159 /> 142 160 </div> 143 161 </TabsContent>
apps/web/public/assets/changelog/status-page-slack-feed-subscribe.png

This is a binary file and will not be displayed.

+10
apps/web/src/content/pages/changelog/status-page-slack-feed-subscribe.mdx
··· 1 + --- 2 + title: "Slack feed subscribe on status page" 3 + description: "Link the RSS feed to any Slack channel." 4 + image: "/assets/changelog/status-page-slack-feed-subscribe.png" 5 + publishedAt: "2025-12-03" 6 + category: "statuspage" 7 + author: "openstatus" 8 + --- 9 + 10 + Link the RSS feed to any Slack channel.