diff --git a/website/src/components/Contribute.tsx b/website/src/components/Contribute.tsx index d55e3cf..473ee8d 100644 --- a/website/src/components/Contribute.tsx +++ b/website/src/components/Contribute.tsx @@ -17,6 +17,13 @@ * =========================LICENSE_END================================== */ +import { SlackIcon } from './icons' + +/** LF Edge Slack — workspace invite is open to anyone; the channel link needs workspace membership. */ +const SLACK_CHANNEL_URL = 'https://lfedge.slack.com/archives/C077JQ50R45' +const SLACK_INVITE_URL = 'https://slack.lfedge.org/' +const MAILING_LIST_URL = 'https://lists.lfedge.org/g/instantx-TSC' + const CARDS = [ { href: 'https://github.com/lf-edge/instantx/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22', @@ -79,6 +86,51 @@ function Contribute() { ))} +
+ + + +
+

InstantX on the LF Edge Slack

+

+ Day-to-day project chat lives in the InstantX channel of the LF Edge Slack workspace — design + questions, integration help, release coordination and community calls. Maintainers and adopters + read it, so it is the quickest way to reach someone. +

+
+
+
Workspace
+
lfedge.slack.com
+
+
+
Channel
+
+ + InstantX project channel ↗ + +
+
+
+
Mailing list
+
+ + instantx-TSC ↗ + +
+
+
+
+
+ + + Open the channel + + + Get a Slack invite + +
+
+
PR flow {FLOW_STEPS.map((step, i) => ( diff --git a/website/src/components/Footer.tsx b/website/src/components/Footer.tsx index 2714df2..313f3e5 100644 --- a/website/src/components/Footer.tsx +++ b/website/src/components/Footer.tsx @@ -61,6 +61,8 @@ function Footer() {

Community

Discussions + Slack channel + Mailing list · instantx-TSC Contributing Code of conduct License · MIT + Apache-2.0 diff --git a/website/src/components/icons.tsx b/website/src/components/icons.tsx index 0fe17be..74f939d 100644 --- a/website/src/components/icons.tsx +++ b/website/src/components/icons.tsx @@ -25,6 +25,17 @@ export function GitHubIcon() { ) } +export function SlackIcon() { + return ( + + ) +} + export function ArrowRightIcon({ className }: { className?: string }) { return (