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. \n\n

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.\n\n

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.","private":false,"viewCount":620768,"publishedAt":"2019-07-19T22:46:42Z","upvotesCount":8,"decisionType":"migration","fromTools":[{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"}],"toTools":[{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777411056834","typename":"Tool"}],"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777411056834","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"}],"services":[{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777411056834","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774087656167","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776419588718","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215500019","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"$StackDecision:102470543274337305.company":{"imageUrl":"https://img.stackshare.io/company/1595/default_0ef9f2b4cb2992a16b9ce66eafac78c97fa851e4.png","thumbUrl":"https://img.stackshare.io/company/1595/thumb_0ef9f2b4cb2992a16b9ce66eafac78c97fa851e4.png","name":"StackShare","path":"/companies/stackshare","features":[],"__typename":"Company"},"Tool:101231777411056834":{"id":"101231777411056834","name":"Amazon EKS","slug":"amazon-eks","title":"Highly available and scalable Kubernetes service","verified":true,"imageUrl":"https://img.stackshare.io/service/7991/amazon-eks.png","canonicalUrl":"/amazon-eks","path":"/amazon-eks","votes":3,"fans":748,"stacks":940,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/7991/thumb_amazon-eks.png"},"Tool:101231774087656167":{"name":"Google Kubernetes Engine","path":"/google-kubernetes-engine","id":"101231774087656167","imageUrl":"https://img.stackshare.io/service/1587/s01TMTGn.png","thumbUrl":"https://img.stackshare.io/service/1587/thumb_s01TMTGn.png","stacks":1140,"fans":1107,"votes":78,"followingTool":false,"__typename":"Tool"},"Tool:101231776419588718":{"name":"Helm","path":"/helm","id":"101231776419588718","imageUrl":"https://img.stackshare.io/package_manager/5983/default_339a3dd6beb63de6d3ff804a4e676ae114919d80.jpg","thumbUrl":"https://img.stackshare.io/package_manager/5983/thumb_339a3dd6beb63de6d3ff804a4e676ae114919d80.jpg","stacks":1391,"fans":1339,"votes":18,"followingTool":false,"__typename":"Tool"},"Tool:101231774215500019":{"name":"Amazon EC2 Container Service","path":"/amazon-ec2-container-service","id":"101231774215500019","imageUrl":"https://img.stackshare.io/service/1908/amazon-ecs.png","thumbUrl":"https://img.stackshare.io/service/1908/thumb_amazon-ecs.png","stacks":14160,"fans":12919,"votes":325,"followingTool":false,"__typename":"Tool","slug":"amazon-ec2-container-service","title":"Container management service that supports Docker containers","verified":true,"canonicalUrl":"/amazon-ec2-container-service","followContext":null},"$Tool:101231773705712932.stackDecisions({\"first\":6}).edges.0":{"node":{"type":"id","generated":false,"id":"StackDecision:102470543274337305","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:102366402938755636":{"id":"102366402938755636","username":"stackbot","title":null,"companyName":null,"imageUrl":"https://img.stackshare.io/user/299852/default_e6c5c079eeed2f178ff111094f79fc759338903b.png","thumbUrl":"https://img.stackshare.io/user/299852/thumb_e6c5c079eeed2f178ff111094f79fc759338903b.png","displayName":"StackShare Editors","__typename":"User"},"StackDecision:102628587320078907":{"user":{"type":"id","generated":false,"id":"User:102366402938755636","typename":"User"},"company":null,"link":null,"publicId":"102628587320078907","id":"102628587320078907","htmlContent":"

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.\"","private":false,"viewCount":1268245,"publishedAt":"2019-04-24T20:39:00Z","upvotesCount":6,"decisionType":"getAdvice","fromTools":[],"toTools":[],"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775539318181","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773721226710","typename":"Tool"}],"services":[{"type":"id","generated":false,"id":"Tool:101231773721226710","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775539318181","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777967168443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"Tool:101231773721226710":{"id":"101231773721226710","name":"Gitter","slug":"gitter","title":"Messaging for people who make software. Integrated with your team, projects and your code.","verified":true,"imageUrl":"https://img.stackshare.io/service/715/1uZZ-5YI.png","canonicalUrl":"/gitter","path":"/gitter","votes":277,"fans":349,"stacks":234,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/715/thumb_1uZZ-5YI.png"},"Tool:101231777967168443":{"name":"Spectrum","path":"/spectrum","id":"101231777967168443","imageUrl":"https://img.stackshare.io/service/9072/7i_PsjME_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/9072/thumb_7i_PsjME_400x400.jpg","stacks":22,"fans":45,"votes":0,"followingTool":false,"__typename":"Tool"},"$Tool:101231773705712932.stackDecisions({\"first\":6}).edges.1":{"node":{"type":"id","generated":false,"id":"StackDecision:102628587320078907","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:101232117725800823":{"id":"101232117725800823","username":"nasserkhan","title":"Product Manager","companyName":"StackShare","imageUrl":"https://img.stackshare.io/user/246824/default_d649e1c8bbd3ea4b8831a126cd733c9df6c2a93a.png","thumbUrl":"https://img.stackshare.io/user/246824/thumb_d649e1c8bbd3ea4b8831a126cd733c9df6c2a93a.png","displayName":"Nasser Khan","__typename":"User"},"StackDecision:101179203967351744":{"user":{"type":"id","generated":false,"id":"User:101232117725800823","typename":"User"},"company":{"type":"id","generated":true,"id":"$StackDecision:101179203967351744.company","typename":"Company"},"link":null,"publicId":"101179203967351744","id":"101179203967351744","htmlContent":"

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. \n#StackDecisionsLaunch #ProductivitySuite #Collaboration #DocumentCollaboration ","private":false,"viewCount":434225,"publishedAt":"2018-12-03T21:22:00Z","upvotesCount":13,"decisionType":"tool","fromTools":[{"type":"id","generated":false,"id":"Tool:101231775409266236","typename":"Tool"}],"toTools":[{"type":"id","generated":false,"id":"Tool:101231773531895266","typename":"Tool"}],"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231773531895266","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775409266236","typename":"Tool"}],"services":[{"type":"id","generated":false,"id":"Tool:101231773531895266","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"}],"topics":[{"type":"id","generated":false,"id":"Topic:101231988917140544","typename":"Topic"},{"type":"id","generated":false,"id":"Topic:101231988687016869","typename":"Topic"},{"type":"id","generated":false,"id":"Topic:101231988692742290","typename":"Topic"},{"type":"id","generated":false,"id":"Topic:101231988746787173","typename":"Topic"}],"__typename":"StackDecision"},"$StackDecision:101179203967351744.company":{"imageUrl":"https://img.stackshare.io/company/1595/default_0ef9f2b4cb2992a16b9ce66eafac78c97fa851e4.png","thumbUrl":"https://img.stackshare.io/company/1595/thumb_0ef9f2b4cb2992a16b9ce66eafac78c97fa851e4.png","name":"StackShare","path":"/companies/stackshare","features":[],"__typename":"Company"},"Tool:101231775409266236":{"id":"101231775409266236","name":"Microsoft 365","slug":"microsoft-365","title":"Enterprise-class set of productivity tools and cloud-based email","verified":true,"imageUrl":"https://img.stackshare.io/service/4167/icon.png","canonicalUrl":"/microsoft-365","path":"/microsoft-365","votes":7,"fans":1243,"stacks":1453,"followingTool":false,"followContext":null,"__typename":"Tool"},"Topic:101231988917140544":{"name":"StackDecisionsLaunch","id":"101231988917140544","__typename":"Topic"},"Topic:101231988687016869":{"name":"ProductivitySuite","id":"101231988687016869","__typename":"Topic"},"Topic:101231988692742290":{"name":"Collaboration","id":"101231988692742290","__typename":"Topic"},"Topic:101231988746787173":{"name":"DocumentCollaboration","id":"101231988746787173","__typename":"Topic"},"$Tool:101231773705712932.stackDecisions({\"first\":6}).edges.2":{"node":{"type":"id","generated":false,"id":"StackDecision:101179203967351744","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:103535564320167497":{"id":"103535564320167497","username":"dane-thomas","title":"","companyName":"","imageUrl":"https://img.stackshare.io/user/359043/default_8f8f63e6393b7a80315906c99d8ef3f22260b121.jpeg","thumbUrl":"https://img.stackshare.io/user/359043/thumb_8f8f63e6393b7a80315906c99d8ef3f22260b121.jpeg","displayName":"Dane Thomas","__typename":"User"},"StackDecision:103608387375473907":{"user":{"type":"id","generated":false,"id":"User:103535564320167497","typename":"User"},"company":null,"link":null,"publicId":"103608387375473907","id":"103608387375473907","htmlContent":"

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. \nWe 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. ","private":false,"viewCount":551718,"publishedAt":"2020-02-05T21:35:27Z","upvotesCount":28,"decisionType":"freeform","fromTools":[],"toTools":[],"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775423888689","typename":"Tool"}],"services":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"Tool:101231775423888689":{"id":"101231775423888689","name":"Visual Studio Code","slug":"visual-studio-code","title":"Build and debug modern web and cloud applications, by Microsoft","verified":true,"imageUrl":"https://img.stackshare.io/service/4202/Visual_Studio_Code_logo.png","canonicalUrl":"/visual-studio-code","path":"/visual-studio-code","votes":2280,"fans":184027,"stacks":179405,"followingTool":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773705712932.stackDecisions({\"first\":6}).edges.3":{"node":{"type":"id","generated":false,"id":"StackDecision:103608387375473907","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:101232055286735261":{"id":"101232055286735261","username":"Startouf","title":"CTO","companyName":"My Job Glasses","imageUrl":"https://img.stackshare.io/user/129877/default_a679ddb23d748dc55df29e319d03f9e146467b0d.png","thumbUrl":"https://img.stackshare.io/user/129877/thumb_a679ddb23d748dc55df29e319d03f9e146467b0d.png","displayName":"Cyril Duchon-Doris","__typename":"User"},"StackDecision:103335011724192534":{"user":{"type":"id","generated":false,"id":"User:101232055286735261","typename":"User"},"company":{"type":"id","generated":true,"id":"$StackDecision:103335011724192534.company","typename":"Company"},"link":null,"publicId":"103335011724192534","id":"103335011724192534","htmlContent":"

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.\n\n

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) )","private":false,"viewCount":477922,"publishedAt":"2019-12-19T14:52:26Z","upvotesCount":16,"decisionType":"freeform","fromTools":[],"toTools":[],"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231774215500019","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"}],"services":[{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215500019","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777400833565","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774492574471","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"$StackDecision:103335011724192534.company":{"imageUrl":"https://img.stackshare.io/company/33364/default_3154c0fead836fb2b25c425ab6b423d5cf998edb.png","thumbUrl":"https://img.stackshare.io/company/33364/thumb_3154c0fead836fb2b25c425ab6b423d5cf998edb.png","name":"My Job Glasses","path":"/companies/my-job-glasses","features":[],"__typename":"Company"},"Tool:101231773845103618":{"id":"101231773845103618","name":"Node.js","slug":"nodejs","title":"A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications","verified":false,"imageUrl":"https://img.stackshare.io/service/1011/n1JRsFeB_400x400.png","canonicalUrl":"/nodejs","path":"/nodejs","votes":8539,"fans":182848,"stacks":188624,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/1011/thumb_n1JRsFeB_400x400.png"},"Tool:101231777400833565":{"name":"AWS Fargate","path":"/aws-fargate","id":"101231777400833565","imageUrl":"https://img.stackshare.io/service/7969/default_60d794b64ce2fd1f8bc7db562a93cad412fcc9bc.png","thumbUrl":"https://img.stackshare.io/service/7969/thumb_60d794b64ce2fd1f8bc7db562a93cad412fcc9bc.png","stacks":602,"fans":551,"votes":0,"followingTool":false,"__typename":"Tool"},"$Tool:101231773705712932.stackDecisions({\"first\":6}).edges.4":{"node":{"type":"id","generated":false,"id":"StackDecision:103335011724192534","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:101232070678997624":{"id":"101232070678997624","username":"Scrayos","title":"CEO","companyName":"Scrayos UG (haftungsbeschränkt)","imageUrl":"https://img.stackshare.io/user/157783/default_3261fc6c63b4f7df47dd9f0524d6e1016d9107cb.png","thumbUrl":"https://img.stackshare.io/user/157783/thumb_3261fc6c63b4f7df47dd9f0524d6e1016d9107cb.png","displayName":"Joshua Dean Küpper","__typename":"User"},"StackDecision:101743891427849069":{"user":{"type":"id","generated":false,"id":"User:101232070678997624","typename":"User"},"company":{"type":"id","generated":true,"id":"$StackDecision:101743891427849069.company","typename":"Company"},"link":null,"publicId":"101743891427849069","id":"101743891427849069","htmlContent":"

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.","private":false,"viewCount":764483,"publishedAt":"2017-11-08T00:06:17Z","upvotesCount":1,"decisionType":"freeform","fromTools":[],"toTools":[],"subjectTools":[],"services":[{"type":"id","generated":false,"id":"Tool:101231775539318181","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"$StackDecision:101743891427849069.company":{"imageUrl":"https://img.stackshare.io/company/23305/default_d6bc79c2bb597bc269388be95cc72731f00ace1e.png","thumbUrl":"https://img.stackshare.io/company/23305/thumb_d6bc79c2bb597bc269388be95cc72731f00ace1e.png","name":"Scrayos UG (haftungsbeschränkt)","path":"/companies/scrayos-ug-haftungsbeschrankt","features":[],"__typename":"Company"},"$Tool:101231773705712932.stackDecisions({\"first\":6}).edges.5":{"node":{"type":"id","generated":false,"id":"StackDecision:101743891427849069","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"$Tool:101231773705712932.followers({\"first\":10}).pageInfo":{"hasNextPage":true,"endCursor":"MTA","__typename":"PageInfo"},"$Tool:101231773705712932.followers({\"first\":10})":{"pageInfo":{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).pageInfo","typename":"PageInfo"},"edges":[{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.0","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.1","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.2","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.3","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.4","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.5","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.6","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.7","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.8","typename":"UserEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.followers({\"first\":10}).edges.9","typename":"UserEdge"}],"__typename":"UserConnection"},"User:113594584398832429":{"id":"113594584398832429","displayName":"Jen Romanowski","username":"jen-12","imageUrl":"https://img.stackshare.io/user/1668543/default_41070f65f951380247ef1948e4b24c9e633c9f07.png","title":null,"popularity":3,"path":"/jen-12","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.0":{"node":{"type":"id","generated":false,"id":"User:113594584398832429","typename":"User"},"__typename":"UserEdge"},"User:113594354693974526":{"id":"113594354693974526","displayName":"Sehet Telemedicine App","username":"sehet-app","imageUrl":"https://img.stackshare.io/user/1668534/default_ccd44cb66db2c466081452100d890323523a354b.jpg","title":"","popularity":3,"path":"/sehet-app","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.1":{"node":{"type":"id","generated":false,"id":"User:113594354693974526","typename":"User"},"__typename":"UserEdge"},"User:113592004225776943":{"id":"113592004225776943","displayName":"tuandtse243","username":"tuandtse243","imageUrl":"https://img.stackshare.io/user/1668453/default_7bd0fcf866feabf849e02b51b6a3f656a5647341.jpg","title":null,"popularity":0,"path":"/tuandtse243","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.2":{"node":{"type":"id","generated":false,"id":"User:113592004225776943","typename":"User"},"__typename":"UserEdge"},"User:113591137436459067":{"id":"113591137436459067","displayName":"Go88 Go5135com","username":"go5135com1","imageUrl":"https://img.stackshare.io/user/1668445/default_8869d795bb1f7bc26add0d9b353504652be49ab2.jpg","title":"GO88 Thiên đường cá cược |","popularity":3,"path":"/go5135com1","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.3":{"node":{"type":"id","generated":false,"id":"User:113591137436459067","typename":"User"},"__typename":"UserEdge"},"User:113590126763895050":{"id":"113590126763895050","displayName":"m3m Developer","username":"m3mdeveloperprohects","imageUrl":"https://img.stackshare.io/user/1668433/default_7914eb2704652c4362fd2793a0421481833889e4.jpeg","title":"sales","popularity":3,"path":"/m3mdeveloperprohects","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.4":{"node":{"type":"id","generated":false,"id":"User:113590126763895050","typename":"User"},"__typename":"UserEdge"},"User:113589867089766144":{"id":"113589867089766144","displayName":"Eckert Renovations","username":"eckertrenovetion","imageUrl":"https://img.stackshare.io/user/1668430/default_2e0122d0905f4863d0b7af7ec5edb8d26a7d5807.png","title":"remodeling","popularity":3,"path":"/eckertrenovetion","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.5":{"node":{"type":"id","generated":false,"id":"User:113589867089766144","typename":"User"},"__typename":"UserEdge"},"User:113589334945780626":{"id":"113589334945780626","displayName":"Paul-Eirik Melhus","username":"paul-84","imageUrl":"https://img.stackshare.io/user/1668408/default_ccbc392467d67b4d761082a371bbcf6b871face6.jpg","title":"Automation Engineer","popularity":3,"path":"/paul-84","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.6":{"node":{"type":"id","generated":false,"id":"User:113589334945780626","typename":"User"},"__typename":"UserEdge"},"User:113588214295549678":{"id":"113588214295549678","displayName":"Ajit Sharma","username":"ajitsharmashot","imageUrl":"https://img.stackshare.io/user/1668359/default_94e4c2d731c6a420c72049d2bce98a5d36536c26.jpg","title":"Ambica Enterprises","popularity":3,"path":"/ajitsharmashot","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.7":{"node":{"type":"id","generated":false,"id":"User:113588214295549678","typename":"User"},"__typename":"UserEdge"},"User:113588131442508818":{"id":"113588131442508818","displayName":"Mw Alter","username":"homarco1117","imageUrl":"https://img.stackshare.io/user/1668352/default_ed74f17d4e2339ae4d53b2b2b0da870ab690106d.png","title":null,"popularity":3,"path":"/homarco1117","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.8":{"node":{"type":"id","generated":false,"id":"User:113588131442508818","typename":"User"},"__typename":"UserEdge"},"User:113587778502070020":{"id":"113587778502070020","displayName":"OK 365","username":"uglyshake3118","imageUrl":"https://img.stackshare.io/user/1668335/default_131864e541dcefeb1db9f358d574f37073bcfb7f.jpg","title":"","popularity":3,"path":"/uglyshake3118","stacksCount":1,"favoritesCount":0,"votesCount":0,"__typename":"User"},"$Tool:101231773705712932.followers({\"first\":10}).edges.9":{"node":{"type":"id","generated":false,"id":"User:113587778502070020","typename":"User"},"__typename":"UserEdge"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9})":{"count":781,"pageInfo":{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).pageInfo","typename":"PageInfo"},"edges":[{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.0","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.1","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.2","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.3","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.4","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.5","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.6","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.7","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.8","typename":"ToolEdge"}],"__typename":"ToolConnection"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).pageInfo":{"hasNextPage":true,"endCursor":"OQ","__typename":"PageInfo"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.0":{"node":{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773990286939":{"imageUrl":"https://img.stackshare.io/service/1336/xWMRvm_5_400x400.png","thumbUrl":"https://img.stackshare.io/service/1336/thumb_xWMRvm_5_400x400.png","thumbRetinaUrl":"https://img.stackshare.io/service/1336/thumb_retina_xWMRvm_5_400x400.png","name":"Postman","id":"101231773990286939","slug":"postman","path":"/postman","__typename":"Tool"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.1":{"node":{"type":"id","generated":false,"id":"Tool:101231773990286939","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773479019630":{"imageUrl":"https://img.stackshare.io/service/148/default_fd639832ff07e3b4f80afd816d82ce5e3b666ed2.jpg","thumbUrl":"https://img.stackshare.io/service/148/thumb_fd639832ff07e3b4f80afd816d82ce5e3b666ed2.jpg","thumbRetinaUrl":"https://img.stackshare.io/service/148/thumb_retina_fd639832ff07e3b4f80afd816d82ce5e3b666ed2.jpg","name":"Google Drive","id":"101231773479019630","slug":"google-drive","path":"/google-drive","__typename":"Tool"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.2":{"node":{"type":"id","generated":false,"id":"Tool:101231773479019630","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.3":{"node":{"type":"id","generated":false,"id":"Tool:101231773482334926","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773703650742":{"imageUrl":"https://img.stackshare.io/service/670/jenkins.png","thumbUrl":"https://img.stackshare.io/service/670/thumb_jenkins.png","thumbRetinaUrl":"https://img.stackshare.io/service/670/thumb_retina_jenkins.png","name":"Jenkins","id":"101231773703650742","slug":"jenkins","path":"/jenkins","__typename":"Tool"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.4":{"node":{"type":"id","generated":false,"id":"Tool:101231773703650742","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.5":{"node":{"type":"id","generated":false,"id":"Tool:101231773457672502","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.6":{"node":{"type":"id","generated":false,"id":"Tool:101231773411223883","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.7":{"node":{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231773705712932.allToolIntegrations({\"first\":9}).edges.8":{"node":{"type":"id","generated":false,"id":"Tool:101231773477924173","typename":"Tool"},"__typename":"ToolEdge"}}

119.6K
96.1K
+ 1
6K

What is Slack?

Imagine all your team communication in one place, instantly searchable, available wherever you go. That’s Slack. All your messages. All your files. And everything from Twitter, Dropbox, Google Docs, Asana, Trello, GitHub and dozens of other services. All together.
Slack is a tool in the Group Chat & Notifications category of a tech stack.

Who uses Slack?

Companies
9542 companies reportedly use Slack in their tech stacks, including Airbnb, Pinterest, and Shopify.

Developers
107528 developers on StackShare have stated that they use Slack.

Slack Integrations

GitHub, Postman, Google Drive, Jira, and Jenkins are some of the popular tools that integrate with Slack. Here's a list of all 781 tools that integrate with Slack.
Pros of Slack
1.2K
Easy to integrate with
876
Excellent interface on multiple platforms
849
Free
694
Mobile friendly
690
People really enjoy using it
331
Great integrations
315
Flexible notification preferences
198
Unlimited users
184
Strong search and data archiving
155
Multi domain switching support
82
Easy to use
40
Beautiful
27
Hubot support
22
Unread/read control
21
Slackbot
19
Permalink for each messages
17
Text snippet with highlighting
15
Quote message easily
14
Per-room notification
13
Awesome integration support
12
Star for each message / attached files
12
IRC gateway
11
Good communication within a team
11
Dropbox Integration
10
Slick, search is great
10
Jira Integration
9
New Relic Integration
8
Great communication tool
8
Combine All Services Quickly
8
Asana Integration
7
This tool understands developers
7
XMPP gateway
7
Google Drive Integration
7
Awesomeness
6
Replaces email
6
Twitter Integration
6
Google Docs Integration
6
BitBucket integration
5
Jenkins Integration
5
GREAT Customer Support / Quick Response to Feedback
5
Guest and Restricted user control
4
Clean UI
4
Excellent multi platform internal communication tool
4
GitHub integration
4
Mention list view
4
Gathers all my communications in one place
3
Perfect implementation of chat + integrations
3
Easy
3
Easy to add a reaction
3
Timely while non intrusive
3
Great on-boarding
3
Threaded chat
3
Visual Studio Integration
3
Easy to start working with
3
Android app
2
Simplicity
2
Message Actions
2
It's basically an improved (although closed) IRC
2
So much better than email
2
Eases collaboration for geographically dispersed teams
2
Great interface
2
Great Channel Customization
2
Markdown
2
Intuitive, easy to use, great integrations
1
Great Support Team
1
Watch
1
Multi work-space support
1
Flexible and Accessible
1
Better User Experience
1
Archive Importing
1
Travis CI integration
1
It's the coolest IM ever
1
Community
1
Great API
1
Easy remote communication
1
Get less busy
1
API
1
Zapier integration
1
Targetprocess integration
1
Finally with terrible "threading"—I miss Flowdock
1
Complete with plenty of Electron BLOAT
1
I was 666 star :D
1
Dev communication Made Easy
1
Integrates with just about everything
1
Very customizable
0
Platforms
0
Easy to useL
Decisions about Slack

Here are some stack decisions, common use cases and reviews by companies and developers who chose Slack in their tech stack.

Russel Werner
Lead Engineer at StackShare · | 8 upvotes · 620.8K views

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.

See more
Needs advice
on
SlackSlackDiscordDiscord
and
GitterGitter

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."

See more
Nasser Khan
Product Manager at StackShare · | 13 upvotes · 434.2K views

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

See more

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.

See more
Cyril Duchon-Doris

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) )

See more
Joshua Dean Küpper
CEO at Scrayos UG (haftungsbeschränkt) · | 1 upvote · 764.5K views

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.

See more

Blog Posts

Sep 29 2020 at 7:36PM

WorkOS

PythonSlackG Suite+17
6
3157
SlackOptimizely Rollouts+2
1
1103
GitHubPythonReact+42
49
40928

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

Slack Alternatives & Comparisons

What are some alternatives to Slack?
Microsoft Teams
See content and chat history anytime, including team chats with Skype that are visible to the whole team. Private group chats are available for smaller group conversations.
Discord
Discord is a modern free voice & text chat app for groups of gamers. Our resilient Erlang backend running on the cloud has built in DDoS protection with automatic server failover.
Trello
Trello is a collaboration tool that organizes your projects into boards. In one glance, Trello tells you what's being worked on, who's working on what, and where something is in a process.
Skype
Skype’s text, voice and video make it simple to share experiences with the people that matter to you, wherever they are.
Asana
Asana is the easiest way for teams to track their work. From tasks and projects to conversations and dashboards, Asana enables teams to move work from start to finish--and get results. Available at asana.com and on iOS & Android.
See all alternatives

Slack's Followers
96071 developers follow Slack to keep up with related blogs and decisions.