blog post to go more in depth.","private":false,"viewCount":1564471,"publishedAt":"2019-04-08T20:15:00Z","upvotesCount":20,"decisionType":"migration","fromTools":[{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"}],"toTools":[{"type":"id","generated":false,"id":"Tool:101231774087656167","typename":"Tool"}],"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774087656167","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:101231774087656167","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776793553849","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777912408415","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231778086278044","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776419588718","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773970332063","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"$StackDecision:101892392595322895.company":{"imageUrl":"https://img.stackshare.io/company/482/default_65113ae34bd00706ed1cf546cf70466c17bd4f31.jpg","thumbUrl":"https://img.stackshare.io/company/482/thumb_65113ae34bd00706ed1cf546cf70466c17bd4f31.jpg","name":"Rainforest QA","path":"/companies/rainforest-qa","features":[],"__typename":"Company"},"$StackDecision:101892392595322895.link":{"url":"https://www.rainforestqa.com/blog/2019-04-02-why-we-moved-from-heroku-to-google-kubernetes-engine/","title":"Why Rainforest QA Moved from Heroku to Google Kubernetes Engine","__typename":"Link"},"Tool:101231774087656167":{"id":"101231774087656167","name":"Google Kubernetes Engine","slug":"google-kubernetes-engine","title":"Deploy, manage, and scale containerized applications on Kubernetes, powered by Google Cloud","verified":true,"imageUrl":"https://img.stackshare.io/service/1587/s01TMTGn.png","canonicalUrl":"/google-kubernetes-engine","path":"/google-kubernetes-engine","votes":78,"fans":1110,"stacks":1141,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/1587/thumb_s01TMTGn.png"},"Tool:101231776793553849":{"name":"Google Cloud SQL for PostgreSQL","path":"/google-cloud-sql-for-postgresql","id":"101231776793553849","imageUrl":"https://img.stackshare.io/service/6671/sql.png","thumbUrl":"https://img.stackshare.io/service/6671/thumb_sql.png","stacks":146,"fans":136,"votes":0,"followingTool":false,"__typename":"Tool"},"Tool:101231777912408415":{"name":"Google Cloud Memorystore","path":"/google-cloud-memorystore","id":"101231777912408415","imageUrl":"https://img.stackshare.io/service/8947/PoHJY3K8_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/8947/thumb_PoHJY3K8_400x400.jpg","stacks":156,"fans":164,"votes":0,"followingTool":false,"__typename":"Tool"},"Tool:101231778086278044":{"name":"Google Cloud Build","path":"/google-cloud-build","id":"101231778086278044","imageUrl":"https://img.stackshare.io/service/9309/PoHJY3K8_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/9309/thumb_PoHJY3K8_400x400.jpg","stacks":495,"fans":320,"votes":4,"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":1402,"fans":1343,"votes":18,"followingTool":false,"__typename":"Tool","slug":"helm","title":"The Kubernetes Package Manager","verified":false,"canonicalUrl":"/helm","following":false,"followContext":null},"$Tool:101231773501041914.stackDecisions({\"first\":6}).edges.4":{"node":{"type":"id","generated":false,"id":"StackDecision:101892392595322895","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:101232105721188820":{"id":"101232105721188820","username":"ruswerner","title":"Lead Engineer","companyName":"StackShare","imageUrl":"https://img.stackshare.io/user/223620/default_1e513bec60c7ca6a6ee6125383833dbaeec3ba47.jpeg","thumbUrl":"https://img.stackshare.io/user/223620/thumb_1e513bec60c7ca6a6ee6125383833dbaeec3ba47.jpeg","displayName":"Russel Werner","__typename":"User"},"StackDecision:102470543274337305":{"user":{"type":"id","generated":false,"id":"User:101232105721188820","typename":"User"},"company":{"type":"id","generated":true,"id":"$StackDecision:102470543274337305.company","typename":"Company"},"link":null,"publicId":"102470543274337305","id":"102470543274337305","htmlContent":"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\nWe 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\nThe 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":634871,"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":756,"stacks":945,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/7991/thumb_amazon-eks.png"},"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":14284,"fans":12995,"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","following":false,"followContext":null},"$Tool:101231773501041914.stackDecisions({\"first\":6}).edges.5":{"node":{"type":"id","generated":false,"id":"StackDecision:102470543274337305","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"$Tool:101231773501041914.featuredPosts({\"first\":8})":{"count":12,"pageInfo":{"type":"id","generated":true,"id":"$Tool:101231773501041914.featuredPosts({\"first\":8}).pageInfo","typename":"PageInfo"},"edges":[{"type":"id","generated":true,"id":"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.0","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.1","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.2","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.3","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.4","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.5","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.6","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.7","typename":"FeaturedPostEdge"}],"__typename":"FeaturedPostConnection"},"$Tool:101231773501041914.featuredPosts({\"first\":8}).pageInfo":{"hasNextPage":true,"endCursor":"OA","__typename":"PageInfo"},"FeaturedPost:104315307849596120":{"id":"104315307849596120","views":1180,"title":"Why Doesnât Your CI Pipeline Have Security Bug Testing?","imageUrl":"https://img.stackshare.io/stack/663399/default_5dbddb8285d2b5d3ee56c05bff85b644b8425e60.jpg","publishedAt":"2020-06-09T17:54:38Z","canonicalUrl":"/stackhawk/why-doesnt-your-ci-pipeline-have-security-bug-testing","previewImageUrl":"https://img.stackshare.io/stack/663399/b7d1a477aea631553375a2ae27d04c2a8813aa82.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:104315307849596120.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773482334926","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775212866992","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776054918353","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231778301696995","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:104195877926058106","typename":"Tool"}],"favoriteStacksCount":3,"__typename":"FeaturedPost"},"$FeaturedPost:104315307849596120.company":{"name":"StackHawk","__typename":"Company"},"Tool:101231775212866992":{"id":"101231775212866992","name":"GraphQL","slug":"graphql","title":"A data query language and runtime","verified":false,"imageUrl":"https://img.stackshare.io/service/3820/12972006.png","canonicalUrl":"/graphql","path":"/graphql","votes":310,"fans":33638,"stacks":33995,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776054918353":{"id":"101231776054918353","name":"Snyk","slug":"snyk","title":"Automatically find & fix vulnerabilities in your code, containers, Kubernetes, and Terraform","verified":true,"imageUrl":"https://img.stackshare.io/service/5326/6p1SNAJu.jpg","canonicalUrl":"/snyk","path":"/snyk","votes":20,"fans":518,"stacks":472,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231778301696995":{"id":"101231778301696995","name":"OpenAPI","slug":"open-api","title":"Allows the owner of a network-accessible service to give universal access","verified":false,"imageUrl":"https://img.stackshare.io/service/9792/L8C2-2bd_400x400.jpg","canonicalUrl":"/open-api","path":"/open-api","votes":6,"fans":688,"stacks":665,"following":false,"followContext":null,"__typename":"Tool"},"Tool:104195877926058106":{"id":"104195877926058106","name":"StackHawk","slug":"stackhawk","title":"Find, triage, and fix application security bugs","verified":true,"imageUrl":"https://img.stackshare.io/service/12239/ju0FbqeT_400x400.jpg","canonicalUrl":"/stackhawk","path":"/stackhawk","votes":1,"fans":21,"stacks":11,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.0":{"node":{"type":"id","generated":false,"id":"FeaturedPost:104315307849596120","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:102493184434356439":{"id":"102493184434356439","views":6117,"title":"Update: How CircleCI Processes Over 30 Million Builds Per Month","imageUrl":"https://img.stackshare.io/stack/376396/default_e9df0e4b68fc597115c5bfe163fa11ffe10dff3e.png","publishedAt":"2019-07-23T22:44:41Z","canonicalUrl":"/circleci/update-how-circleci-processes-over-30-million-builds-per-month","previewImageUrl":"https://img.stackshare.io/stack/376396/998c66fcf69f2499b0b8e672aef7fe8ad592fc14.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:102493184434356439.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774098455524","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773411223883","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775212866992","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773649935410","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773770920543","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703014119","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776411419473","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231778053837910","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776161934711","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773398855818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775675369432","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776473814866","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773841187038","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773590628959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231778058112934","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773692729304","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774204689068","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775148871383","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774064831768","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231778220642339","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776849651628","typename":"Tool"}],"favoriteStacksCount":17,"__typename":"FeaturedPost"},"$FeaturedPost:102493184434356439.company":{"name":"CircleCI","__typename":"Company"},"Tool:101231774098455524":{"id":"101231774098455524","name":"TypeScript","slug":"typescript","title":"A superset of JavaScript that compiles to clean JavaScript output","verified":false,"imageUrl":"https://img.stackshare.io/service/1612/bynNY5dJ.jpg","canonicalUrl":"/typescript","path":"/typescript","votes":500,"fans":84345,"stacks":94832,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773854388643":{"id":"101231773854388643","name":"MongoDB","slug":"mongodb","title":"The database for giant ideas","verified":true,"imageUrl":"https://img.stackshare.io/service/1030/leaf-360x360.png","canonicalUrl":"/mongodb","path":"/mongodb","votes":4131,"fans":94301,"stacks":94112,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773842107538":{"id":"101231773842107538","name":"Golang","slug":"golang","title":"An open source programming language that makes it easy to build simple, reliable, and efficient software","verified":true,"imageUrl":"https://img.stackshare.io/service/1005/O6AczwfV_400x400.png","canonicalUrl":"/golang","path":"/golang","votes":3299,"fans":17082,"stacks":22515,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773649935410":{"id":"101231773649935410","name":"Google Compute Engine","slug":"google-compute-engine","title":"Run large-scale workloads on virtual machines hosted on Google's infrastructure.","verified":false,"imageUrl":"https://img.stackshare.io/service/518/s01TMTGn.png","canonicalUrl":"/google-compute-engine","path":"/google-compute-engine","votes":423,"fans":11625,"stacks":12301,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773770920543":{"id":"101231773770920543","name":"Jest","slug":"jest","title":"Painless JavaScript Unit Testing","verified":false,"imageUrl":"https://img.stackshare.io/service/830/jest.png","canonicalUrl":"/jest","path":"/jest","votes":175,"fans":6072,"stacks":9845,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773703014119":{"id":"101231773703014119","name":"Datadog","slug":"datadog","title":"Unify logs, metrics, and traces from across your distributed infrastructure.","verified":true,"imageUrl":"https://img.stackshare.io/service/669/default_34b3b9b42d07c33ac47ecdff75dd6f4f82aa70ee.jpg","canonicalUrl":"/datadog","path":"/datadog","votes":860,"fans":10010,"stacks":9508,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776411419473":{"id":"101231776411419473","name":"Next.js","slug":"next-js","title":"A small framework for server-rendered universal JavaScript apps ","verified":false,"imageUrl":"https://img.stackshare.io/service/5936/nextjs.png","canonicalUrl":"/next-js","path":"/next-js","votes":326,"fans":6624,"stacks":6895,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231778053837910":{"id":"101231778053837910","name":"Cypress","slug":"cypress","title":"When testing is easy, developers build better things faster and with confidence.","verified":true,"imageUrl":"https://img.stackshare.io/service/9231/default_66c5c1a197dcd0232e41e4ab6299d119b4e165b3.png","canonicalUrl":"/cypress","path":"/cypress","votes":115,"fans":2805,"stacks":2420,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776161934711":{"id":"101231776161934711","name":"Apollo","slug":"apollo","title":"GraphQL server for Express, Connect, Hapi, Koa and more","verified":false,"imageUrl":"https://img.stackshare.io/service/5508/CyUH653y.png","canonicalUrl":"/apollo","path":"/apollo","votes":25,"fans":2451,"stacks":2426,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773398855818":{"id":"101231773398855818","name":"Segment","slug":"segment","title":"A single hub to collect, translate and send your data with the flip of a switch.","verified":true,"imageUrl":"https://img.stackshare.io/service/5/default_aa447805966bbb635af0d113e93e1f1030497052.jpg","canonicalUrl":"/segment","path":"/segment","votes":275,"fans":1337,"stacks":3120,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775675369432":{"id":"101231775675369432","name":"gRPC","slug":"grpc","title":"A high performance, open-source universal RPC framework","verified":false,"imageUrl":"https://img.stackshare.io/service/4670/default_d811b0ac72205af84aca21f967594338580be913.png","canonicalUrl":"/grpc","path":"/grpc","votes":63,"fans":1780,"stacks":2204,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776473814866":{"id":"101231776473814866","name":"Zoom","slug":"zoom","title":"Video Conferencing, Web Conferencing, Webinars, Screen Sharing","verified":false,"imageUrl":"https://img.stackshare.io/service/6083/oD_oPSBP_400x400.jpg","canonicalUrl":"/zoom","path":"/zoom","votes":155,"fans":2512,"stacks":1747,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773841187038":{"id":"101231773841187038","name":"Clojure","slug":"clojure","title":"A dynamic programming language that targets the Java Virtual Machine","verified":false,"imageUrl":"https://img.stackshare.io/service/1003/Clojure_300x300.png","canonicalUrl":"/clojure","path":"/clojure","votes":1102,"fans":1752,"stacks":1881,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773590628959":{"id":"101231773590628959","name":"Rollbar","slug":"rollbar","title":"Proactively discover, predict, and remediate errors.","verified":true,"imageUrl":"https://img.stackshare.io/service/328/default_3147629185038a15dd41907749544023633da1ea.png","canonicalUrl":"/rollbar","path":"/rollbar","votes":531,"fans":1364,"stacks":1591,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231778058112934":{"id":"101231778058112934","name":"Storybook","slug":"storybook","title":"Build bulletproof UI components faster","verified":false,"imageUrl":"https://img.stackshare.io/service/9240/sOct-Txm_400x400.png","canonicalUrl":"/storybook","path":"/storybook","votes":0,"fans":1116,"stacks":1418,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773456856070":{"id":"101231773456856070","name":"PagerDuty","slug":"pagerduty","title":"Incident management with powerful visibility, reliable alerting, and improved collaboration","verified":true,"imageUrl":"https://img.stackshare.io/service/107/GtwgsQj5_400x400.jpg","canonicalUrl":"/pagerduty","path":"/pagerduty","votes":119,"fans":928,"stacks":1014,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773692729304":{"id":"101231773692729304","name":"Amplitude","slug":"amplitude","title":"User analytics to fuel explosive user growth","verified":true,"imageUrl":"https://img.stackshare.io/service/640/default_51e537c5ed098d3e9aba0eb94299e4575a556aec.jpg","canonicalUrl":"/amplitude","path":"/amplitude","votes":36,"fans":832,"stacks":892,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774204689068":{"id":"101231774204689068","name":"Looker","slug":"looker","title":"Pioneering the next generation of BI, data discovery & data analytics","verified":true,"imageUrl":"https://img.stackshare.io/service/1881/default_1431993fb5378db3220eeba43566bb9f356418f7.png","canonicalUrl":"/looker","path":"/looker","votes":9,"fans":762,"stacks":617,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775148871383":{"id":"101231775148871383","name":"Nomad","slug":"nomad","title":"A cluster manager and scheduler","verified":true,"imageUrl":"https://img.stackshare.io/service/3695/nomad.png","canonicalUrl":"/nomad","path":"/nomad","votes":32,"fans":403,"stacks":255,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774064831768":{"id":"101231774064831768","name":"Hubot","slug":"hubot","title":"A customizable life embetterment robot","verified":false,"imageUrl":"https://img.stackshare.io/service/1519/default_1c0aeb79ae252c37ecb2d079b5ffa8d90d64fb28.png","canonicalUrl":"/hubot","path":"/hubot","votes":60,"fans":298,"stacks":276,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231778220642339":{"id":"101231778220642339","name":"Percy","slug":"percy","title":"All-in-one Visual testing and review platform","verified":true,"imageUrl":"https://img.stackshare.io/service/9635/default_cc8bac46e2f01a6c5dc3c9d99dc20cc35cde241e.png","canonicalUrl":"/percy","path":"/percy","votes":35,"fans":217,"stacks":107,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776849651628":{"id":"101231776849651628","name":"Honeycomb","slug":"honeycomb","title":"Observability for a distributed world--designed for high cardinality data and collaborative problem solving ðð","verified":true,"imageUrl":"https://img.stackshare.io/service/6793/honeycomb_logo.jpg","canonicalUrl":"/honeycomb","path":"/honeycomb","votes":7,"fans":134,"stacks":75,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.1":{"node":{"type":"id","generated":false,"id":"FeaturedPost:102493184434356439","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:102338757016980772":{"id":"102338757016980772","views":2432,"title":"Automatically deploy a Gatsby site to Firebase Hosting","imageUrl":"https://img.stackshare.io/stack/374307/default_0ad4ed7146664f7c60cadd4484ea6279ca3230c1.png","publishedAt":"2019-06-26T16:11:46Z","canonicalUrl":"/circleci/automatically-deploy-a-gatsby-site-to-firebase-hosting","previewImageUrl":"https://img.stackshare.io/stack/374307/b8a8b01f157b1fd4544a94eb2fbf4798429eff72.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:102338757016980772.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773461393493","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776137461847","typename":"Tool"}],"favoriteStacksCount":7,"__typename":"FeaturedPost"},"$FeaturedPost:102338757016980772.company":{"name":"CircleCI","__typename":"Company"},"Tool:101231773461393493":{"id":"101231773461393493","name":"Firebase","slug":"firebase","title":"The Realtime App Platform","verified":true,"imageUrl":"https://img.stackshare.io/service/116/cZLxNFZS.jpg","canonicalUrl":"/firebase","path":"/firebase","votes":1967,"fans":41712,"stacks":41335,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776137461847":{"id":"101231776137461847","name":"Gatsby","slug":"gatsbyjs","title":"Free, open source framework for building blazing fast websites and apps with React","verified":true,"imageUrl":"https://img.stackshare.io/service/5472/default_189db484e0770a6101c6a70f0ef0172bc0f8de37.png","canonicalUrl":"/gatsbyjs","path":"/gatsbyjs","votes":121,"fans":3112,"stacks":3208,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.2":{"node":{"type":"id","generated":false,"id":"FeaturedPost:102338757016980772","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231816561350456":{"id":"101231816561350456","views":10374,"title":"How Heap Built an Analytics Platform that Auto-Tracks Every User Event","imageUrl":"https://img.stackshare.io/stack/323987/default_23dea8fb86bd66794a7d7f0db8b354daa7520520.png","publishedAt":"2018-06-14T02:23:17Z","canonicalUrl":"/heap/how-heap-built-an-analytics-platform-that-auto-tracks-every-user-event","previewImageUrl":"https://img.stackshare.io/stack/323987/6be8f30b511b97c39b561afcc603360d647b44cf.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231816561350456.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774098455524","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773970332063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773700412232","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776041214023","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773700872359","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774609734307","typename":"Tool"}],"favoriteStacksCount":14,"__typename":"FeaturedPost"},"$FeaturedPost:101231816561350456.company":{"name":"Heap","__typename":"Company"},"Tool:101231773849098825":{"id":"101231773849098825","name":"React","slug":"react","title":"A JavaScript library for building user interfaces","verified":false,"imageUrl":"https://img.stackshare.io/service/1020/OYIaJ1KK.png","canonicalUrl":"/react","path":"/react","votes":4081,"fans":164223,"stacks":174603,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773865214260":{"id":"101231773865214260","name":"Kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","verified":false,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","canonicalUrl":"/kafka","path":"/kafka","votes":607,"fans":26046,"stacks":23740,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773700412232":{"id":"101231773700412232","name":"Ansible","slug":"ansible","title":"Radically simple configuration-management, application deployment, task-execution, and multi-node orchestration engine","verified":true,"imageUrl":"https://img.stackshare.io/service/663/ElOjna20.png","canonicalUrl":"/ansible","path":"/ansible","votes":1323,"fans":18788,"stacks":19174,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776041214023":{"id":"101231776041214023","name":"MobX","slug":"mobx","title":"Simple, scalable state management","verified":false,"imageUrl":"https://img.stackshare.io/service/5302/17475736.png","canonicalUrl":"/mobx","path":"/mobx","votes":114,"fans":753,"stacks":747,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773700872359":{"id":"101231773700872359","name":"Salt","slug":"salt","title":"Fast, scalable and flexible software for data center automation","verified":false,"imageUrl":"https://img.stackshare.io/service/664/-lag2uPT.png","canonicalUrl":"/salt","path":"/salt","votes":164,"fans":554,"stacks":418,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774609734307":{"id":"101231774609734307","name":"Citus","slug":"citus","title":"Worry-free Postgres for SaaS","verified":true,"imageUrl":"https://img.stackshare.io/service/2818/mXMEghLo_400x400.jpg","canonicalUrl":"/citus","path":"/citus","votes":11,"fans":143,"stacks":60,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.3":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231816561350456","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231807627570980":{"id":"101231807627570980","views":14315,"title":"How Stitch Consolidates A Billion Records Per Day","imageUrl":"https://img.stackshare.io/stack/294154/default_1f8040db7bd2f1b7726134421a23fcf0757cfc4c.jpg","publishedAt":"2017-09-28T04:58:01Z","canonicalUrl":"/stitch/how-stitch-consolidates-a-billion-records-per-day","previewImageUrl":"https://img.stackshare.io/stack/294154/5380122005dd543b578015905503ebd99edc6ca2.jpg","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231807627570980.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703650742","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773848354670","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773970332063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774140043342","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215500019","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501596063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703014119","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773841187038","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773627413649","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777003038049","typename":"Tool"}],"favoriteStacksCount":17,"__typename":"FeaturedPost"},"$FeaturedPost:101231807627570980.company":{"name":"Stitch","__typename":"Company"},"Tool:101231773848354670":{"id":"101231773848354670","name":"AngularJS","slug":"angularjs","title":"Superheroic JavaScript MVW Framework","verified":false,"imageUrl":"https://img.stackshare.io/service/1019/square.png","canonicalUrl":"/angularjs","path":"/angularjs","votes":5283,"fans":55762,"stacks":61267,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774140043342":{"id":"101231774140043342","name":"Kibana","slug":"kibana","title":"Visualize your Elasticsearch data and navigate the Elastic Stack","verified":true,"imageUrl":"https://img.stackshare.io/service/1722/Image_2019-05-20_at_4.53.31_PM.png","canonicalUrl":"/kibana","path":"/kibana","votes":262,"fans":20052,"stacks":20553,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773501596063":{"id":"101231773501596063","name":"Sentry","slug":"sentry","title":"See performance issues, fix errors faster, and optimize code health. ","verified":true,"imageUrl":"https://img.stackshare.io/service/191/default_9262326592c97828a2a4299dec085a3674dd05f4.png","canonicalUrl":"/sentry","path":"/sentry","votes":864,"fans":12192,"stacks":14578,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773627413649":{"id":"101231773627413649","name":"AWS OpsWorks","slug":"aws-opswork","title":"Model and manage your entire application from load balancers to databases using Chef","verified":false,"imageUrl":"https://img.stackshare.io/service/419/aws-opswork.png","canonicalUrl":"/aws-opswork","path":"/aws-opswork","votes":51,"fans":269,"stacks":205,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231777003038049":{"id":"101231777003038049","name":"Singer","slug":"singer","title":"Simple, Composable, Open Source ETL","verified":false,"imageUrl":"https://img.stackshare.io/service/7110/ZYIRUU9B_400x400.jpg","canonicalUrl":"/singer","path":"/singer","votes":2,"fans":40,"stacks":21,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.4":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231807627570980","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231805947216335":{"id":"101231805947216335","views":42776,"title":"How CircleCI Processes 4.5 Million Builds Per Month","imageUrl":"https://img.stackshare.io/stack/189324/default_6691ec8c761145f7c439a20ff9e05e57bdaca163.png","publishedAt":"2017-07-13T09:32:03Z","canonicalUrl":"/circleci/how-circleci-processes-4-5-million-builds-per-month","previewImageUrl":"https://img.stackshare.io/stack/189324/a62475f297c803aba5b5d9460037c9bb37be176a.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231805947216335.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773482334926","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773411223883","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773864300849","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773649935410","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703014119","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773941167904","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773398855818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776473814866","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774314369014","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773841187038","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773590628959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615096541","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776419588718","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773460958511","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773692729304","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774204689068","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775590376828","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774619136028","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775148871383","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774064831768","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774651244830","typename":"Tool"}],"favoriteStacksCount":29,"__typename":"FeaturedPost"},"$FeaturedPost:101231805947216335.company":{"name":"CircleCI","__typename":"Company"},"Tool:101231773864300849":{"id":"101231773864300849","name":"RabbitMQ","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","verified":false,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","canonicalUrl":"/rabbitmq","path":"/rabbitmq","votes":557,"fans":22524,"stacks":21482,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773941167904":{"id":"101231773941167904","name":"R Language","slug":"r-language","title":"A language and environment for statistical computing and graphics","verified":false,"imageUrl":"https://img.stackshare.io/service/1213/r-logo.png","canonicalUrl":"/r-language","path":"/r-language","votes":416,"fans":2444,"stacks":3205,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774314369014":{"id":"101231774314369014","name":"Pandas","slug":"pandas","title":"High-performance, easy-to-use data structures and data analysis tools for the Python programming language","verified":false,"imageUrl":"https://img.stackshare.io/service/2180/1284191.png","canonicalUrl":"/pandas","path":"/pandas","votes":23,"fans":1815,"stacks":1742,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773615096541":{"id":"101231773615096541","name":"Amazon VPC","slug":"amazon-vpc","title":"Provision a logically isolated section of the AWS Cloud and launch AWS resources in a virtual network that you define","verified":false,"imageUrl":"https://img.stackshare.io/service/388/amazon-vpc.png","canonicalUrl":"/amazon-vpc","path":"/amazon-vpc","votes":46,"fans":1022,"stacks":1384,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773460958511":{"id":"101231773460958511","name":"Pusher","slug":"pusher","title":"Hosted APIs to build realtime apps with less code","verified":true,"imageUrl":"https://img.stackshare.io/service/115/preview.png","canonicalUrl":"/pusher","path":"/pusher","votes":234,"fans":1586,"stacks":610,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774619136028":{"id":"101231774619136028","name":"ClojureScript","slug":"clojurescript","title":"A Clojure compiler targeting JavaScript","verified":false,"imageUrl":"https://img.stackshare.io/service/2831/cljs-logo-120b.png","canonicalUrl":"/clojurescript","path":"/clojurescript","votes":2,"fans":358,"stacks":312,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774651244830":{"id":"101231774651244830","name":"Om","slug":"om","title":"ClojureScript interface to Facebook's React","verified":false,"imageUrl":"https://img.stackshare.io/service/2897/10822115.png","canonicalUrl":"/om","path":"/om","votes":0,"fans":25,"stacks":23,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.5":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231805947216335","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231801963896829":{"id":"101231801963896829","views":31844,"title":"The Stack That Helped Opendoor Buy and Sell Over $1B in Homes","imageUrl":"https://img.stackshare.io/stack/52692/oqhbiHUU.jpg","publishedAt":"2017-03-09T08:02:19Z","canonicalUrl":"/opendoor/the-stack-that-helped-opendoor-buy-and-sell-over-$1b-in-homes","previewImageUrl":"https://img.stackshare.io/stack/52692/opendoor_preview.jpg","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231801963896829.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773848354670","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773885548898","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835511567","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774544144572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773840406851","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835996572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773454477801","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501596063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773469116775","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773431684432","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774237595825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774314369014","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773713150436","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773873140185","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773417615081","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773863068091","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773692729304","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632985587","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774204689068","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773670764039","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773441530720","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774463222644","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773551961673","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773545754049","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773995151871","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774861987902","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773767894174","typename":"Tool"}],"favoriteStacksCount":22,"__typename":"FeaturedPost"},"$FeaturedPost:101231801963896829.company":{"name":"Opendoor","__typename":"Company"},"Tool:101231774125163302":{"id":"101231774125163302","name":"Webpack","slug":"webpack","title":"A bundler for javascript and friends","verified":true,"imageUrl":"https://img.stackshare.io/service/1682/IMG_4636.PNG","canonicalUrl":"/webpack","path":"/webpack","votes":752,"fans":34162,"stacks":40986,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773885548898":{"id":"101231773885548898","name":"Bootstrap","slug":"bootstrap","title":"Simple and flexible HTML, CSS, and JS for popular UI components and interactions","verified":false,"imageUrl":"https://img.stackshare.io/service/1101/C9QJ7V3X.png","canonicalUrl":"/bootstrap","path":"/bootstrap","votes":7656,"fans":16836,"stacks":55510,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773835511567":{"id":"101231773835511567","name":"Ruby","slug":"ruby","title":"A dynamic, interpreted, open source programming language with a focus on simplicity and productivity","verified":false,"imageUrl":"https://img.stackshare.io/service/989/ruby.png","canonicalUrl":"/ruby","path":"/ruby","votes":3976,"fans":26599,"stacks":41992,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774544144572":{"id":"101231774544144572","name":"React Native","slug":"react-native","title":"A framework for building native apps with React","verified":false,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","canonicalUrl":"/react-native","path":"/react-native","votes":1156,"fans":34598,"stacks":33851,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773774313645":{"id":"101231773774313645","name":"Elasticsearch","slug":"elasticsearch","title":"Open Source, Distributed, RESTful Search Engine","verified":true,"imageUrl":"https://img.stackshare.io/service/841/Image_2019-05-20_at_4.58.04_PM.png","canonicalUrl":"/elasticsearch","path":"/elasticsearch","votes":1649,"fans":32814,"stacks":34717,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773840406851":{"id":"101231773840406851","name":"Flask","slug":"flask","title":"A microframework for Python based on Werkzeug, Jinja 2 and good intentions","verified":false,"imageUrl":"https://img.stackshare.io/service/1001/default_6d109315b60108628b7cd3e159b84645c31ef0e2.png","canonicalUrl":"/flask","path":"/flask","votes":66,"fans":19676,"stacks":19105,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773835996572":{"id":"101231773835996572","name":"Rails","slug":"rails","title":"Web development that doesn't hurt","verified":false,"imageUrl":"https://img.stackshare.io/service/990/x57_Lorv.png","canonicalUrl":"/rails","path":"/rails","votes":5462,"fans":16871,"stacks":19588,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773454477801":{"id":"101231773454477801","name":"New Relic","slug":"new-relic","title":"New Relic is the industryâs largest and most comprehensive cloud-based observability platform.","verified":true,"imageUrl":"https://img.stackshare.io/service/103/default_193410db3a7e419c7b436961bf41d733c7346b59.png","canonicalUrl":"/new-relic","path":"/new-relic","votes":1931,"fans":11022,"stacks":20913,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773469116775":{"id":"101231773469116775","name":"Twilio","slug":"twilio","title":"Bring voice and messaging to your web and mobile applications.","verified":true,"imageUrl":"https://img.stackshare.io/service/130/VrwpNfjh_400x400.png","canonicalUrl":"/twilio","path":"/twilio","votes":521,"fans":11016,"stacks":11397,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773431684432":{"id":"101231773431684432","name":"Mixpanel","slug":"mixpanel","title":"Powerful, self-serve product analytics to help you convert, engage, and retain more users","verified":true,"imageUrl":"https://img.stackshare.io/service/60/default_a3830bd6c50dcc059aaf3aaf287131b64e0957e2.png","canonicalUrl":"/mixpanel","path":"/mixpanel","votes":438,"fans":4639,"stacks":7102,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774237595825":{"id":"101231774237595825","name":"Elixir","slug":"elixir","title":"Dynamic, functional language designed for building scalable and maintainable applications","verified":false,"imageUrl":"https://img.stackshare.io/service/1974/drop.png","canonicalUrl":"/elixir","path":"/elixir","votes":1325,"fans":3863,"stacks":3420,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773713150436":{"id":"101231773713150436","name":"Google BigQuery","slug":"google-bigquery","title":"Analyze terabytes of data in seconds","verified":true,"imageUrl":"https://img.stackshare.io/service/695/BigQuery.png","canonicalUrl":"/google-bigquery","path":"/google-bigquery","votes":152,"fans":1842,"stacks":1685,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773873140185":{"id":"101231773873140185","name":"Sidekiq","slug":"sidekiq","title":"Simple, efficient background processing for Ruby","verified":false,"imageUrl":"https://img.stackshare.io/service/1078/4b7277462dadad85454ab427ce3f0ca7.png","canonicalUrl":"/sidekiq","path":"/sidekiq","votes":408,"fans":911,"stacks":1118,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773417615081":{"id":"101231773417615081","name":"Dyn","slug":"dyn","title":"Managed DNS, Outsourced DNS & Anycast DNS","verified":true,"imageUrl":"https://img.stackshare.io/service/37/fsKWm_AI_400x400.jpg","canonicalUrl":"/dyn","path":"/dyn","votes":24,"fans":133,"stacks":1725,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773863068091":{"id":"101231773863068091","name":"Puma","slug":"puma","title":"A Modern, Concurrent Web Server for Ruby","verified":false,"imageUrl":"https://img.stackshare.io/service/1055/favicon.png","canonicalUrl":"/puma","path":"/puma","votes":20,"fans":457,"stacks":839,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773632985587":{"id":"101231773632985587","name":"Amazon RDS for PostgreSQL","slug":"amazon-rds-for-postgresql","title":" Set up, operate, and scale PostgreSQL deployments in the cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/434/amazon-rds.png","canonicalUrl":"/amazon-rds-for-postgresql","path":"/amazon-rds-for-postgresql","votes":40,"fans":810,"stacks":815,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773670764039":{"id":"101231773670764039","name":"Heap","slug":"heap","title":"Automatically capture every user action in your app and measure it all","verified":true,"imageUrl":"https://img.stackshare.io/service/588/i5NnxX2V_400x400.jpg","canonicalUrl":"/heap","path":"/heap","votes":126,"fans":553,"stacks":684,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773441530720":{"id":"101231773441530720","name":"Papertrail","slug":"papertrail","title":"Hosted log management for servers, apps, and cloud services","verified":true,"imageUrl":"https://img.stackshare.io/service/82/default_3accd6f46a6878fc4663003d9758e6d75bca9dd3.png","canonicalUrl":"/papertrail","path":"/papertrail","votes":273,"fans":546,"stacks":610,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774463222644":{"id":"101231774463222644","name":"PostGIS","slug":"postgis","title":"Open source spatial database","verified":false,"imageUrl":"https://img.stackshare.io/service/2519/foo.png","canonicalUrl":"/postgis","path":"/postgis","votes":30,"fans":479,"stacks":372,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773551961673":{"id":"101231773551961673","name":"imgix","slug":"imgix","title":"Optimize, manage, and deliver images and videos for faster pages, better visual quality, and a simpler workflow.","verified":true,"imageUrl":"https://img.stackshare.io/service/273/default_ad68bba53328058d113f6a08de866fdeeafab59a.jpg","canonicalUrl":"/imgix","path":"/imgix","votes":177,"fans":377,"stacks":218,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773545754049":{"id":"101231773545754049","name":"Help Scout","slug":"help-scout","title":"A help desk for teams that insist on a delightful customer experience","verified":true,"imageUrl":"https://img.stackshare.io/service/267/default_251e3f50802b29c4b3ecded4242f401a81eb17d5.png","canonicalUrl":"/help-scout","path":"/help-scout","votes":60,"fans":154,"stacks":345,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773995151871":{"id":"101231773995151871","name":"HelloSign","slug":"hellosign","title":"Embed signing functionality into your own site with just a few lines of code.","verified":true,"imageUrl":"https://img.stackshare.io/service/1345/R5PcIJdS.png","canonicalUrl":"/hellosign","path":"/hellosign","votes":43,"fans":114,"stacks":83,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774861987902":{"id":"101231774861987902","name":"Talkdesk","slug":"talkdesk","title":"Create a Call Center in 5 Minutes","verified":true,"imageUrl":"https://img.stackshare.io/service/3280/THe-G5nM_400x400.png","canonicalUrl":"/talkdesk","path":"/talkdesk","votes":0,"fans":47,"stacks":16,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773767894174":{"id":"101231773767894174","name":"BlockScore","slug":"blockscore","title":"Simple, fast, and accurate identity verification","verified":true,"imageUrl":"https://img.stackshare.io/service/823/skQqn8lS.png","canonicalUrl":"/blockscore","path":"/blockscore","votes":0,"fans":33,"stacks":10,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.6":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231801963896829","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231795674466929":{"id":"101231795674466929","views":18804,"title":"How LaunchDarkly Serves Over 4 Billion Feature Flags Daily","imageUrl":"https://img.stackshare.io/stack/36962/default_b94e91592923c2d603f9862f033e7efb59636983.png","publishedAt":"2016-09-09T02:06:47Z","canonicalUrl":"/launchdarkly/how-launchdarkly-serves-over-4-billion-feature-flags-daily","previewImageUrl":"https://img.stackshare.io/stack/36962/4a17fece45a6f511aaff79f08ac536024c3a34e7.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231795674466929.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773433737219","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773700412232","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773418092710","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774492574471","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773541427411","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773927221330","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773398855818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615096541","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773887881771","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773616958547","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773552487870","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775170694740","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775590376828","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774080733339","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773437839873","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774453217750","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774376831924","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773727742320","typename":"Tool"}],"favoriteStacksCount":27,"__typename":"FeaturedPost"},"$FeaturedPost:101231795674466929.company":{"name":"LaunchDarkly","__typename":"Company"},"Tool:101231773433737219":{"id":"101231773433737219","name":"Google Analytics","slug":"google-analytics","title":"Enterprise-class web analytics.","verified":false,"imageUrl":"https://img.stackshare.io/service/64/cU74ahCn_400x400.jpg","canonicalUrl":"/google-analytics","path":"/google-analytics","votes":5063,"fans":60296,"stacks":127828,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773418092710":{"id":"101231773418092710","name":"Amazon Route 53","slug":"amazon-route-53","title":"A highly available and scalable Domain Name System (DNS) web service.","verified":false,"imageUrl":"https://img.stackshare.io/service/38/amazon-route-53.png","canonicalUrl":"/amazon-route-53","path":"/amazon-route-53","votes":678,"fans":12216,"stacks":14544,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774492574471":{"id":"101231774492574471","name":"AWS Elastic Load Balancing (ELB)","slug":"aws-elastic-load-balancing","title":"Automatically distribute your incoming application traffic across multiple Amazon EC2 instances","verified":false,"imageUrl":"https://img.stackshare.io/service/2587/aws-elastic-load-balancing.png","canonicalUrl":"/aws-elastic-load-balancing","path":"/aws-elastic-load-balancing","votes":59,"fans":11314,"stacks":12717,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773615579247":{"id":"101231773615579247","name":"Amazon DynamoDB","slug":"amazon-dynamodb","title":"Fully managed NoSQL database service","verified":false,"imageUrl":"https://img.stackshare.io/service/389/amazon-dynamodb.png","canonicalUrl":"/amazon-dynamodb","path":"/amazon-dynamodb","votes":195,"fans":4033,"stacks":3724,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773618167288":{"id":"101231773618167288","name":"Amazon SQS","slug":"amazon-sqs","title":"Fully managed message queuing service","verified":false,"imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","canonicalUrl":"/amazon-sqs","path":"/amazon-sqs","votes":171,"fans":2523,"stacks":2250,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773927221330":{"id":"101231773927221330","name":"HAProxy","slug":"haproxy","title":"The Reliable, High Performance TCP/HTTP Load Balancer","verified":false,"imageUrl":"https://img.stackshare.io/service/1179/preview.png","canonicalUrl":"/haproxy","path":"/haproxy","votes":562,"fans":2663,"stacks":2431,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773887881771":{"id":"101231773887881771","name":"Foundation","slug":"foundation","title":"The most advanced responsive front-end framework in the world","verified":true,"imageUrl":"https://img.stackshare.io/service/1105/ocLJW3ku_400x400.jpg","canonicalUrl":"/foundation","path":"/foundation","votes":740,"fans":1388,"stacks":1237,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773616958547":{"id":"101231773616958547","name":"Amazon ElastiCache","slug":"amazon-elasticache","title":"Deploy, operate, and scale an in-memory cache in the cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/392/amazon-elasticache.png","canonicalUrl":"/amazon-elasticache","path":"/amazon-elasticache","votes":151,"fans":1320,"stacks":1327,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773552487870":{"id":"101231773552487870","name":"Fastly","slug":"fastly","title":"We're redefining content delivery.","verified":true,"imageUrl":"https://img.stackshare.io/service/274/9V2sLNfw.png","canonicalUrl":"/fastly","path":"/fastly","votes":153,"fans":623,"stacks":1058,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775170694740":{"id":"101231775170694740","name":"Amazon Elasticsearch Service","slug":"amazon-elasticsearch-service","title":"Real-time, distributed search and analytics engine that fits nicely into a cloud environment","verified":false,"imageUrl":"https://img.stackshare.io/service/3736/amazon-elasticsearch-service.png","canonicalUrl":"/amazon-elasticsearch-service","path":"/amazon-elasticsearch-service","votes":24,"fans":374,"stacks":377,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774080733339":{"id":"101231774080733339","name":"ReadMe.io","slug":"readme-io","title":"Create and manage beautiful, interactive documentation the easy way","verified":true,"imageUrl":"https://img.stackshare.io/service/1570/default_59f521d302264f440a1b600eed39d6d12474c575.jpg","canonicalUrl":"/readme-io","path":"/readme-io","votes":69,"fans":412,"stacks":120,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773437839873":{"id":"101231773437839873","name":"Groove","slug":"groovehq","title":"Everything you need to convert, support, and delight your customers.","verified":true,"imageUrl":"https://img.stackshare.io/service/74/4vehL4fy_400x400.jpg","canonicalUrl":"/groovehq","path":"/groovehq","votes":10,"fans":55,"stacks":62,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774453217750":{"id":"101231774453217750","name":"Pushpin","slug":"pushpin","title":"Reverse proxy for realtime web services","verified":true,"imageUrl":"https://img.stackshare.io/service/2497/symbol.png","canonicalUrl":"/pushpin","path":"/pushpin","votes":3,"fans":54,"stacks":10,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774376831924":{"id":"101231774376831924","name":"Elevio","slug":"elevio","title":"Proactive customer care, where and when it's needed.","verified":true,"imageUrl":"https://img.stackshare.io/service/2317/O-bdrueR_400x400.png","canonicalUrl":"/elevio","path":"/elevio","votes":0,"fans":28,"stacks":22,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773727742320":{"id":"101231773727742320","name":"Fanout","slug":"fanout","title":"Realtime APIs made simple","verified":true,"imageUrl":"https://img.stackshare.io/service/732/7611724fbaa172dcf6e51ae0c4cc0be1.png","canonicalUrl":"/fanout","path":"/fanout","votes":0,"fans":34,"stacks":6,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773501041914.featuredPosts({\"first\":8}).edges.7":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231795674466929","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"}}