Decommissioning the Swift Open Source Slack

happy new year Swifties!

as we head into the new year, one thing i personally would really love to leave in 2024 is the “90 day Slack messages hidden” problem which has proven incredibly frustrating and has caused the loss of a tremendous amount of information from this community.

the most obvious remedy would be to pay to upgrade the community’s subscription to Slack’s paid tier, but this would likely be prohibitively expensive and suck up a lot of money that could be allocated towards funding contributors to Swift and its ecosystem itself.

i personally also have deep misgivings about Slack, as they seem to retain all of our communications indefinitely, including private DMs, which they use to train AI models. this data is not accessible to us after 90 days, and there exists no means for us to request that it be deleted, which means our data has effectively been stolen once the 90 day visibility window lapses.

so as an alternative, i’d like to propose that we adopt Zulip which includes unlimited mobile notifications and search history and is supposedly free for open source projects. most notable, the Rust Community seems to be using Zulip for their real time communications.

in 2025, i propose that we decommission the Swift Slack Workspace and switch to Zulip as our official messaging host. WDYT?

14 Likes

Like the other suggestions to move to Discord or Mattermost etc, it's a problem of inertia and corporate governance.

Inertia is not a major problem to overcome - there's nothing stopping you from setting up an organisation on there and encourage people to join. That's how the Swift one started. If fact, I encourage you to do so!

The main issue is going to be persuading corporate IT that installing the Zulip/Discord/Mattermost/insert your alternative client here app is fine or the website is OK. The reason why Slack works so well is that it has already been approved so you don't need to go through the pain or trying to persuade IT and legal that you can use it. And that needs to be done for all the corporations that you want to encourage to join.

4 Likes

there’s a big difference between Zulip and Discord, my personal suspicion is that Zulip is going to be a much easier “sell” than Discord.

the problem of “inertia” is exactly why i think it’s important to explicitly say as a community that we are sunsetting Slack and recommending a different platform. otherwise people are going to just keep using the Slack, and we’ll end up with another xkcd 927 situation.

put another way, it’s a short term inconvenience to switch platforms, for a long term gain. if we don’t give people a reason to switch, they won’t bother to join a different platform or install another app. it’ll just add another platform to the portfolio of apps we need to monitor.

4 Likes

I was involved in moving another tech community off of gitter so have a few learnings and opinions on this subject that I would like to summarize here:

Discord

  • Most tech communities are using this so easiest option to setup and get people to use it
  • Functionaly works really well
  • main issue is conversations are not public and indexed by search engines

Slack

Zulip

  • Good fit
  • Low adoption by other communities
  • UX different so takes time to get used to it and puts some people off of using it

Matrix

  • ability to create a space is great allowing having a channel for each project grouped as a space
  • A lot of tech communities on there especially open source and FOSS
  • can be bridged to discord easily
  • requires extra moderation, spamming common
  • if using a public server like matrix.org , slow ! But does work
  • I am actually surprised Apple/Swift communities have such a low presence on here and to support FOSS/Open source this would be my chosen platform

Rust

They actually use both Zulip and Discord. My understanding is Zulip used for governance and contributors and discord more for users of the language. See this.

1 Like

Discord is fantastic if you want all your history to get lost in a sea of messages with terrible support for threads.

6 Likes

i understand that Discord has a lot of the desired functionality, and a better UI than Zulip, but it has a certain reputation for being “non work-related”, so something tells me that having a Discord tab open is going to be frowned upon in some workplaces, in a way that having a Slack or a Zulip tab open isn’t.

(of course, if you’re the boss, nobody cares if you’re looking at Discord in the office. but i’m young enough to remember how it felt being an intern under surveillance at my first tech job.)

Zulip is most promising in my opinion, if you arn’t familiar this podcast interview covers it nicely.

Hey all,

I’ve been lurking on this thread and others like it for a while as I think about chat for the Swift community. I’ve been swamped with other priorities though and unable to respond to some of the individual comments as I would have liked but really, really appreciate the discourse nonetheless.

Since I didn’t get a chance to respond to individuals, just going to write a blob here instead. :) It seems like the thread is mostly off of Slack but I think a lot about the below text still stands/applies.

Some notes:

  • Not responding in any “official” capacity like my Core Team hat; just an open source maintainer who has been down the chat platforms block a time or two :).
  • I have no personal or professional experience with Zulip - never used it in any capacity
  • I was an owner, administrator, and moderator of the one of largest open source Slack instance: Kubernetes
  • I created the initial moderation guidelines that it uses and has been forked many times
  • I’ve moderated (but never owned) many Discord servers

The Kubernetes Slack workspace is now over 200,000 members (you read that right!) which is a testament to the work that we (the K8s community) put into that platform. I have a lot of learnings, advice, and guidance that I can provide on this topic, especially things that I wouldn’t or would do again if we are in the same position.

Administering and moderating a chat platform with thousands+ of members is much harder work said than done. I have noticed a huge difference in administering different sizes and shapes (ex: much of the group knows each other vs never interacted). In 2025, there are indeed more automation, bots, and other tooling that can help scale than when we started out in 2016/2017 building custom workflows and ways to manage that type of community. We were so thankful to the initial engineers who spent countless hours on bootstrapping the infrastructure and the engineers who came along to help keep it running.

