What is Slack?
Who uses Slack?
Slack Integrations
Here are some stack decisions, common use cases and reviews by companies and developers who chose Slack in their tech stack.
We began our hosting journey, as many do, on Heroku because they make it easy to deploy your application and automate some of the routine tasks associated with deployments, etc. However, as our team grew and our product matured, our needs have outgrown Heroku. I will dive into the history and reasons for this in a future blog post.
We decided to migrate our infrastructure to Kubernetes running on Amazon EKS. Although Google Kubernetes Engine has a slightly more mature Kubernetes offering and is more user-friendly; we decided to go with EKS because we already using other AWS services (including a previous migration from Heroku Postgres to AWS RDS). We are still in the process of moving our main website workloads to EKS, however we have successfully migrate all our staging and testing PR apps to run in a staging cluster. We developed a Slack chatops application (also running in the cluster) which automates all the common tasks of spinning up and managing a production-like cluster for a pull request. This allows our engineering team to iterate quickly and safely test code in a full production environment. Helm plays a central role when deploying our staging apps into the cluster. We use CircleCI to build docker containers for each PR push, which are then published to Amazon EC2 Container Service (ECR). An upgrade-operator
process watches the ECR repository for new containers and then uses Helm to rollout updates to the staging environments. All this happens automatically and makes it really easy for developers to get code onto servers quickly. The immutable and isolated nature of our staging environments means that we can do anything we want in that environment and quickly re-create or restore the environment to start over.
The next step in our journey is to migrate our production workloads to an EKS cluster and build out the CD workflows to get our containers promoted to that cluster after our QA testing is complete in our staging environments.
From a StackShare Community member: “We’re about to start a chat group for our open source project (over 5K stars on GitHub) so we can let our community collaborate more closely. The obvious choice would be Slack (k8s and a ton of major projects use it), but we’ve seen Gitter (webpack uses it) for a lot of open source projects, Discord (Vue.js moved to them), and as of late I’m seeing Spectrum more and more often. Does anyone have experience with these or other alternatives? Is it even worth assessing all these options, or should we just go with Slack? Some things that are important to us: free, all the regular integrations (GitHub, Heroku, etc), mobile & desktop apps, and open source is of course a plus."
We are highly dependent on G Suite for all our collaboration and productivity needs, from Gmail and Calendar to Sheets and Docs. While it may not be as robust as Microsoft's offerings in those areas, it's totally cloud-based, we've never had any downtime issues and it integrates well with our other tools like Slack. We write and collaborate on all our specs/PRDs in Docs, share analyses via Sheets and handle our meetings via Calendar. #StackDecisionsLaunch #ProductivitySuite #Collaboration #DocumentCollaboration
We're using GitHub for version control as it's an industry standard for version control and our team has plenty of experience using it. We also found many features such as issues and project help us organize. We also really liked the fact that it has the Actions CI platform built in because it allows us to keep more of our development in one place. We chose Slack as our main communication platform because it allows us to organize our communication streams into various channels for specific topics. Additionally, we really liked the integrations as they allow us to keep a lot of our in formation in one place rather than spread around many different apps.
We build a Slack app using the Bolt framework from slack https://api.slack.com/tools/bolt, a Node.js express app. It allows us to easily implement some administration features so we can easily communicate with our backend services, and we don't have to develop any frontend app since Slack block kit will do this for us. It can act as a Chatbot or handle message actions and custom slack flows for our employees.
This app is deployed as a microservice on Amazon EC2 Container Service with AWS Fargate. It uses very little memory (and money) and can communicate easily with our backend services. Slack is connected to this app through a ALB ( AWS Elastic Load Balancing (ELB) )
We first used Slack and switched to Discord later to stay near at where the community is at, while still be able to have private conversations and stay in contact. Discord offered everything we needed and used from Slack previously, plus the community-part, so it was an easy decision.
Blog Posts
Slack's Features
- Create open channels for the projects, groups and topics that the whole team shares.
- Search with context
- Autocomplete makes mentioning your teammates quick and painless.
- Configurable notifications for desktop, mobile push and email keep you as informed as you’d like.
- Everything is perfectly in sync as you move between your desktop, iPhone, iPad, or Android device.
- Powerful search & archiving means you can forget when you need to: we’ll remember for you.
- Twitter, Dropbox, Google Docs, Asana, Trello, GitHub Integration
- Add comments for feedback & stars for easy retrieval
- Built-in internal and external sharing options ensure you can get and share any file with anyone