Hello again Strapi Community!
Today we wanted to talk to you about our community communication platforms and some plans we have been working on for a few months now. As you may know, for our first StrapiConf we hosted its chat on a new official Strapi Discord server, and we also ran a forum post asking for a bit of feedback from all of you. What we have decided on, and will be implementing over the next few months, is a plan to move from our existing Community Slack to the new Community Discord. Below you will find some details about what we are planning, how long the migration will take, and what you can expect.
We have opened a new forum post for you to provide your feedback on this plan and assist us in finding the best solutions to fit the community's needs We certainly did hear a number of both positive and negatives about the Discord platform, and below you will find the most popular negatives we collected and how we plan to address them.
Just a hint of statistics
Slack
As you may (or may not) know, the Strapi Community Slack has been around for almost as long as Strapi has. It originally came to be back on Jun 1st, 2016. In that time, our community has grown exponentially year after year and as of the past year or so it’s growing exponentially faster every month.
Messages
Since the beginning of the Community Slack, we have collectively sent over half a million messages, and we are only able to see and search through the past 10,000. That’s a lot of lost communication between all of you and the information you have shared with us.
Members
Over time our member numbers have grown faster than the number of GitHub stars we have, and as we continue to grow, so will the number of messages. As of April 21st, 2021, we had just under 15,000 members on our Community Slack. If every single member posted only a single message, a third of those messages would be lost immediately.
Strapi Forum
You may ask yourself, “if this blog post is about Discord, why are we mentioning the Strapi Forum?” and to that, let me explain a bit about some methods of communication. When you are searching for answers to your questions, there are usually two means used most commonly:
Directly searching on a Search Engine, Documentation, or a Forum. Joining a community IRC (Internet Relay Chat) and asking people live.
For most of Strapi’s lifetime, we only ever had our Documentation and the Slack. Back in August of 2020 we launched the Community Forum and we immediately saw a substantial increase in its usage while also seeing a decrease in our Slack usage. While we can only speculate the exact reasons for this, one key point is the new Community Forum is indexed by search engines. This means that any time you search for a question about Strapi, there is a good chance someone else has asked that same question, and it was already answered. This not only helps you find the answer to your question faster but promotes you to help others with their own.
Threads & Posts
Just within the first full quarter of the Strapi Community Forum being live (Q1 2021) we had over 600 threads and over 2,100 posts.
Members
Much like the threads and posts on the Strapi Community Forum, our member registration and new contributors have also far exceeded our expectations. Currently, we have just under 2,000 registered members and averaging 50 new contributors per week!
Where does Discord fit in?
One of Strapi’s User Success team goals is to ensure our Community has the tools and resources they need to succeed. There are 4 sub-teams under User Success:
- Documentation
- Support / Solution Engineers
- Customer Success
- Learning (a new team we are building)
To date, both the Community Slack and Community Forums have fallen under the Support / Solution Engineering team, my team. To ensure the success of our users, you the community, we want to ensure we are promoting and helping to provide the best tools we can offer.
However, Strapi alone cannot completely manage hundreds of thousands of users, we need to be able to promote our most active community members. We introduced a program last year called the Strapi Community Stars and hand-picked from the wonderful Strapi community those who showed proactive engagement, users who without any encouragement from the Strapi team engaged with others, helped them, developed new packages, wrote tutorials/guides/articles, and assisted with GitHub issues.
Our hope in the future is that with a fresh perspective and new platform, we can continue evolving this program and give the Community Stars the tools they need to go even further. Slack has never really offered the tools we needed to allow for community moderators, and the scope of integrations and bots is extremely limited within the free version of Slack. To upgrade to a paid subscription means we would need to pay a monthly price for each user! At a current price of roughly $7.50/user/month and our current total users at roughly 15,000 that breaks down to about $112,000/month, which just is not feasible.
Discord, on the other hand, has far fewer restrictions for large communities. It has built in tooling such as permissions, roles, and moderation tools with a wide range of added features like voice, video, and screen sharing options that would make troubleshooting far easier for everyone in the community. We will of course, be assisting this ourselves by paying for 15 Discord Nitro boosts and leaving 15 additional boosts to any of our community members who wish to help boost the server (and get an awesome custom role and user color). These 15 boosts give us the following additional features:
- Total of 150 custom emojis (we are considering running some contests to have custom Strapi themed emojis added)
- 256 Kbps audio quality (up from the default 96 Kbps)
- A Server banner (which we would love to see some community created banners!)
- 50 MB file size upload limits for everyone on the server
- 1080p 60fps Live video streams
Common negatives and our plans on them
In our initial forum thread when we ran a poll to see if the community was interested in migrating from Slack to Discord, there were a few concerns raised, and we would like to address them directly. Naturally, some may not be included on this list, and if we missed a few, please do let us know in the feedback forum post.
- Lack of Threads
- For the bulk of help requests we believe that if a topic requires a complex level of communication, those questions should be directed to our Community Forum. And beyond that, Discord has a built-in reply feature, and we will have different opt-in channels for different types of questions. On top of that, we have seen some very early prototypes of Discord threads that we believe the Discord team is actively working on.
- Discord is not “Professional”
- Discord in the past used to market their platform “for gamers”. However, recently that has changed and they are now branding themselves as “a place to talk”. They have even stated as much in one of their official blog posts from June of 2020. On top of that, there are various other official Discord communities such as Vue.js, Nuxt.js, Next.js, TailwindCSS, Free Code Camp, Gatsby, Typescript, Storybook, Code Academy, and many others.
- Why we didn’t choose an Open-Source self-hosted platform like Mattermost
- While we at Strapi believe in promoting and using Open-Source Software, we also believe in using the right tool for the job. We did consider other options and did quite a bit of prototyping and testing on other platforms; Mattermost was certainly on our list. We are, for example, using a self-hosted version of Discourse for the Community Forum to ensure we could customize it to fit our needs. There is, however, a cost that typically comes with self-hosted software, our primary concern was bandwidth for voice and video communication along with cost. Solutions like Strapi fit the self-hosted ecosystem quite well in that websites have been around for years and rarely make large jumps in technological capabilities. The security aspects are also extremely well known. IRC based communication has existed almost as long as websites but they also have had an exponential growth in their capabilities, and with that requires more complex applications and thus cost.
- Discord being purchased by another company
- While this is a risk, it was not long ago that Slack was purchased by Salesforce and we had the same concerns that additional arbitrary limitations would be put on our Community Slack. To date, we do not believe that Discord intends to be acquired by another company and is likely going to go public instead and we do not see this as a very high risk migration.
- No “Multi-Accounts” (Work vs Personal)
- Discord allows for users to set their own nicknames on a per-server basis and we have ensured that everyone has that ability as well. If there are concerns about your company blocking Discord at work while you feel it is important for you to have access to that we would urge you to reference this blog post within your business. Likewise, if you are a business using Strapi we do have enterprise support plans included in some of our licenses that may better fit your needs.
Current Migration Plan
Please note that this plan is still subject to change (based on timelines and your feedback). We have already started phase one and as you read this pending one week to collect feedback and adjust the plan accordingly. If you wish to provide any feedback, please do so on our dedicated forum post.
Phase 1 - Planning and Preparation
Much of the initial planning for the Discord server was done based on the needs of StrapiConf and we are now adapting the server to fit a more focused community need instead. As such, these were our initial steps:
- Archive all StrapiConf text channels for informational purposes.
- Configure informational channels for things like news, announcements, and links to resources
- Create distributed help channels for various topics (to see what we have implemented already see the forum post, we would love suggestions)
- Mirrored various general channels from our Slack (Jobs, General, Random-off-topic, etc)
- Configured meta channels for automated messages from GitHub, our Forum, and Twitter
- Configure roles for both opt-in help channels and various ping alerts (no more @here or @everyone)
- Adding and preparing to build various Discord bots to assist with easily automated tasks
- Creating the feedback forum post to collect feedback and concerns and respond appropriately or include recommended changes
ETA: May 25, 2021
Phase 2 - Implementation and Migration
This phase will be the slow rollout, we intended to give ample time for everyone to make the switch and so this phase will last a few weeks as we slowly start making changes. It will be ran in parallel with phase 1.
- Week 0 (has already happened)
- Remove all extra channels from Slack including the meta channels, jobs, and various private and locked channels. These will be immediately available on the Discord server.
- Weeks 1 through 2
- Posting a message on the Slack and Twitter with the invite URL
- Releasing an additional blog post detailing the move with any changes based on feedback from the forum post
- Update all Strapi resources including the website, previous blog posts, documentation, GitHub repos, ect and removing the link to our Slack and replacing it with our Discord invite.
- Delete the random-off-topic channel from Slack
- Weeks 3 through 4
- Begin reaching out to Slack members directly via email to invite them to the new Discord and notify them the Slack will be shutdown
- Promoting users in the Slack help channel to move their questions over to Discord or the Forum Week 5
- Remove all remaining Slack channels except for the general
- Place a message in the Slack general channel stating the server is being shutdown and provide a link to the Discord server.
- Host a “fire-side” chat with the Strapi team in Discord including some of the Strapi founders, engineers, and other members of the team you may have not met. This will be an open invitation to just come hang out with us, maybe play some games or ask some questions. (Among-us anyone?)
ETA: At most 5 weeks, could be shortened if we see an immediate large number of users move
Phase 3 - Slack shutdown
This is the final phase and doesn’t entirely impact the community but we wanted to be sure someone didn’t try to pop onto the Slack only to see it had disappeared. So in order to ensure everyone notices the migration message in the Slack general channel we will keep the server open in a locked-down state for at least 3 months but quite possibly 6 months in which only the Strapi team may post messages. After this timeframe we will permanently delete the Slack server.
ETA: 3 to 6 months
Final thoughts
All of us at Strapi wanted to thank all of you for everything you do in the community and we hope this change encourages and empowers you to make Strapi the best headless CMS ever, we would not be here today without every single one of you.
Our community is always on our mind for every single decision we make as a company, as engineers, designers, product managers, and as fellow developers. We love all the feedback you give us on ways we can improve and build the awesome features you all enjoy. Our hope is to speak to every single one of you and provide the best possible platform for our community to communicate with each other!
Finally, we wanted to give a huge shoutout to Orbit.love and their fantastic blog post and many hours talking to us about their move which helped us plan our own. Their other blog post was a key resource when we were planning our Strapi Community Forum as well.