Pricing
Frankly, Slack is really expensive for what you are getting for an open source community. (Link to pricing guidelines.) Using the forums.swift.org membership as a price point, it would be close to 145k a month.

You can see the use of 'business' jargon on the Slack page because open source is not one of their use cases. Many organizations/employers/non-oss work justify the financial impact because it turns into a wiki/knowledge base; for open source, this would be antithetical.

There can/could be hosting and other infrastructure costs for other platforms as well.

Official documentation / async communications
A major regret I hold with Kubernetes and Slack is documentation, GitHub pull requests, Issues and more are littered with Slack links. If it wasn’t for the awesome team in sig-docs, I think our documentation site would be this Slack lol. I’m so glad it’s not though!

However, many of the decisions and "how we got there" notes are in Slack and people want to reference them. It's reasonable to want to document how you got to a certain decision or action. But in the worst of cases, some links “404” in some fashion: maybe a thread was deleted? maybe you don’t have access to the slack? Etc.

If a link is found in some kind of documentation or support and a user is trying to access it they have to agree to the terms of Slack in order to get help. This comment could also be applicable for other chat platforms, too.

Kubernetes didn’t have a strong forum like Swift does to push the conversations to at that time. It’s proven that people naturally gravitate towards real time communications - a quick fix - a quick answer - to be heard now if there is one available.

Official?
What does official mean to you when we talk about Swift having an "official" chat platform? I've talked to several people over the last few months and noted that folks have different things in mind that range from: paid instances, listed on the swift.org site, and more. What discussions do you see happening in an "official" platform? What does this mean to you?

Other community chat platforms
The other thing I’ve noted with the Swift community is the number of chat platforms that have spun up from community members. How do we address this and gather around an “official” without excluding those communities? Some of them appear to be low activity while others have a decent amount of traffic with sizable populations (over 5k members in many cases!).

Examples of community run:
-Swift Open Source Slack (Tim Condon and moderation team graciously host 1k folks there) https://swift-open-source.slack.com/
-Swift Discord (would love to talk to the folks that run this one! Over 6k members which is huge) Swift
-“The Swift Programming Language” Discord (180 members) The Swift Programming Language
-“The Swift Den” (1.3k members) The Swift Den
-“Hacking with Swift” (8.5k members)

  • Swift Server Conf Slack

(Not Swift but adjacent in some way)

Vapor Discord (almost 4k members)
SwiftWASM Discord
LLVM Discord (with Swift channel)
iOS Developers Slack
Playdate Discord (has a #dev-swift channel)

What others am I missing?? :sweat_smile:

Discourse Forum Chat

Has anyone tried the chat feature in Discourse (which is what forums.swift.org is based on)? Several other tech forums have this enabled and most don’t use it because they have other chat platforms and thought it was redundant. Curious about the experience folks may have had while interfacing with this feature in other forums.

Zulip

Are there other open source communities that publish their moderation, infrastructure, and/or operations of Zulip? I see Rusts here: Zulip - Rust Forge (operations) and here: Moderation - Rust Forge (moderation). Curious about other examples though. I saw a few folks say it has low adoption. Thanks for everyone commenting above about experiences and resources for catching up on zulip.
Who would moderate and under what guidelines?
Curious about why greenfield Zulip vs Discord and/or building up one of the existing communities?

@karenchu has a ton of experience moderating various chat platforms as well and curious if she has more to add here.

-[Paris

12 Likes

Very interesting topic over all…

For now I’ll just answer Paris’s question if anyone is using Zulip. I know that the Pony language (very cool language but the community is pretty small) is using zulip: News - Pony
My impressions of the tool were not that great to be honest.

There is a lot of value of using a tool that’s seen more “business serious” as silly as that sounds, if we want to make Swift seem serious to businesses evaluating it. Kinda like the large Slack instance of K8s is an indicator of the health of the community.

Losing information in chat is a huge problem though so it would be great to solve this long term…

9 Likes

Totally hear you on the frustrations with Slack’s 90-day message limit—it’s been a real pain point and has undeniably led to a loss of valuable knowledge and history within the community.

2 Likes

That was super insightful, Paris! Thank you for sharing :folded_hands:

To me, I would assume something is "official" if it's shared on the swift.org site. With that, I would expect that it's funded and ultimately administrated (moderators can be community members) by the same entity managing the swift.org site. Beyond that I would also expect to find the most community members and conversations (across multiple topics - not just technical discussion) happening on this platform – it'd need to have critical weight.

I haven't personally tried Discourse Forum Chat but perhaps this might be a great option since it already has an established base of users – we'd have a head start on establishing critical weight. Same audience, just an additional way of communicating with each other.

As for Zulip, I've used this for Bytecode Alliance (I'm not a power user so I may be missing some details). It's...okay. It's not terribly exciting and lacks some Slack features I really appreciate like reply to specific messages (threading). To me, it feels like a middle ground between a real-time chat platform and Swift Forums; will that be enough of a difference to get people to move beyond Swift Forums? I'm not sure.

Curious to hear others' thoughts!

1 Like