I am currently learning web development with Python and JavaScript course by CS50 Harvard university. It covers python, Flask, Django, SQL, Travis CI, javascript,HTML ,CSS and more. I am very interested in Flutter app development. Can I know what is the difference between learning these above-mentioned frameworks vs learning flutter directly? I am planning to learn flutter so that I can do both web development and app development. Are there any perks of learning these frameworks before flutter?","private":false,"viewCount":709291,"publishedAt":"2020-04-28T13:43:55Z","upvotesCount":7,"decisionType":"getAdvice","fromTools":[],"toTools":[],"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231774111549176","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837565192","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773939333405","typename":"Tool"}],"services":[{"type":"id","generated":false,"id":"Tool:101231773840406851","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777036008618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837565192","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773939333405","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"Tool:101231774111549176":{"id":"101231774111549176","name":"Dart","slug":"dart","title":"A new web programming language with libraries, a virtual machine, and tools","verified":false,"imageUrl":"https://img.stackshare.io/service/1646/Twitter-02.png","canonicalUrl":"/dart","path":"/dart","votes":452,"fans":4470,"stacks":3911,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231773837565192":{"id":"101231773837565192","name":"Django","slug":"django","title":"The Web framework for perfectionists with deadlines","verified":false,"imageUrl":"https://img.stackshare.io/service/994/4aGjtNQv.png","canonicalUrl":"/django","path":"/django","votes":4208,"fans":39460,"stacks":37659,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/994/thumb_4aGjtNQv.png","following":false},"Tool:101231773939333405":{"id":"101231773939333405","name":"JavaScript","slug":"javascript","title":"Lightweight, interpreted, object-oriented language with first-class functions","verified":false,"imageUrl":"https://img.stackshare.io/service/1209/javascript.jpeg","canonicalUrl":"/javascript","path":"/javascript","votes":8072,"fans":312676,"stacks":360760,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/1209/thumb_javascript.jpeg","following":false},"Tool:101231773840406851":{"name":"Flask","path":"/flask","id":"101231773840406851","imageUrl":"https://img.stackshare.io/service/1001/default_6d109315b60108628b7cd3e159b84645c31ef0e2.png","thumbUrl":"https://img.stackshare.io/service/1001/thumb_6d109315b60108628b7cd3e159b84645c31ef0e2.png","stacks":19014,"fans":19615,"votes":66,"followingTool":false,"__typename":"Tool"},"Tool:101231777036008618":{"name":"Flutter","path":"/flutter","id":"101231777036008618","imageUrl":"https://img.stackshare.io/service/7180/flutter-mark-square-100.png","thumbUrl":"https://img.stackshare.io/service/7180/thumb_flutter-mark-square-100.png","stacks":16867,"fans":18190,"votes":1175,"followingTool":false,"__typename":"Tool"},"Tool:101231773837179153":{"name":"Python","path":"/python","id":"101231773837179153","imageUrl":"https://img.stackshare.io/service/993/pUBY5pVj.png","thumbUrl":"https://img.stackshare.io/service/993/thumb_pUBY5pVj.png","stacks":244835,"fans":226661,"votes":6882,"followingTool":false,"__typename":"Tool","slug":"python","title":"A clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.","verified":false,"canonicalUrl":"/python","following":false,"followContext":null},"$Tool:101231773636491087.stackDecisions({\"first\":6}).edges.0":{"node":{"type":"id","generated":false,"id":"StackDecision:104076504946816502","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:101232110333797933":{"id":"101232110333797933","username":"sgbett","title":"Managing Director","companyName":"Bettison.org Limited","imageUrl":"https://img.stackshare.io/user/232476/default_dd7d5a5759a1d489a02ebe825772d0d795e47d56.jpg","thumbUrl":"https://img.stackshare.io/user/232476/thumb_dd7d5a5759a1d489a02ebe825772d0d795e47d56.jpg","displayName":"Simon Bettison","__typename":"User"},"StackDecision:101812154729512342":{"user":{"type":"id","generated":false,"id":"User:101232110333797933","typename":"User"},"company":{"type":"id","generated":true,"id":"$StackDecision:101812154729512342.company","typename":"Company"},"link":null,"publicId":"101812154729512342","id":"101812154729512342","htmlContent":"

In 2012 we made the very difficult decision to entirely re-engineer our existing monolithic LAMP application from the ground up in order to address some growing concerns about it's long term viability as a platform.\n\n

Full application re-write is almost always never the answer, because of the risks involved. However the situation warranted drastic action as it was clear that the existing product was going to face severe scaling issues. We felt it better address these sooner rather than later and also take the opportunity to improve the international architecture and also to refactor the database in. order that it better matched the changes in core functionality.\n\n

PostgreSQL was chosen for its reputation as being solid ACID compliant database backend, it was available as an offering AWS RDS service which reduced the management overhead of us having to configure it ourselves. In order to reduce read load on the primary database we implemented an Elasticsearch layer for fast and scalable search operations. Synchronisation of these indexes was to be achieved through the use of Sidekiq's Redis based background workers on Amazon ElastiCache. Again the AWS solution here looked to be an easy way to keep our involvement in managing this part of the platform at a minimum. Allowing us to focus on our core business.\n\n

Rails ls was chosen for its ability to quickly get core functionality up and running, its MVC architecture and also its focus on Test Driven Development using RSpec and Selenium with Travis CI providing continual integration. We also liked Ruby for its terse, clean and elegant syntax. Though YMMV on that one!\n\n

Unicorn was chosen for its continual deployment and reputation as a reliable application server, nginx for its reputation as a fast and stable reverse-proxy. We also took advantage of the Amazon CloudFront CDN here to further improve performance by caching static assets globally.\n\n

We tried to strike a balance between having control over management and configuration of our core application with the convenience of being able to leverage AWS hosted services for ancillary functions (Amazon SES , Amazon SQS Amazon Route 53 all hosted securely inside Amazon VPC of course!). \n\n

Whilst there is some compromise here with potential vendor lock in, the tasks being performed by these ancillary services are no particularly specialised which should mitigate this risk. Furthermore we have already containerised the stack in our development using Docker environment, and looking to how best to bring this into production - potentially using Amazon EC2 Container Service ","private":false,"viewCount":827088,"publishedAt":"2019-03-25T16:09:44Z","upvotesCount":8,"decisionType":"freeform","fromTools":[],"toTools":[],"subjectTools":[],"services":[{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773873140185","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773616958547","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835996572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774472965337","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774063724150","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835511567","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773862206820","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773861864225","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773403188549","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405155016","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773418092710","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615096541","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215500019","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"$StackDecision:101812154729512342.company":{"imageUrl":"https://img.stackshare.io/company/28600/default_59f36dcba152abf2649245238d99b888f3adfa58.png","thumbUrl":"https://img.stackshare.io/company/28600/thumb_59f36dcba152abf2649245238d99b888f3adfa58.png","name":"Bettison.org Limited","path":"/companies/bettison-org-limited","features":[],"__typename":"Company"},"Tool:101231773853533403":{"name":"PostgreSQL","path":"/postgresql","id":"101231773853533403","imageUrl":"https://img.stackshare.io/service/1028/ASOhU5xJ.png","thumbUrl":"https://img.stackshare.io/service/1028/thumb_ASOhU5xJ.png","stacks":98237,"fans":95457,"votes":3549,"followingTool":false,"__typename":"Tool","slug":"postgresql","title":"A powerful, open source object-relational database system","verified":false,"canonicalUrl":"/postgresql","following":false,"followContext":null},"Tool:101231773774313645":{"name":"Elasticsearch","path":"/elasticsearch","id":"101231773774313645","imageUrl":"https://img.stackshare.io/service/841/Image_2019-05-20_at_4.58.04_PM.png","thumbUrl":"https://img.stackshare.io/service/841/thumb_Image_2019-05-20_at_4.58.04_PM.png","stacks":34516,"fans":32680,"votes":1648,"followingTool":false,"__typename":"Tool","slug":"elasticsearch","title":"Open Source, Distributed, RESTful Search Engine","verified":true,"canonicalUrl":"/elasticsearch","following":false,"followContext":null},"Tool:101231773873140185":{"name":"Sidekiq","path":"/sidekiq","id":"101231773873140185","imageUrl":"https://img.stackshare.io/service/1078/4b7277462dadad85454ab427ce3f0ca7.png","thumbUrl":"https://img.stackshare.io/service/1078/thumb_4b7277462dadad85454ab427ce3f0ca7.png","stacks":1118,"fans":911,"votes":408,"followingTool":false,"__typename":"Tool","slug":"sidekiq","title":"Simple, efficient background processing for Ruby","verified":false,"canonicalUrl":"/sidekiq","following":false,"followContext":null},"Tool:101231773854768982":{"name":"Redis","path":"/redis","id":"101231773854768982","imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","thumbUrl":"https://img.stackshare.io/service/1031/thumb_cbce472cd134adc6688572f999e9122b9657d4ba.png","stacks":59430,"fans":54908,"votes":3943,"followingTool":false,"__typename":"Tool","slug":"redis","title":"Open source (BSD licensed), in-memory data structure store","verified":false,"canonicalUrl":"/redis","following":false,"followContext":null},"Tool:101231773616958547":{"name":"Amazon ElastiCache","path":"/amazon-elasticache","id":"101231773616958547","imageUrl":"https://img.stackshare.io/service/392/amazon-elasticache.png","thumbUrl":"https://img.stackshare.io/service/392/thumb_amazon-elasticache.png","stacks":1324,"fans":1319,"votes":151,"followingTool":false,"__typename":"Tool","slug":"amazon-elasticache","title":"Deploy, operate, and scale an in-memory cache in the cloud","verified":false,"canonicalUrl":"/amazon-elasticache","following":false,"followContext":null},"Tool:101231773835996572":{"name":"Rails","path":"/rails","id":"101231773835996572","imageUrl":"https://img.stackshare.io/service/990/x57_Lorv.png","thumbUrl":"https://img.stackshare.io/service/990/thumb_x57_Lorv.png","stacks":19466,"fans":16793,"votes":5441,"followingTool":false,"__typename":"Tool","slug":"rails","title":"Web development that doesn't hurt","verified":false,"canonicalUrl":"/rails","following":false,"followContext":null},"Tool:101231774472965337":{"name":"RSpec","path":"/rspec","id":"101231774472965337","imageUrl":"https://img.stackshare.io/service/2539/logo.png","thumbUrl":"https://img.stackshare.io/service/2539/thumb_logo.png","stacks":2628,"fans":489,"votes":0,"followingTool":false,"__typename":"Tool"},"Tool:101231774063724150":{"name":"Selenium","path":"/selenium","id":"101231774063724150","imageUrl":"https://img.stackshare.io/service/1517/sbUizSli_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/1517/thumb_sbUizSli_400x400.jpg","stacks":15619,"fans":15412,"votes":527,"followingTool":false,"__typename":"Tool"},"Tool:101231773835511567":{"name":"Ruby","path":"/ruby","id":"101231773835511567","imageUrl":"https://img.stackshare.io/service/989/ruby.png","thumbUrl":"https://img.stackshare.io/service/989/thumb_ruby.png","stacks":41816,"fans":26480,"votes":3973,"followingTool":false,"__typename":"Tool","slug":"ruby","title":"A dynamic, interpreted, open source programming language with a focus on simplicity and productivity","verified":false,"canonicalUrl":"/ruby","following":false,"followContext":null},"Tool:101231773862206820":{"name":"Unicorn","path":"/unicorn","id":"101231773862206820","imageUrl":"https://img.stackshare.io/service/1053/unicorn.png","thumbUrl":"https://img.stackshare.io/service/1053/thumb_unicorn.png","stacks":494,"fans":498,"votes":295,"followingTool":false,"__typename":"Tool"},"Tool:101231773861864225":{"name":"NGINX","path":"/nginx","id":"101231773861864225","imageUrl":"https://img.stackshare.io/service/1052/YMxUfyWf.png","thumbUrl":"https://img.stackshare.io/service/1052/thumb_YMxUfyWf.png","stacks":113367,"fans":73401,"votes":5498,"followingTool":false,"__typename":"Tool","slug":"nginx","title":"A high performance free open source web server powering busiest sites on the Internet.","verified":true,"canonicalUrl":"/nginx","following":false,"followContext":null},"Tool:101231773403188549":{"name":"Amazon CloudFront","path":"/amazon-cloudfront","id":"101231773403188549","imageUrl":"https://img.stackshare.io/service/13/amazon-cloudfront.png","thumbUrl":"https://img.stackshare.io/service/13/thumb_amazon-cloudfront.png","stacks":21283,"fans":13591,"votes":935,"followingTool":false,"__typename":"Tool","slug":"amazon-cloudfront","title":"Content delivery with low latency and high data transfer speeds","verified":false,"canonicalUrl":"/amazon-cloudfront","following":false,"followContext":null},"Tool:101231773405155016":{"name":"Amazon SES","path":"/amazon-ses","id":"101231773405155016","imageUrl":"https://img.stackshare.io/service/17/amazon-ses.png","thumbUrl":"https://img.stackshare.io/service/17/thumb_amazon-ses.png","stacks":9841,"fans":7664,"votes":328,"followingTool":false,"__typename":"Tool","slug":"amazon-ses","title":"Bulk and transactional email-sending service.","verified":false,"canonicalUrl":"/amazon-ses","following":false,"followContext":null},"Tool:101231773618167288":{"name":"Amazon SQS","path":"/amazon-sqs","id":"101231773618167288","imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","thumbUrl":"https://img.stackshare.io/service/395/thumb_amazon-sqs.png","stacks":2235,"fans":2512,"votes":171,"followingTool":false,"__typename":"Tool"},"Tool:101231773418092710":{"name":"Amazon Route 53","path":"/amazon-route-53","id":"101231773418092710","imageUrl":"https://img.stackshare.io/service/38/amazon-route-53.png","thumbUrl":"https://img.stackshare.io/service/38/thumb_amazon-route-53.png","stacks":14426,"fans":12147,"votes":678,"followingTool":false,"__typename":"Tool","slug":"amazon-route-53","title":"A highly available and scalable Domain Name System (DNS) web service.","verified":false,"canonicalUrl":"/amazon-route-53","following":false,"followContext":null},"Tool:101231773615096541":{"name":"Amazon VPC","path":"/amazon-vpc","id":"101231773615096541","imageUrl":"https://img.stackshare.io/service/388/amazon-vpc.png","thumbUrl":"https://img.stackshare.io/service/388/thumb_amazon-vpc.png","stacks":1381,"fans":1018,"votes":46,"followingTool":false,"__typename":"Tool","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,"canonicalUrl":"/amazon-vpc","following":false,"followContext":null},"Tool:101231773669807419":{"name":"Docker","path":"/docker","id":"101231773669807419","imageUrl":"https://img.stackshare.io/service/586/n4u37v9t_400x400.png","thumbUrl":"https://img.stackshare.io/service/586/thumb_n4u37v9t_400x400.png","stacks":174401,"fans":160842,"votes":3857,"followingTool":false,"__typename":"Tool","slug":"docker","title":"Enterprise Container Platform for High-Velocity Innovation.","verified":true,"canonicalUrl":"/docker","followContext":null,"following":false},"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":14157,"fans":12917,"votes":325,"followingTool":false,"__typename":"Tool"},"$Tool:101231773636491087.stackDecisions({\"first\":6}).edges.1":{"node":{"type":"id","generated":false,"id":"StackDecision:101812154729512342","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:101232084434873139":{"id":"101232084434873139","username":"praveenm","title":"Engineering Manager","companyName":"Taylor and Francis","imageUrl":"https://img.stackshare.io/user/184805/default_8f070c83259657b92042275d398fe014873e73aa.jpeg","thumbUrl":"https://img.stackshare.io/user/184805/thumb_8f070c83259657b92042275d398fe014873e73aa.jpeg","displayName":"Praveen Mooli","__typename":"User"},"StackDecision:102523983538702954":{"user":{"type":"id","generated":false,"id":"User:101232084434873139","typename":"User"},"company":null,"link":null,"publicId":"102523983538702954","id":"102523983538702954","htmlContent":"

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages.\nWe also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.\n\n

To build our #Backend capabilities we decided to use the following:\n1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask \n2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda \n3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas \n\n

To build #Webapps we decided to use Angular 2 with RxJS \n\n

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless ","private":false,"viewCount":4010536,"publishedAt":"2019-07-29T09:17:15Z","upvotesCount":19,"decisionType":"freeform","fromTools":[],"toTools":[],"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773970332063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775927452566","typename":"Tool"}],"services":[{"type":"id","generated":false,"id":"Tool:101231773840406851","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776297440807","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774666323920","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773920953695","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632626053","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775186090046","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618592622","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215979427","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775174055327","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774170220209","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773970332063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775927452566","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773523090140","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"}],"topics":[{"type":"id","generated":false,"id":"Topic:101231988901054690","typename":"Topic"},{"type":"id","generated":false,"id":"Topic:101231988911787479","typename":"Topic"},{"type":"id","generated":false,"id":"Topic:101348076767785781","typename":"Topic"},{"type":"id","generated":false,"id":"Topic:101348393685875978","typename":"Topic"},{"type":"id","generated":false,"id":"Topic:101231988857851707","typename":"Topic"},{"type":"id","generated":false,"id":"Topic:101910501640308173","typename":"Topic"}],"__typename":"StackDecision"},"Tool:101231773410696721":{"id":"101231773410696721","name":"GitHub","slug":"github","title":"Powerful collaboration, review, and code management for open source and private development projects","verified":true,"imageUrl":"https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg","canonicalUrl":"/github","path":"/github","votes":10341,"fans":283546,"stacks":285803,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/27/thumb_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg","thumbRetinaUrl":"https://img.stackshare.io/service/27/thumb_retina_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg","following":false},"Tool:101231773970332063":{"id":"101231773970332063","name":"Terraform","slug":"terraform","title":"Describe your complete infrastructure as code and build resources across providers","verified":true,"imageUrl":"https://img.stackshare.io/service/1276/default_2316907c4199f912e2ed79cbdb99025c9e5e2665.png","canonicalUrl":"/terraform","path":"/terraform","votes":344,"fans":17530,"stacks":18397,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/1276/thumb_2316907c4199f912e2ed79cbdb99025c9e5e2665.png"},"Tool:101231775927452566":{"id":"101231775927452566","name":"Serverless","slug":"serverless","title":"The most widely-adopted toolkit for building serverless applications","verified":false,"imageUrl":"https://img.stackshare.io/service/5095/serverless-logo.png","canonicalUrl":"/serverless","path":"/serverless","votes":26,"fans":1539,"stacks":1334,"followingTool":false,"followContext":null,"__typename":"Tool","thumbUrl":"https://img.stackshare.io/service/5095/thumb_serverless-logo.png"},"Tool:101231776297440807":{"name":"MongoDB Atlas","path":"/mongodb-atlas","id":"101231776297440807","imageUrl":"https://img.stackshare.io/service/5739/atlas-360x360.png","thumbUrl":"https://img.stackshare.io/service/5739/thumb_atlas-360x360.png","stacks":843,"fans":1151,"votes":34,"followingTool":false,"__typename":"Tool"},"Tool:101231773838011785":{"name":"Java","path":"/java","id":"101231773838011785","imageUrl":"https://img.stackshare.io/service/995/K85ZWV2F.png","thumbUrl":"https://img.stackshare.io/service/995/thumb_K85ZWV2F.png","stacks":135179,"fans":118444,"votes":3710,"followingTool":false,"__typename":"Tool","slug":"java","title":"A concurrent, class-based, object-oriented, language specifically designed to have as few implementation dependencies as possible","verified":false,"canonicalUrl":"/java","following":false,"followContext":null},"Tool:101231774666323920":{"name":"Spring Boot","path":"/spring-boot","id":"101231774666323920","imageUrl":"https://img.stackshare.io/service/2927/nPzvMuo2_400x400.png","thumbUrl":"https://img.stackshare.io/service/2927/thumb_nPzvMuo2_400x400.png","stacks":25979,"fans":27688,"votes":1012,"followingTool":false,"__typename":"Tool"},"Tool:101231773845103618":{"name":"Node.js","path":"/nodejs","id":"101231773845103618","imageUrl":"https://img.stackshare.io/service/1011/n1JRsFeB_400x400.png","thumbUrl":"https://img.stackshare.io/service/1011/thumb_n1JRsFeB_400x400.png","stacks":188580,"fans":182807,"votes":8537,"followingTool":false,"__typename":"Tool","slug":"nodejs","title":"A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications","verified":false,"canonicalUrl":"/nodejs","following":false,"followContext":null},"Tool:101231773920953695":{"name":"ExpressJS","path":"/expressjs","id":"101231773920953695","imageUrl":"https://img.stackshare.io/service/1163/hashtag.png","thumbUrl":"https://img.stackshare.io/service/1163/thumb_hashtag.png","stacks":32021,"fans":28978,"votes":1617,"followingTool":false,"__typename":"Tool","slug":"expressjs","title":"Sinatra inspired web development framework for node.js -- insanely fast, flexible, and simple","verified":false,"canonicalUrl":"/expressjs","following":false,"followContext":null},"Tool:101231773632626053":{"name":"Amazon Kinesis","path":"/amazon-kinesis","id":"101231773632626053","imageUrl":"https://img.stackshare.io/service/433/default_6bea44ee4da746fbb7c9070a7ffac9b764d1ed79.png","thumbUrl":"https://img.stackshare.io/service/433/thumb_6bea44ee4da746fbb7c9070a7ffac9b764d1ed79.png","stacks":724,"fans":758,"votes":9,"followingTool":false,"__typename":"Tool"},"Tool:101231775186090046":{"name":"Amazon Kinesis Firehose","path":"/amazon-kinesis-firehose","id":"101231775186090046","imageUrl":"https://img.stackshare.io/service/3770/amazon-kinesis.png","thumbUrl":"https://img.stackshare.io/service/3770/thumb_amazon-kinesis.png","stacks":234,"fans":238,"votes":0,"followingTool":false,"__typename":"Tool"},"Tool:101231773618592622":{"name":"Amazon SNS","path":"/amazon-sns","id":"101231773618592622","imageUrl":"https://img.stackshare.io/service/396/amazon-sns.png","thumbUrl":"https://img.stackshare.io/service/396/thumb_amazon-sns.png","stacks":1386,"fans":1565,"votes":18,"followingTool":false,"__typename":"Tool","slug":"amazon-sns","title":"Fully managed push messaging service","verified":false,"canonicalUrl":"/amazon-sns","following":false,"followContext":null},"Tool:101231774215979427":{"name":"AWS Lambda","path":"/aws-lambda","id":"101231774215979427","imageUrl":"https://img.stackshare.io/service/1909/aws-lambda.png","thumbUrl":"https://img.stackshare.io/service/1909/thumb_aws-lambda.png","stacks":24018,"fans":22851,"votes":432,"followingTool":false,"__typename":"Tool"},"Tool:101231775174055327":{"name":"Angular","path":"/angular","id":"101231775174055327","imageUrl":"https://img.stackshare.io/service/3745/cb8U-gL6_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/3745/thumb_cb8U-gL6_400x400.jpg","stacks":1835,"fans":5362,"votes":499,"followingTool":false,"__typename":"Tool"},"Tool:101231774170220209":{"name":"RxJS","path":"/rxjs","id":"101231774170220209","imageUrl":"https://img.stackshare.io/service/1796/984368.png","thumbUrl":"https://img.stackshare.io/service/1796/thumb_984368.png","stacks":2127,"fans":1163,"votes":21,"followingTool":false,"__typename":"Tool"},"Tool:101231773523090140":{"name":"Amazon RDS","path":"/amazon-rds","id":"101231773523090140","imageUrl":"https://img.stackshare.io/service/232/amazon-rds.png","thumbUrl":"https://img.stackshare.io/service/232/thumb_amazon-rds.png","stacks":15836,"fans":13707,"votes":761,"followingTool":false,"__typename":"Tool"},"Tool:101231773615579247":{"name":"Amazon DynamoDB","path":"/amazon-dynamodb","id":"101231773615579247","imageUrl":"https://img.stackshare.io/service/389/amazon-dynamodb.png","thumbUrl":"https://img.stackshare.io/service/389/thumb_amazon-dynamodb.png","stacks":3709,"fans":4020,"votes":195,"followingTool":false,"__typename":"Tool"},"Tool:101231773409399220":{"name":"Amazon S3","path":"/amazon-s3","id":"101231773409399220","imageUrl":"https://img.stackshare.io/service/25/amazon-s3.png","thumbUrl":"https://img.stackshare.io/service/25/thumb_amazon-s3.png","stacks":53221,"fans":47903,"votes":2041,"followingTool":false,"__typename":"Tool","thumbRetinaUrl":"https://img.stackshare.io/service/25/thumb_retina_amazon-s3.png","slug":"amazon-s3","title":"Store and retrieve any amount of data, at any time, from anywhere on the web","verified":false,"canonicalUrl":"/amazon-s3","following":false,"followContext":null},"Topic:101231988901054690":{"name":"Backend","id":"101231988901054690","__typename":"Topic"},"Topic:101231988911787479":{"name":"Microservices","id":"101231988911787479","__typename":"Topic"},"Topic:101348076767785781":{"name":"Eventsourcingframework","id":"101348076767785781","__typename":"Topic"},"Topic:101348393685875978":{"name":"Webapps","id":"101348393685875978","__typename":"Topic"},"Topic:101231988857851707":{"name":"Devops","id":"101231988857851707","__typename":"Topic"},"Topic:101910501640308173":{"name":"Data","id":"101910501640308173","__typename":"Topic"},"$Tool:101231773636491087.stackDecisions({\"first\":6}).edges.2":{"node":{"type":"id","generated":false,"id":"StackDecision:102523983538702954","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9})":{"count":93,"pageInfo":{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).pageInfo","typename":"PageInfo"},"edges":[{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.0","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.1","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.2","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.3","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.4","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.5","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.6","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.7","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.8","typename":"ToolEdge"}],"__typename":"ToolConnection"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).pageInfo":{"hasNextPage":true,"endCursor":"OQ","__typename":"PageInfo"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.0":{"node":{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773851859414":{"imageUrl":"https://img.stackshare.io/service/1025/logo-mysql-170x170.png","thumbUrl":"https://img.stackshare.io/service/1025/thumb_logo-mysql-170x170.png","thumbRetinaUrl":"https://img.stackshare.io/service/1025/thumb_retina_logo-mysql-170x170.png","name":"MySQL","id":"101231773851859414","slug":"mysql","path":"/mysql","__typename":"Tool"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.1":{"node":{"type":"id","generated":false,"id":"Tool:101231773851859414","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773895058604":{"imageUrl":"https://img.stackshare.io/service/1120/lejvzrnlpb308aftn31u.png","thumbUrl":"https://img.stackshare.io/package_manager/1120/thumb_lejvzrnlpb308aftn31u.png","thumbRetinaUrl":"https://img.stackshare.io/package_manager/1120/thumb_retina_lejvzrnlpb308aftn31u.png","name":"npm","id":"101231773895058604","slug":"npm","path":"/npm","__typename":"Tool"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.2":{"node":{"type":"id","generated":false,"id":"Tool:101231773895058604","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773705712932":{"imageUrl":"https://img.stackshare.io/service/675/RNiSRYOF_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/675/thumb_RNiSRYOF_400x400.jpg","thumbRetinaUrl":"https://img.stackshare.io/service/675/thumb_retina_RNiSRYOF_400x400.jpg","name":"Slack","id":"101231773705712932","slug":"slack","path":"/slack","__typename":"Tool","title":"Bring all your communication together in one place","verified":false,"canonicalUrl":"/slack","votes":6023,"fans":113632,"stacks":119552,"following":false,"followContext":null},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.3":{"node":{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.4":{"node":{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773470689784":{"imageUrl":"https://img.stackshare.io/service/133/3wgIDj3j.png","thumbUrl":"https://img.stackshare.io/service/133/thumb_3wgIDj3j.png","thumbRetinaUrl":"https://img.stackshare.io/service/133/thumb_retina_3wgIDj3j.png","name":"Heroku","id":"101231773470689784","slug":"heroku","path":"/heroku","__typename":"Tool"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.5":{"node":{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773497336123":{"imageUrl":"https://img.stackshare.io/service/182/default_baf5833806936d0d160465c15805e984fd613134.png","thumbUrl":"https://img.stackshare.io/service/182/thumb_baf5833806936d0d160465c15805e984fd613134.png","thumbRetinaUrl":"https://img.stackshare.io/service/182/thumb_retina_baf5833806936d0d160465c15805e984fd613134.png","name":"BrowserStack","id":"101231773497336123","slug":"browserstack","path":"/browserstack","__typename":"Tool"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.6":{"node":{"type":"id","generated":false,"id":"Tool:101231773497336123","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231774515773093":{"imageUrl":"https://img.stackshare.io/service/2638/zIVhxKyn_400x400.png","thumbUrl":"https://img.stackshare.io/service/2638/thumb_zIVhxKyn_400x400.png","thumbRetinaUrl":"https://img.stackshare.io/service/2638/thumb_retina_zIVhxKyn_400x400.png","name":"SonarQube","id":"101231774515773093","slug":"sonarqube","path":"/sonarqube","__typename":"Tool"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.7":{"node":{"type":"id","generated":false,"id":"Tool:101231774515773093","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773504918534":{"imageUrl":"https://img.stackshare.io/service/197/default_d69814fad86744595b3b0b30ef84c36c09c70902.jpg","thumbUrl":"https://img.stackshare.io/service/197/thumb_d69814fad86744595b3b0b30ef84c36c09c70902.jpg","thumbRetinaUrl":"https://img.stackshare.io/service/197/thumb_retina_d69814fad86744595b3b0b30ef84c36c09c70902.jpg","name":"Red Hat OpenShift","id":"101231773504918534","slug":"red-hat-openshift","path":"/red-hat-openshift","__typename":"Tool"},"$Tool:101231773636491087.allToolIntegrations({\"first\":9}).edges.8":{"node":{"type":"id","generated":false,"id":"Tool:101231773504918534","typename":"Tool"},"__typename":"ToolEdge"},"Stackup:101231828503444839":{"id":"101231828503444839","path":"/stackups/jenkins-vs-travis-ci","services":[{"type":"id","generated":false,"id":"Tool:101231773703650742","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"}],"__typename":"Stackup"},"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.0":{"node":{"type":"id","generated":false,"id":"Stackup:101231828503444839","typename":"Stackup"},"__typename":"StackupEdge"},"Stackup:101231828500635869":{"id":"101231828500635869","path":"/stackups/circleci-vs-travis-ci","services":[{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"}],"__typename":"Stackup"},"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.1":{"node":{"type":"id","generated":false,"id":"Stackup:101231828500635869","typename":"Stackup"},"__typename":"StackupEdge"},"Stackup:101231854294089526":{"id":"101231854294089526","path":"/stackups/gitlab-ci-vs-travis-ci","services":[{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776189486570","typename":"Tool"}],"__typename":"Stackup"},"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.2":{"node":{"type":"id","generated":false,"id":"Stackup:101231854294089526","typename":"Stackup"},"__typename":"StackupEdge"},"Stackup:101314290562864504":{"id":"101314290562864504","path":"/stackups/gitlab-vs-travis-ci","services":[{"type":"id","generated":false,"id":"Tool:101231773791035497","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"}],"__typename":"Stackup"},"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.3":{"node":{"type":"id","generated":false,"id":"Stackup:101314290562864504","typename":"Stackup"},"__typename":"StackupEdge"},"Stackup:101231854296931524":{"id":"101231854296931524","path":"/stackups/bamboo-vs-travis-ci","services":[{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774142825916","typename":"Tool"}],"__typename":"Stackup"},"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.4":{"node":{"type":"id","generated":false,"id":"Stackup:101231854296931524","typename":"Stackup"},"__typename":"StackupEdge"},"Stackup:101231828508368352":{"id":"101231828508368352","path":"/stackups/teamcity-vs-travis-ci","services":[{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773997873230","typename":"Tool"}],"__typename":"Stackup"},"Tool:101231773997873230":{"id":"101231773997873230","name":"TeamCity","imageUrl":"https://img.stackshare.io/service/1357/317jQkeS.png","thumbUrl":"https://img.stackshare.io/service/1357/thumb_317jQkeS.png","__typename":"Tool"},"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.5":{"node":{"type":"id","generated":false,"id":"Stackup:101231828508368352","typename":"Stackup"},"__typename":"StackupEdge"},"$Tool:101231773636491087.relatedStackups({\"first\":6})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.0","typename":"StackupEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.1","typename":"StackupEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.2","typename":"StackupEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.3","typename":"StackupEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.4","typename":"StackupEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.relatedStackups({\"first\":6}).edges.5","typename":"StackupEdge"}],"__typename":"StackupConnection"},"$Tool:101231773636491087.featuredPosts({\"first\":8})":{"count":9,"pageInfo":{"type":"id","generated":true,"id":"$Tool:101231773636491087.featuredPosts({\"first\":8}).pageInfo","typename":"PageInfo"},"edges":[{"type":"id","generated":true,"id":"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.0","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.1","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.2","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.3","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.4","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.5","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.6","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.7","typename":"FeaturedPostEdge"}],"__typename":"FeaturedPostConnection"},"$Tool:101231773636491087.featuredPosts({\"first\":8}).pageInfo":{"hasNextPage":true,"endCursor":"OA","__typename":"PageInfo"},"FeaturedPost:102368763495430197":{"id":"102368763495430197","views":3119,"title":"How Mixmax Uses Node and Go to Process 250M Events a day","imageUrl":"https://img.stackshare.io/stack/374658/default_67a74f7950d7276c50a0aa82eb39e3c572ecf66b.png","publishedAt":"2019-07-01T23:22:48Z","canonicalUrl":"/mixmax/how-mixmax-uses-node-and-go-to-process-250m-events-a-day","previewImageUrl":"https://img.stackshare.io/stack/374658/8a6bd2ba97f807e47bbb12022fd266730b5d0f4a.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:102368763495430197.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:101231773861864225","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774519122717","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501596063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773813299908","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231778229901703","typename":"Tool"}],"favoriteStacksCount":9,"__typename":"FeaturedPost"},"$FeaturedPost:102368763495430197.company":{"name":"Mixmax","__typename":"Company"},"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":93779,"stacks":93528,"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":3296,"fans":17039,"stacks":22469,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774519122717":{"id":"101231774519122717","name":"Grafana","slug":"grafana","title":"Open source Graphite & InfluxDB Dashboard and Graph Editor","verified":false,"imageUrl":"https://img.stackshare.io/service/2645/default_8f9d552b144493679449b16c79647da5787e808b.jpg","canonicalUrl":"/grafana","path":"/grafana","votes":415,"fans":17510,"stacks":17928,"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":863,"fans":12098,"stacks":14423,"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:101231773813299908":{"id":"101231773813299908","name":"StatsD","slug":"statsd","title":"Simple daemon for easy stats aggregation","verified":false,"imageUrl":"https://img.stackshare.io/service/932/default_b8c7d49298132d46fbef113905bcba1896158113.png","canonicalUrl":"/statsd","path":"/statsd","votes":31,"fans":362,"stacks":305,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231778229901703":{"id":"101231778229901703","name":"strongDM","slug":"strongdm","title":"1-click access to any database or server in any environment","verified":true,"imageUrl":"https://img.stackshare.io/service/9657/strongdm-logo-200x200.png","canonicalUrl":"/strongdm","path":"/strongdm","votes":0,"fans":31,"stacks":16,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.0":{"node":{"type":"id","generated":false,"id":"FeaturedPost:102368763495430197","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231809734545271":{"id":"101231809734545271","views":40926,"title":"Stream & Go: News Feeds for Over 300 Million End Users","imageUrl":"https://img.stackshare.io/stack/308150/default_fab9bba7c7f10899d22e247de701f0a19756483d.png","publishedAt":"2018-01-18T07:43:36Z","canonicalUrl":"/stream/stream-and-go-news-feeds-for-over-300-million-end-users","previewImageUrl":"https://img.stackshare.io/stack/308150/08dfa48f2fe9fab5e1c72dca48716d66cb1e4887.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231809734545271.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: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:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837565192","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775357043443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774140043342","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773403188549","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774519122717","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501596063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773418092710","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774492574471","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125690843","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773469116775","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773421693052","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773541427411","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773855147984","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774313995669","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775419688564","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774105508825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774314369014","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773623413723","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774524652830","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773616958547","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773628223844","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632985587","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773700003158","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777477127297","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773813299908","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775170694740","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773558054183","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774327775574","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773551961673","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774426337070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776930470286","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773701192092","typename":"Tool"}],"favoriteStacksCount":49,"__typename":"FeaturedPost"},"$FeaturedPost:101231809734545271.company":{"name":"Stream","__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":4076,"fans":162846,"stacks":173058,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773405612798":{"id":"101231773405612798","name":"Amazon EC2","slug":"amazon-ec2","title":"Scalable, pay-as-you-go compute capacity in the cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/18/amazon-ec2.png","canonicalUrl":"/amazon-ec2","path":"/amazon-ec2","votes":2548,"fans":43257,"stacks":48242,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775357043443":{"id":"101231775357043443","name":"Redux","slug":"reduxjs","title":"Predictable state container for JavaScript apps","verified":false,"imageUrl":"https://img.stackshare.io/service/4074/13142323.png","canonicalUrl":"/reduxjs","path":"/reduxjs","votes":674,"fans":28474,"stacks":30540,"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":19974,"stacks":20425,"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":11242,"stacks":12606,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774125690843":{"id":"101231774125690843","name":"Logstash","slug":"logstash","title":"Collect, Parse, & Enrich Data","verified":true,"imageUrl":"https://img.stackshare.io/service/1683/preview.png","canonicalUrl":"/logstash","path":"/logstash","votes":103,"fans":11001,"stacks":11374,"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":10933,"stacks":11270,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773421693052":{"id":"101231773421693052","name":"Mailgun","slug":"mailgun","title":"The Email Service for Developers.","verified":true,"imageUrl":"https://img.stackshare.io/service/44/ICON_MAILGUN_NOFX.png","canonicalUrl":"/mailgun","path":"/mailgun","votes":656,"fans":5628,"stacks":7858,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773541427411":{"id":"101231773541427411","name":"Intercom","slug":"intercom","title":"A fundamentally new way to communicate with your customers","verified":true,"imageUrl":"https://img.stackshare.io/service/257/qmwr6vjg_400x400.png","canonicalUrl":"/intercom","path":"/intercom","votes":604,"fans":4188,"stacks":6730,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773855147984":{"id":"101231773855147984","name":"Cassandra","slug":"cassandra","title":"A partitioned row store. Rows are organized into tables with a required primary key.","verified":false,"imageUrl":"https://img.stackshare.io/service/1032/cassandra_small.png","canonicalUrl":"/cassandra","path":"/cassandra","votes":507,"fans":4300,"stacks":3575,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774313995669":{"id":"101231774313995669","name":"NumPy","slug":"numpy","title":"Fundamental package for scientific computing with Python","verified":false,"imageUrl":"https://img.stackshare.io/service/2179/default_332f874a2edb2686f578aa6389313efcea1eec41.png","canonicalUrl":"/numpy","path":"/numpy","votes":14,"fans":1409,"stacks":2952,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775419688564":{"id":"101231775419688564","name":"Jupyter","slug":"jupyter","title":"Multi-language interactive computing environments.","verified":false,"imageUrl":"https://img.stackshare.io/service/4190/fGBUdNf__400x400.jpg","canonicalUrl":"/jupyter","path":"/jupyter","votes":57,"fans":2088,"stacks":2636,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774105508825":{"id":"101231774105508825","name":"Django REST framework","slug":"django-rest-framework","title":"Web APIs for Django","verified":false,"imageUrl":"https://img.stackshare.io/service/1630/New_Project__67_.png","canonicalUrl":"/django-rest-framework","path":"/django-rest-framework","votes":310,"fans":2513,"stacks":1942,"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":1803,"stacks":1732,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773623413723":{"id":"101231773623413723","name":"AWS CloudFormation","slug":"aws-cloudformation","title":"Create and manage a collection of related AWS resources","verified":false,"imageUrl":"https://img.stackshare.io/service/411/aws-cloudformation.png","canonicalUrl":"/aws-cloudformation","path":"/aws-cloudformation","votes":88,"fans":1711,"stacks":1543,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774524652830":{"id":"101231774524652830","name":"scikit-learn","slug":"scikit-learn","title":"Easy-to-use and general-purpose machine learning in Python","verified":false,"imageUrl":"https://img.stackshare.io/service/2657/scikit-learn-logo.png","canonicalUrl":"/scikit-learn","path":"/scikit-learn","votes":45,"fans":1497,"stacks":1232,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773628223844":{"id":"101231773628223844","name":"Puppet Labs","slug":"puppet","title":"Server automation framework and application","verified":true,"imageUrl":"https://img.stackshare.io/service/421/954f7381089ac290b4690c5ffd9dd7d3.png","canonicalUrl":"/puppet","path":"/puppet","votes":227,"fans":1009,"stacks":1132,"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":807,"stacks":811,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773700003158":{"id":"101231773700003158","name":"Fabric","slug":"fabric","title":"Simple, Pythonic remote execution and deployment","verified":false,"imageUrl":"https://img.stackshare.io/service/662/79c2d43ca09b8321909833f37a500799.png","canonicalUrl":"/fabric","path":"/fabric","votes":75,"fans":378,"stacks":451,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231777477127297":{"id":"101231777477127297","name":"Jaeger","slug":"jaeger","title":"Distributed tracing system released as open source by Uber","verified":false,"imageUrl":"https://img.stackshare.io/service/8123/28545596.png","canonicalUrl":"/jaeger","path":"/jaeger","votes":25,"fans":592,"stacks":338,"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:101231773558054183":{"id":"101231773558054183","name":"StatusPage.io","slug":"statuspage-io","title":"Build trust with every incident: Real-time status and incident communication.","verified":true,"imageUrl":"https://img.stackshare.io/service/279/sp-logo-blue-white-background.jpg","canonicalUrl":"/statuspage-io","path":"/statuspage-io","votes":48,"fans":354,"stacks":367,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774327775574":{"id":"101231774327775574","name":"Stream","slug":"stream","title":"Build scalable feeds, activity streams & chat in a few hours instead of months.","verified":true,"imageUrl":"https://img.stackshare.io/service/2213/mBSAJI_h_400x400.jpg","canonicalUrl":"/stream","path":"/stream","votes":54,"fans":321,"stacks":227,"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":376,"stacks":217,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774426337070":{"id":"101231774426337070","name":"RocksDB","slug":"rocksdb","title":"Embeddable persistent key-value store for fast storage, developed and maintained by Facebook Database Engineering Team","verified":false,"imageUrl":"https://img.stackshare.io/service/2432/81KLTHHZ.png","canonicalUrl":"/rocksdb","path":"/rocksdb","votes":11,"fans":334,"stacks":140,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776930470286":{"id":"101231776930470286","name":"OpenTracing","slug":"opentracing","title":"Consistent, expressive, vendor-neutral APIs for distributed tracing and context propagation.","verified":false,"imageUrl":"https://img.stackshare.io/service/6941/ktuguoGc_400x400.jpg","canonicalUrl":"/opentracing","path":"/opentracing","votes":0,"fans":153,"stacks":167,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773701192092":{"id":"101231773701192092","name":"VictorOps","slug":"victorops","title":"We make on-call suck less & help teams to solve problems faster.","verified":true,"imageUrl":"https://img.stackshare.io/service/665/5Yp_4_1e_400x400.png","canonicalUrl":"/victorops","path":"/victorops","votes":30,"fans":138,"stacks":90,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.1":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231809734545271","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231808365995189":{"id":"101231808365995189","views":37107,"title":"How Sentry Receives 20 Billion Events Per Month While Preparing to Handle Twice That","imageUrl":"https://img.stackshare.io/stack/304342/default_a3507ffa24597f83ed25ef8a638434cb4bea24e3.png","publishedAt":"2017-11-08T17:09:52Z","canonicalUrl":"/sentry/how-sentry-receives-20-billion-events-per-month-while-preparing-to-handle-twice-that","previewImageUrl":"https://img.stackshare.io/stack/304342/ad08772ef859d4e63bb445e15ca2832a6861bce2.gif","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231808365995189.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773939333405","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: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:101231773433737219","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773861864225","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775376642511","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837565192","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774565594919","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773864300849","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773450178959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501596063","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:101231773421016326","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773869138699","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773927221330","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773892637981","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773871944512","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773713150436","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774728256352","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773856110685","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774613913004","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776399053510","typename":"Tool"}],"favoriteStacksCount":28,"__typename":"FeaturedPost"},"$FeaturedPost:101231808365995189.company":{"name":"Sentry","__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":59831,"stacks":127255,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775376642511":{"id":"101231775376642511","name":"ES6","slug":"es6","title":"The next version of JavaScript","verified":false,"imageUrl":"https://img.stackshare.io/service/4109/16407404782_8b9c57eab3.jpg","canonicalUrl":"/es6","path":"/es6","votes":165,"fans":70496,"stacks":71452,"following":false,"followContext":null,"__typename":"Tool"},"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":33939,"stacks":40691,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774565594919":{"id":"101231774565594919","name":"Babel","slug":"babel","title":"Use next generation JavaScript, today.","verified":true,"imageUrl":"https://img.stackshare.io/service/2739/-1wfGjNw.png","canonicalUrl":"/babel","path":"/babel","votes":391,"fans":14654,"stacks":22293,"following":false,"followContext":null,"__typename":"Tool"},"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":22414,"stacks":21325,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773450178959":{"id":"101231773450178959","name":"Stripe","slug":"stripe","title":"Payments for developers","verified":true,"imageUrl":"https://img.stackshare.io/service/97/eW6tXeq3.png","canonicalUrl":"/stripe","path":"/stripe","votes":1539,"fans":15567,"stacks":18842,"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":11569,"stacks":12204,"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":9937,"stacks":9395,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773421016326":{"id":"101231773421016326","name":"Twilio SendGrid","slug":"twilio-sendgrid","title":"Email Delivery. Simplified.","verified":true,"imageUrl":"https://img.stackshare.io/service/43/kQ_6nwmP.jpg","canonicalUrl":"/twilio-sendgrid","path":"/twilio-sendgrid","votes":720,"fans":7525,"stacks":10631,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773869138699":{"id":"101231773869138699","name":"Rust","slug":"rust","title":"A safe, concurrent, practical language","verified":false,"imageUrl":"https://img.stackshare.io/service/1070/v7txhrjp9pdqrkdtxxp0.png","canonicalUrl":"/rust","path":"/rust","votes":1241,"fans":5810,"stacks":5839,"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":2662,"stacks":2431,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773892637981":{"id":"101231773892637981","name":"Jekyll","slug":"jekyll","title":"Blog-aware, static site generator in Ruby","verified":false,"imageUrl":"https://img.stackshare.io/service/1114/ad968c1615d956e800fa36494314f48c.jpeg","canonicalUrl":"/jekyll","path":"/jekyll","votes":230,"fans":1841,"stacks":1916,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773871944512":{"id":"101231773871944512","name":"Celery","slug":"celery","title":"Distributed task queue","verified":false,"imageUrl":"https://img.stackshare.io/service/1075/celery.png","canonicalUrl":"/celery","path":"/celery","votes":280,"fans":2024,"stacks":1593,"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":1838,"stacks":1679,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774728256352":{"id":"101231774728256352","name":"Redash","slug":"redash","title":"Easily query an existing database, share the dataset and visualize it in different ways","verified":true,"imageUrl":"https://img.stackshare.io/service/3033/NdQYl6cB_400x400.png","canonicalUrl":"/redash","path":"/redash","votes":12,"fans":566,"stacks":346,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773856110685":{"id":"101231773856110685","name":"Riak","slug":"riak","title":"A distributed, decentralized data storage system","verified":true,"imageUrl":"https://img.stackshare.io/service/1041/riak.png","canonicalUrl":"/riak","path":"/riak","votes":44,"fans":168,"stacks":104,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774613913004":{"id":"101231774613913004","name":"RefluxJS","slug":"refluxjs","title":"A simple library for uni-directional dataflow application architecture inspired by ReactJS Flux","verified":false,"imageUrl":"https://img.stackshare.io/no-img-open-source.png","canonicalUrl":"/refluxjs","path":"/refluxjs","votes":5,"fans":29,"stacks":29,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776399053510":{"id":"101231776399053510","name":"Veneur","slug":"veneur","title":"High performance and global aggregation for Datadog","verified":true,"imageUrl":"https://img.stackshare.io/no-img-open-source.png","canonicalUrl":"/veneur","path":"/veneur","votes":0,"fans":17,"stacks":3,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.2":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231808365995189","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231802699989232":{"id":"101231802699989232","views":21099,"title":"How Algolia Reduces Latency For 21B Searches Per Month","imageUrl":"https://img.stackshare.io/stack/54181/default_57c09f50d0d9350019cd155e63f96a40675aba26.png","publishedAt":"2017-03-30T07:06:52Z","canonicalUrl":"/algolia/how-algolia-reduces-latency-for-21b-searches-per-month","previewImageUrl":"https://img.stackshare.io/stack/54181/a6a893cfcb72867f0c5989cd944d67e002f60f48.jpg","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231802699989232.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773861864225","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773404113083","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773457672502","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773860248995","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773457195811","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776473814866","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773671105654","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773813299908","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774276188373","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776013894395","typename":"Tool"}],"favoriteStacksCount":28,"__typename":"FeaturedPost"},"$FeaturedPost:101231802699989232.company":{"name":"Algolia","__typename":"Company"},"Tool:101231773404113083":{"id":"101231773404113083","name":"CloudFlare","slug":"cloudflare","title":"The Web Performance & Security Company.","verified":true,"imageUrl":"https://img.stackshare.io/service/15/twitter-profile-400x400.png","canonicalUrl":"/cloudflare","path":"/cloudflare","votes":1772,"fans":27582,"stacks":76598,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773457672502":{"id":"101231773457672502","name":"Trello","slug":"trello","title":"Your entire project, in a single glance","verified":false,"imageUrl":"https://img.stackshare.io/service/109/-CvHThPk_400x400.jpg","canonicalUrl":"/trello","path":"/trello","votes":3707,"fans":41185,"stacks":43081,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773860248995":{"id":"101231773860248995","name":"C++","slug":"cplusplus","title":"Has imperative, object-oriented and generic programming features, while also providing the facilities for low level memory manipulation","verified":false,"imageUrl":"https://img.stackshare.io/service/1049/cplusplus.png","canonicalUrl":"/cplusplus","path":"/cplusplus","votes":849,"fans":11531,"stacks":17292,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773457195811":{"id":"101231773457195811","name":"Asana","slug":"asana","title":"Enabling the teams to work together effortlessly","verified":true,"imageUrl":"https://img.stackshare.io/service/108/default_d91a59e7b4dde497605e10e1cf80eb445904a438.jpg","canonicalUrl":"/asana","path":"/asana","votes":655,"fans":9140,"stacks":9646,"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":2503,"stacks":1739,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773671105654":{"id":"101231773671105654","name":"Algolia","slug":"algolia","title":"Developer-friendly API and complete set of tools for building search","verified":true,"imageUrl":"https://img.stackshare.io/service/589/default_452afb716f8f4b904f267638e5c6b9172f9fa06d.png","canonicalUrl":"/algolia","path":"/algolia","votes":699,"fans":1494,"stacks":1307,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774276188373":{"id":"101231774276188373","name":"collectd","slug":"collectd","title":"System and applications metrics collector","verified":false,"imageUrl":"https://img.stackshare.io/service/2082/symbol-sevenup.shadow_400x400.png","canonicalUrl":"/collectd","path":"/collectd","votes":5,"fans":174,"stacks":98,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776013894395":{"id":"101231776013894395","name":"Wavefront","slug":"wavefront","title":"Unified Cloud Monitoring with Real-Time Analytics","verified":false,"imageUrl":"https://img.stackshare.io/service/5242/default_e29f842123042ffb05d4ab6b2c6172da66e3691f.jpg","canonicalUrl":"/wavefront","path":"/wavefront","votes":2,"fans":72,"stacks":35,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.3":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231802699989232","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231795084339381":{"id":"101231795084339381","views":2140,"title":"The HyperDev Tech Stack: Powering Over 1M Containers","imageUrl":"https://img.stackshare.io/stack/35661/default_d47b1279a13b204e7dc42cded198b44fa828dee2.jpg","publishedAt":"2016-08-05T04:07:38Z","canonicalUrl":"/glitch/the-hyperdev-tech-stack-powering-over-1m-containers","previewImageUrl":"https://img.stackshare.io/stack/35661/dd85f8678ee4ef13ab7fcd77398fb5d2d9e19dbb.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231795084339381.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773939333405","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","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:101231773433737219","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775043834687","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:101231773457672502","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773700412232","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773403188549","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773454477801","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773418092710","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773744147511","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773772085321","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773926852560","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773777695089","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774802095562","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774324000201","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773924483778","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774287464433","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774139649395","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773441940942","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776170860553","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776080604348","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773481952151","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776081062034","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776081742532","typename":"Tool"}],"favoriteStacksCount":20,"__typename":"FeaturedPost"},"$FeaturedPost:101231795084339381.company":{"name":"Glitch","__typename":"Company"},"Tool:101231773858546548":{"id":"101231773858546548","name":"Git","slug":"git","title":"Fast, scalable, distributed revision control system","verified":false,"imageUrl":"https://img.stackshare.io/service/1046/git.png","canonicalUrl":"/git","path":"/git","votes":6590,"fans":205008,"stacks":297419,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775043834687":{"id":"101231775043834687","name":"Ubuntu","slug":"ubuntu","title":"The leading OS for PC, tablet, phone and cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/3511/cof_orange_hex.jpg","canonicalUrl":"/ubuntu","path":"/ubuntu","votes":468,"fans":68616,"stacks":78663,"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":18719,"stacks":19055,"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":10975,"stacks":20818,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773744147511":{"id":"101231773744147511","name":"Vagrant","slug":"vagrant","title":"A tool for building and distributing development environments","verified":true,"imageUrl":"https://img.stackshare.io/service/768/150px-Vagrant.png","canonicalUrl":"/vagrant","path":"/vagrant","votes":1499,"fans":10086,"stacks":11474,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773772085321":{"id":"101231773772085321","name":"Mocha","slug":"mocha","title":"Simple, flexible, fun javascript test framework for node.js & the browser","verified":false,"imageUrl":"https://img.stackshare.io/service/832/mocha.png","canonicalUrl":"/mocha","path":"/mocha","votes":430,"fans":4111,"stacks":8710,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773926852560":{"id":"101231773926852560","name":"CoffeeScript","slug":"coffeescript","title":"A little language that compiles into JavaScript","verified":false,"imageUrl":"https://img.stackshare.io/service/1178/slQydAMv.png","canonicalUrl":"/coffeescript","path":"/coffeescript","votes":1025,"fans":1757,"stacks":3366,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773777695089":{"id":"101231773777695089","name":"Browserify","slug":"browserify","title":"Browser-side require() the node.js way","verified":false,"imageUrl":"https://img.stackshare.io/service/849/9esmqty2.png","canonicalUrl":"/browserify","path":"/browserify","votes":261,"fans":771,"stacks":1839,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774802095562":{"id":"101231774802095562","name":"Docker Swarm","slug":"docker-swarm","title":"Native clustering for Docker. Turn a pool of Docker hosts into a single, virtual host.","verified":true,"imageUrl":"https://img.stackshare.io/service/3177/preview.png","canonicalUrl":"/docker-swarm","path":"/docker-swarm","votes":282,"fans":1242,"stacks":793,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774324000201":{"id":"101231774324000201","name":"UglifyJS","slug":"uglifyjs","title":"A JavaScript parser, minifier, compressor and beautifier toolkit.","verified":false,"imageUrl":"https://img.stackshare.io/service/2203/default_9058af6f02375a99f634f537d727e32df92ac262.png","canonicalUrl":"/uglifyjs","path":"/uglifyjs","votes":0,"fans":192,"stacks":520,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773924483778":{"id":"101231773924483778","name":"Stylus","slug":"stylus","title":"Expressive, robust, feature-rich CSS language built for nodejs","verified":false,"imageUrl":"https://img.stackshare.io/service/1172/stylus.png","canonicalUrl":"/stylus","path":"/stylus","votes":331,"fans":558,"stacks":442,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774287464433":{"id":"101231774287464433","name":"Istanbul","slug":"istanbul","title":"A JS code coverage tool written in JS","verified":false,"imageUrl":"https://img.stackshare.io/service/2105/default_78659c552327b8ff3592c2aa1694ea92c974a8d5.png","canonicalUrl":"/istanbul","path":"/istanbul","votes":0,"fans":170,"stacks":377,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774139649395":{"id":"101231774139649395","name":"etcd","slug":"etcd","title":"A distributed consistent key-value store for shared configuration and service discovery","verified":true,"imageUrl":"https://img.stackshare.io/service/1721/etcd.png","canonicalUrl":"/etcd","path":"/etcd","votes":24,"fans":503,"stacks":307,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773441940942":{"id":"101231773441940942","name":"Loggly","slug":"loggly","title":"Unified log analysis & log monitoring","verified":true,"imageUrl":"https://img.stackshare.io/service/83/default_642fc255afad78948f04d7acefa8e11440014888.png","canonicalUrl":"/loggly","path":"/loggly","votes":168,"fans":371,"stacks":274,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776170860553":{"id":"101231776170860553","name":"Glitch","slug":"glitch","title":"Code, collaborate, and ship in seconds from your browser","verified":true,"imageUrl":"https://img.stackshare.io/service/5526/default_e717fa2d915caccd07943d84cd60bbb15470a825.jpg","canonicalUrl":"/glitch","path":"/glitch","votes":42,"fans":218,"stacks":83,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776080604348":{"id":"101231776080604348","name":"Ace","slug":"ace","title":"Embeddable code editor written in JavaScript","verified":true,"imageUrl":"https://img.stackshare.io/service/5372/ACE-Cloud9-EDITOR-Social-Media-icon.png","canonicalUrl":"/ace","path":"/ace","votes":7,"fans":165,"stacks":79,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773481952151":{"id":"101231773481952151","name":"FogBugz","slug":"fogbugz","title":"The world's easiest bug tracking system","verified":false,"imageUrl":"https://img.stackshare.io/service/153/xMO9jDp5_400x400.jpg","canonicalUrl":"/fogbugz","path":"/fogbugz","votes":0,"fans":44,"stacks":39,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776081062034":{"id":"101231776081062034","name":"Firepad","slug":"firepad","title":"An open-source, real-time, collaborative code and text editing library built on Firebase","verified":true,"imageUrl":"https://img.stackshare.io/service/5373/363cdca41f5d5d30c51c56b083451385.png","canonicalUrl":"/firepad","path":"/firepad","votes":0,"fans":29,"stacks":7,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776081742532":{"id":"101231776081742532","name":"Hamlet","slug":"hamlet","title":"Simple and powerful reactive templating","verified":false,"imageUrl":"https://img.stackshare.io/service/5374/49f0dNfY.png","canonicalUrl":"/hamlet","path":"/hamlet","votes":0,"fans":15,"stacks":3,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.4":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231795084339381","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231783395423508":{"id":"101231783395423508","views":16103,"title":"How Mashape Manages Over 15,000 APIs & Microservices","imageUrl":"https://img.stackshare.io/stack/11183/default_7bf03765b2aee30f2e922fa4baf4bf1e40f5145a.png","publishedAt":"2015-09-25T08:45:35Z","canonicalUrl":"/kong/how-mashape-manages-over-15000-apis-and-microservices","previewImageUrl":"https://img.stackshare.io/stack/11183/2267362ccc355136c4cfbdb2deee587b8215ca24.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231783395423508.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:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773861864225","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:101231773835511567","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773920953695","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703014119","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773855147984","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774291224569","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773847891619","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773627798007","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774772759859","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774724522037","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773579158988","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773401272867","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773563555200","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773657526175","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773648351439","typename":"Tool"}],"favoriteStacksCount":29,"__typename":"FeaturedPost"},"$FeaturedPost:101231783395423508.company":{"name":"Kong","__typename":"Company"},"Tool:101231774291224569":{"id":"101231774291224569","name":"Lua","slug":"lua","title":"Powerful, fast, lightweight, embeddable scripting language","verified":false,"imageUrl":"https://img.stackshare.io/service/2118/128px-Lua-Logo.svg.png","canonicalUrl":"/lua","path":"/lua","votes":180,"fans":1455,"stacks":2339,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773847891619":{"id":"101231773847891619","name":"Ember.js","slug":"emberjs","title":"A JavaScript framework for creating ambitious web apps","verified":false,"imageUrl":"https://img.stackshare.io/service/1018/3s1seyc0csl75btyw1vl.png","canonicalUrl":"/emberjs","path":"/emberjs","votes":775,"fans":1147,"stacks":1506,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773627798007":{"id":"101231773627798007","name":"Chef","slug":"chef","title":"Build, destroy and rebuild servers on any public or private cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/420/24f4ef5e7a67c0d720bf9ae69dd6de2a.png","canonicalUrl":"/chef","path":"/chef","votes":345,"fans":1326,"stacks":1266,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774772759859":{"id":"101231774772759859","name":"OpenResty","slug":"openresty","title":"Turning Nginx into a Full-fledged Web App Server","verified":false,"imageUrl":"https://img.stackshare.io/service/3118/default_194f546e1cde32e6a4a347f1d3198e62b5592f43.png","canonicalUrl":"/openresty","path":"/openresty","votes":0,"fans":288,"stacks":2318,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774724522037":{"id":"101231774724522037","name":"Kong","slug":"kong","title":"Open Source Microservice & API Management Layer","verified":true,"imageUrl":"https://ucarecdn.com/3cf09daa-4e1e-404e-a612-f8a91c661db2/","canonicalUrl":"/kong","path":"/kong","votes":139,"fans":1718,"stacks":641,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773579158988":{"id":"101231773579158988","name":"Code Climate","slug":"code-climate","title":"Automated Ruby Code Review","verified":true,"imageUrl":"https://img.stackshare.io/service/305/KFgYaUkK.png","canonicalUrl":"/code-climate","path":"/code-climate","votes":285,"fans":704,"stacks":665,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773401272867":{"id":"101231773401272867","name":"Chartio","slug":"chartio","title":"A powerful Business Intelligence tool anyone can use","verified":true,"imageUrl":"https://img.stackshare.io/service/9/TtrFaQ3j_400x400.png","canonicalUrl":"/chartio","path":"/chartio","votes":6,"fans":312,"stacks":447,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773563555200":{"id":"101231773563555200","name":"Splunk Cloud","slug":"splunk-cloud","title":"Easy and fast way to analyze valuable machine data with the convenience of software as a service (SaaS)","verified":true,"imageUrl":"https://img.stackshare.io/service/287/default_3ee4c34e118179464e491133fc4ac4f16e46771f.jpg","canonicalUrl":"/splunk-cloud","path":"/splunk-cloud","votes":15,"fans":463,"stacks":167,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773657526175":{"id":"101231773657526175","name":"Flowdock","slug":"flowdock","title":"Flowdock is your team's chat with a shared inbox. Teams using Flowdock react in seconds and never forget anything.","verified":true,"imageUrl":"https://img.stackshare.io/service/547/-vh2vDWG_400x400.jpg","canonicalUrl":"/flowdock","path":"/flowdock","votes":165,"fans":126,"stacks":101,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773648351439":{"id":"101231773648351439","name":"Mashape","slug":"mashape","title":"Open Source API Platform for a Cloud Native World","verified":true,"imageUrl":"https://ucarecdn.com/274d1d51-138b-432b-b50b-d61bef011d83/","canonicalUrl":"/mashape","path":"/mashape","votes":26,"fans":93,"stacks":40,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.5":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231783395423508","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231781824221653":{"id":"101231781824221653","views":10834,"title":"How imgix Built A Stack To Serve 100,000 Images Per Second","imageUrl":"https://img.stackshare.io/stack/7541/default_d4b3500a436db3ddc1d3fc45f000f45c04d3ff4c.png","publishedAt":"2015-08-28T09:58:18Z","canonicalUrl":"/imgix/how-imgix-built-a-stack-to-serve-100000-images-per-second","previewImageUrl":"https://img.stackshare.io/stack/7541/a1bf2671dd2f72502d02ef0090e313a99f7ef127.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231781824221653.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:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773861864225","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773457672502","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","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:101231773843750465","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773874709816","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774455039874","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773927221330","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774291224569","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773713150436","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773733721900","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773847891619","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774772759859","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773552487870","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409003364","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773840775583","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773558054183","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773551961673","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773583480612","typename":"Tool"}],"favoriteStacksCount":27,"__typename":"FeaturedPost"},"$FeaturedPost:101231781824221653.company":{"name":"imgix","__typename":"Company"},"Tool:101231773843750465":{"id":"101231773843750465","name":"Objective-C","slug":"objective-c","title":"The primary programming language you use when writing software for OS X and iOS","verified":false,"imageUrl":"https://img.stackshare.io/service/1008/xcode.png","canonicalUrl":"/objective-c","path":"/objective-c","votes":490,"fans":8511,"stacks":12655,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773874709816":{"id":"101231773874709816","name":"C lang","slug":"c-lang","title":"One of the most widely used programming languages of all time","verified":false,"imageUrl":"https://img.stackshare.io/no-img-open-source.png","canonicalUrl":"/c-lang","path":"/c-lang","votes":252,"fans":5694,"stacks":13714,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774455039874":{"id":"101231774455039874","name":"Prometheus","slug":"prometheus","title":"An open-source service monitoring system and time series database, developed by SoundCloud","verified":false,"imageUrl":"https://img.stackshare.io/service/2501/default_3cf1b307194b26782be5cb209d30360580ae5b3c.png","canonicalUrl":"/prometheus","path":"/prometheus","votes":239,"fans":4880,"stacks":4269,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773733721900":{"id":"101231773733721900","name":"Consul","slug":"consul","title":"A tool for service discovery, monitoring and configuration","verified":true,"imageUrl":"https://img.stackshare.io/service/747/consul-logo-grad_teaser.png","canonicalUrl":"/consul","path":"/consul","votes":213,"fans":1855,"stacks":1151,"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":1060,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773409003364":{"id":"101231773409003364","name":"Linode","slug":"linode","title":"Deploy and Manage Linux Virtual Servers in the Linode Cloud.","verified":true,"imageUrl":"https://img.stackshare.io/service/24/631d437cd8e04903f69766a85d8a5540.png","canonicalUrl":"/linode","path":"/linode","votes":422,"fans":864,"stacks":747,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773840775583":{"id":"101231773840775583","name":"Tornado","slug":"tornado","title":"A Python web framework and asynchronous networking library, originally developed at FriendFeed","verified":false,"imageUrl":"https://img.stackshare.io/service/1002/tornado.png","canonicalUrl":"/tornado","path":"/tornado","votes":167,"fans":537,"stacks":445,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773583480612":{"id":"101231773583480612","name":"Hosted Graphite","slug":"hosted-graphite","title":"Graphite as a service","verified":true,"imageUrl":"https://img.stackshare.io/service/313/favcmrtb6zfcx6omp5iq.png","canonicalUrl":"/hosted-graphite","path":"/hosted-graphite","votes":12,"fans":33,"stacks":22,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.6":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231781824221653","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231780475882803":{"id":"101231780475882803","views":1464,"title":"How Cotap Is Building A HIPAA-compliant Messaging Service On AWS","imageUrl":"https://img.stackshare.io/stack/4847/default_c414c9f098da9ec1a39e2145c4087d3f1d644c24.png","publishedAt":"2015-06-26T10:14:24Z","canonicalUrl":"/zinc/how-cotap-is-building-a-hipaa-compliant-messaging-service-on-aws","previewImageUrl":"https://img.stackshare.io/stack/4847/1bd09ab82868253eebcb3c9f32a56c530df49d9b.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231780475882803.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773861864225","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:101231773457672502","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835511567","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773844232272","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835996572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773403188549","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773454477801","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773418092710","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773843750465","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773620969295","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773469116775","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773744147511","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773421016326","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405155016","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773847537497","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773431684432","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773398855818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773623413723","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773613893180","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618592622","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615096541","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773627798007","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773477005204","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773873140185","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773839608773","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773522699243","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773825068049","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773813880952","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774321012818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773531380326","typename":"Tool"}],"favoriteStacksCount":5,"__typename":"FeaturedPost"},"$FeaturedPost:101231780475882803.company":{"name":"Zinc","__typename":"Company"},"Tool:101231773844232272":{"id":"101231773844232272","name":"Swift","slug":"swift","title":"An innovative new programming language for Cocoa and Cocoa Touch. ","verified":false,"imageUrl":"https://img.stackshare.io/service/1009/tuHsaI2U.png","canonicalUrl":"/swift","path":"/swift","votes":1275,"fans":16523,"stacks":20290,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773620969295":{"id":"101231773620969295","name":"Amazon CloudWatch","slug":"amazon-cloudwatch","title":"Monitor AWS resources and custom metrics generated by your applications and services","verified":false,"imageUrl":"https://img.stackshare.io/service/401/amazon-cloudwatch.png","canonicalUrl":"/amazon-cloudwatch","path":"/amazon-cloudwatch","votes":214,"fans":10488,"stacks":11578,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773847537497":{"id":"101231773847537497","name":"Backbone.js","slug":"backbone","title":"Give your JS App some Backbone with Models, Views, Collections, and Events","verified":false,"imageUrl":"https://img.stackshare.io/service/1017/Screen_Shot_2012-04-28_at_8.52.15_PM.png","canonicalUrl":"/backbone","path":"/backbone","votes":675,"fans":4445,"stacks":7548,"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":7103,"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":1336,"stacks":3121,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773613893180":{"id":"101231773613893180","name":"Amazon Redshift","slug":"amazon-redshift","title":"Fast, fully managed, petabyte-scale data warehouse service","verified":false,"imageUrl":"https://img.stackshare.io/service/386/amazon-redshift.png","canonicalUrl":"/amazon-redshift","path":"/amazon-redshift","votes":108,"fans":1633,"stacks":1528,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773477005204":{"id":"101231773477005204","name":"HipChat","slug":"hipchat","title":"Supercharge team collaboration with group chat and IM","verified":false,"imageUrl":"https://img.stackshare.io/service/144/R2NV13gL.png","canonicalUrl":"/hipchat","path":"/hipchat","votes":684,"fans":1205,"stacks":1265,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773839608773":{"id":"101231773839608773","name":"Sinatra","slug":"sinatra","title":"Classy web-development dressed in a DSL","verified":false,"imageUrl":"https://img.stackshare.io/service/999/logo.png","canonicalUrl":"/sinatra","path":"/sinatra","votes":212,"fans":696,"stacks":1014,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773522699243":{"id":"101231773522699243","name":"Amazon EBS","slug":"amazon-ebs","title":"Block level storage volumes for use with Amazon EC2 instances. ","verified":false,"imageUrl":"https://img.stackshare.io/service/231/amazon-ebs.png","canonicalUrl":"/amazon-ebs","path":"/amazon-ebs","votes":82,"fans":661,"stacks":667,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773825068049":{"id":"101231773825068049","name":"Packer","slug":"packer","title":"Create identical machine images for multiple platforms from a single source configuration","verified":true,"imageUrl":"https://img.stackshare.io/service/967/packer.png","canonicalUrl":"/packer","path":"/packer","votes":42,"fans":718,"stacks":582,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773813880952":{"id":"101231773813880952","name":"Mode","slug":"mode","title":"SQL-based analytics tool that helps analysts query, visualize, and share data.","verified":true,"imageUrl":"https://img.stackshare.io/service/933/YuFKY6Wz.png","canonicalUrl":"/mode","path":"/mode","votes":17,"fans":258,"stacks":124,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774321012818":{"id":"101231774321012818","name":"Marionette","slug":"marionettejs","title":"Backbone application code with robust views and architecture solutions","verified":false,"imageUrl":"https://img.stackshare.io/service/2196/c75f9cc16bc14fd22aa162d0db7beb4c.png","canonicalUrl":"/marionettejs","path":"/marionettejs","votes":80,"fans":168,"stacks":170,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773531380326":{"id":"101231773531380326","name":"Yammer","slug":"yammer","title":"Yammer is a Private Social Network for Your Company","verified":true,"imageUrl":"https://img.stackshare.io/service/246/J8G5k0df_400x400.png","canonicalUrl":"/yammer","path":"/yammer","votes":0,"fans":83,"stacks":75,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773636491087.featuredPosts({\"first\":8}).edges.7":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231780475882803","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"}}

Travis CI logo

Travis CI

A hosted continuous integration service for open source and private projects
26.4K
6.7K
+ 1
1.7K

What is Travis CI?

Free for open source projects, our CI environment provides multiple runtimes (e.g. Node.js or PHP versions), data stores and so on. Because of this, hosting your project on travis-ci.com means you can effortlessly test your library or applications against multiple runtimes and data stores without even having all of them installed locally.
Travis CI is a tool in the Continuous Integration category of a tech stack.

Who uses Travis CI?

Companies
1111 companies reportedly use Travis CI in their tech stacks, including Delivery Hero, Lyft, and Accenture.

Developers
7871 developers on StackShare have stated that they use Travis CI.

Travis CI Integrations

GitHub, MySQL, npm, Slack, and Amazon S3 are some of the popular tools that integrate with Travis CI. Here's a list of all 93 tools that integrate with Travis CI.
Pros of Travis CI
506
Github integration
388
Free for open source
271
Easy to get started
191
Nice interface
162
Automatic deployment
72
Tutorials for each programming language
40
Friendly folks
29
Support for multiple ruby versions
28
Osx support
24
Easy handling of secret keys
6
Fast builds
4
Support for students
3
The best tool for Open Source CI
3
Hosted
3
Build Matrices
2
Github Pull Request build
2
Straightforward Github/Coveralls integration
2
Easy of Usage
2
Integrates with everything
1
Caching resolved artifacts
1
Docker support
1
Great Documentation
1
Build matrix
1
No-brainer for CI
1
Debug build workflow
1
Ubuntu trusty is not supported
1
Free for students
1
Configuration saved with project repository
1
Multi-threaded run
1
Hipchat Integration
0
Perfect
Decisions about Travis CI

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

Needs advice
on
DartDartDjangoDjango
and
JavaScriptJavaScript

I am currently learning web development with Python and JavaScript course by CS50 Harvard university. It covers python, Flask, Django, SQL, Travis CI, javascript,HTML ,CSS and more. I am very interested in Flutter app development. Can I know what is the difference between learning these above-mentioned frameworks vs learning flutter directly? I am planning to learn flutter so that I can do both web development and app development. Are there any perks of learning these frameworks before flutter?

See more
Simon Bettison
Managing Director at Bettison.org Limited · | 8 upvotes · 827.1K views
Shared insights
at

In 2012 we made the very difficult decision to entirely re-engineer our existing monolithic LAMP application from the ground up in order to address some growing concerns about it's long term viability as a platform.

Full application re-write is almost always never the answer, because of the risks involved. However the situation warranted drastic action as it was clear that the existing product was going to face severe scaling issues. We felt it better address these sooner rather than later and also take the opportunity to improve the international architecture and also to refactor the database in. order that it better matched the changes in core functionality.

PostgreSQL was chosen for its reputation as being solid ACID compliant database backend, it was available as an offering AWS RDS service which reduced the management overhead of us having to configure it ourselves. In order to reduce read load on the primary database we implemented an Elasticsearch layer for fast and scalable search operations. Synchronisation of these indexes was to be achieved through the use of Sidekiq's Redis based background workers on Amazon ElastiCache. Again the AWS solution here looked to be an easy way to keep our involvement in managing this part of the platform at a minimum. Allowing us to focus on our core business.

Rails ls was chosen for its ability to quickly get core functionality up and running, its MVC architecture and also its focus on Test Driven Development using RSpec and Selenium with Travis CI providing continual integration. We also liked Ruby for its terse, clean and elegant syntax. Though YMMV on that one!

Unicorn was chosen for its continual deployment and reputation as a reliable application server, nginx for its reputation as a fast and stable reverse-proxy. We also took advantage of the Amazon CloudFront CDN here to further improve performance by caching static assets globally.

We tried to strike a balance between having control over management and configuration of our core application with the convenience of being able to leverage AWS hosted services for ancillary functions (Amazon SES , Amazon SQS Amazon Route 53 all hosted securely inside Amazon VPC of course!).

Whilst there is some compromise here with potential vendor lock in, the tasks being performed by these ancillary services are no particularly specialised which should mitigate this risk. Furthermore we have already containerised the stack in our development using Docker environment, and looking to how best to bring this into production - potentially using Amazon EC2 Container Service

See more
Praveen Mooli
Engineering Manager at Taylor and Francis · | 19 upvotes · 4M views

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more

Blog Posts

Travis CI's Features

  • Easy Setup- Getting started with Travis CI is as easy as enabling a project, adding basic build instructions to your project and committing code.
  • Supports Your Platform- Lots of databases and services are pre-installed and can simply be enabled in your build configuration, we'll launch them for you automatically. MySQL, PostgreSQL, ElasticSearch, Redis, Riak, RabbitMQ, Memcached are available by default.
  • Deploy With Confidence- Deploying to production after a successful build is as easy as setting up a bit of configuration, and we'll deploy your code to Heroku, Engine Yard Cloud, Nodejitsu, cloudControl, OpenShift, and CloudFoundry.

Travis CI Alternatives & Comparisons

What are some alternatives to Travis CI?
Jenkins
In a nutshell Jenkins CI is the leading open-source continuous integration server. Built with Java, it provides over 300 plugins to support building and testing virtually any project.
CircleCI
Continuous integration and delivery platform helps software teams rapidly release code with confidence by automating the build, test, and deploy process. Offers a modern software development platform that lets teams ramp.
GitLab CI
GitLab offers a continuous integration service. If you add a .gitlab-ci.yml file to the root directory of your repository, and configure your GitLab project to use a Runner, then each merge request or push triggers your CI pipeline.
GitLab
GitLab offers git repository management, code reviews, issue tracking, activity feeds and wikis. Enterprises install GitLab on-premise and connect it with LDAP and Active Directory servers for secure authentication and authorization. A single GitLab server can handle more than 25,000 users but it is also possible to create a high availability setup with multiple active servers.
Bamboo
Focus on coding and count on Bamboo as your CI and build server! Create multi-stage build plans, set up triggers to start builds upon commits, and assign agents to your critical builds and deployments.
See all alternatives

Travis CI's Followers
6668 developers follow Travis CI to keep up with related blogs and decisions.