Grunt and Webpack are both popular task runners and build systems commonly used in web development projects. While they serve similar purposes, there are key differences between the two.\n\n
1. Configuration Method: Grunt uses a configuration-based approach where developers need to define specific tasks and their configurations in a Gruntfile.js file. On the other hand, Webpack uses a JavaScript-based configuration approach, allowing developers to define their build process directly in a webpack.config.js file using a powerful and flexible API.\n\n
2. Module Bundling: Webpack excels in module bundling and dependency management, allowing developers to bundle not only JavaScript files but also other assets like CSS, images, and fonts, providing a more comprehensive build system. Grunt, on the other hand, focuses more on task automation and requires additional plugins or custom configurations to handle module bundling.\n\n
3. Hot Module Replacement: Webpack has built-in support for hot module replacement (HMR), a feature that allows for live reloading and updating of modules without a full page refresh. This can greatly enhance the development experience by enabling real-time updates. Grunt, on the other hand, lacks native support for HMR and requires additional configuration or plugins to achieve a similar functionality.\n\n
4. Code Splitting: Webpack offers powerful code splitting capabilities, allowing developers to split their code into multiple chunks to optimize load times by loading only the required code for a specific page or feature. Grunt, on the other hand, does not provide built-in code splitting capabilities and requires additional configurations or plugins to achieve similar optimization.\n\n
5. Development vs Production Environments: Webpack provides a built-in mechanism for differentiating between development and production environments, allowing developers to apply specific optimizations and configurations based on the current environment. Grunt, on the other hand, does not have this built-in functionality and requires additional configuration or tasks to differentiate between different environments.\n\n
6. Ecosystem and Community: Both Grunt and Webpack have vibrant ecosystems and active communities, but they have different focuses. Grunt has been around for longer and has a larger number of plugins available, making it easier to find solutions for various tasks. Webpack, on the other hand, has gained strong momentum in recent years, particularly in the JavaScript community, and is widely used in modern web development, especially for complex applications with advanced requirements.\n\n
In summary, Grunt and Webpack have significant differences in their configuration methods, module bundling capabilities, support for hot module replacement and code splitting, handling of development vs production environments, and the size and focus of their ecosystems and communities.\n","content2":"","topContent":"","bottomContent":"","packageStackup":false,"screenshotImageUrl":"https://img.stackshare.io/stackup/513781/grunt-vs-webpack.png","function":"JS Build Tools / JS Task Runners","path":"/stackups/grunt-vs-webpack","title":"Grunt vs Webpack","seoUpdatedAt":null,"cachedStackDecisionsGetAdvice":{"type":"json","json":{"count":0,"edges":[],"pageInfo":{"endCursor":null,"__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"}},"privateStackDecisionsGetAdvice({\"first\":3})":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).privateStackDecisionsGetAdvice({\"first\":3})","typename":"StackDecisionConnection"},"cachedStackDecisions":{"type":"json","json":{"count":4,"edges":[{"node":{"id":"106057495029414693","user":{"id":"105046883729833694","title":null,"imageUrl":"https://img.stackshare.io/user/766172/default_4745a72711ad547ea7b69390c4b4d9076f6475cb.png","thumbUrl":"https://img.stackshare.io/user/766172/thumb_4745a72711ad547ea7b69390c4b4d9076f6475cb.png","username":"Karbust","__typename":"User","companyName":"","displayName":"António Silva"},"stack":{"id":"106057458673593670","name":"M2IconDB","path":"/Karbust/m2icondb","owner":{"id":"105046883729833694","imageUrl":"https://img.stackshare.io/user/766172/default_4745a72711ad547ea7b69390c4b4d9076f6475cb.png","username":"Karbust","__typename":"User"},"private":false,"imageUrl":"https://img.stackshare.io/user/766172/4745a72711ad547ea7b69390c4b4d9076f6475cb.png","__typename":"Stack","identifier":"Karbust/m2icondb"},"topics":[],"company":null,"private":false,"toTools":[{"id":"101231773775509982","fans":11818,"name":"gulp","path":"/gulp","slug":"gulp","title":"The streaming build system","votes":1691,"stacks":14176,"imageUrl":"https://img.stackshare.io/service/844/iruTC031.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/gulp","followContext":null}],"publicId":"106057495029414693","services":[],"fromTools":[{"id":"101231773775953805","fans":7351,"name":"Grunt","path":"/grunt","slug":"grunt","title":"The JavaScript Task Runner","votes":697,"stacks":8309,"imageUrl":"https://img.stackshare.io/service/845/falgg2jybmhgk16y62lr.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/grunt","followContext":null}],"viewCount":37162,"__typename":"StackDecision","htmlContent":"
Very simple to use and a great way to optimize repetitive tasks, like optimize PNG images, convert to WebP, create sprite images with CSS.\n\n
I didn't choose Grunt because of the fact it uses files and Gulp uses memory, making it faster for my use case since I need to work with 3000+ small images. And the fact Gulp has 32k+ stars on GitHub.","publishedAt":"2021-04-13T10:15:44Z","decisionType":"tool","subjectTools":[{"id":"101231773775509982","fans":11818,"name":"gulp","path":"/gulp","slug":"gulp","title":"The streaming build system","votes":1691,"stacks":14176,"imageUrl":"https://img.stackshare.io/service/844/iruTC031.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/gulp","followContext":null},{"id":"101231773775953805","fans":7351,"name":"Grunt","path":"/grunt","slug":"grunt","title":"The JavaScript Task Runner","votes":697,"stacks":8309,"imageUrl":"https://img.stackshare.io/service/845/falgg2jybmhgk16y62lr.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/grunt","followContext":null}],"upvotesCount":4},"__typename":"StackDecisionEdge"},{"node":{"id":"105893097270857669","user":{"id":"103720437807622173","title":"Tech Lead","imageUrl":"https://img.stackshare.io/user/405001/default_619d8869dbe2ec3cea24b5a93fb9a1f8779e0ad3.png","thumbUrl":"https://img.stackshare.io/user/405001/thumb_619d8869dbe2ec3cea24b5a93fb9a1f8779e0ad3.png","username":"robmurphy8520","__typename":"User","companyName":"WeGift","displayName":"Rob Murphy"},"stack":{"id":"102286077218112338","name":"Runa","path":"/runa/runa","owner":{"id":"102286105110619280","name":"Runa","slug":"runa","imageUrl":"https://img.stackshare.io/company/33939/default_3a0e60efb1d2d571b0652f449a5b79709c27d933.jpg","__typename":"Company"},"private":false,"imageUrl":"https://img.stackshare.io/stack/373385/default_3a0e60efb1d2d571b0652f449a5b79709c27d933.jpg","__typename":"Stack","identifier":"runa/runa"},"topics":[],"company":{"name":"Runa","path":"/companies/runa","features":[],"imageUrl":"https://img.stackshare.io/company/33939/default_3a0e60efb1d2d571b0652f449a5b79709c27d933.jpg","thumbUrl":"https://img.stackshare.io/company/33939/thumb_3a0e60efb1d2d571b0652f449a5b79709c27d933.jpg","__typename":"Company"},"private":false,"toTools":[{"id":"105210142539751462","fans":994,"name":"Vite","path":"/vite","slug":"vite","title":"Native-ESM powered web dev build tool","votes":13,"stacks":1403,"imageUrl":"https://img.stackshare.io/service/21547/default_1aeac791cde11ff66cc0b20dcc6144eeb185c905.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/vite","followContext":null}],"publicId":"105893097270857669","services":[],"fromTools":[{"id":"101231774125163302","fans":33879,"name":"Webpack","path":"/webpack","slug":"webpack","title":"A bundler for javascript and friends","votes":752,"stacks":40618,"imageUrl":"https://img.stackshare.io/service/1682/IMG_4636.PNG","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/webpack","followContext":null}],"viewCount":54175,"__typename":"StackDecision","htmlContent":"
The developer experience Webpack gave us was not delighting anyone. It works and is stable and consistent. It is also slow and frustrating. We decided to check out Vite as an alternative when moving to Vue 3 and have been amazed. It is very early in development and there are plenty of rough edges, but it has been a breath of fresh air not waiting for anything to update. It is so fast we have found ourselves using devtools in browser less because changing styles is just as fast in code. We felt confident using the tool because although it is early in its development, the production build is still provided by Rollup which is a mature tool. We also felt optimistic that as good as it is right now, it will only continue to get better, as it is being worked on very actively. So far we are really happy with the choice.","publishedAt":"2021-03-15T09:27:14Z","decisionType":"tool","subjectTools":[{"id":"105210142539751462","fans":994,"name":"Vite","path":"/vite","slug":"vite","title":"Native-ESM powered web dev build tool","votes":13,"stacks":1403,"imageUrl":"https://img.stackshare.io/service/21547/default_1aeac791cde11ff66cc0b20dcc6144eeb185c905.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/vite","followContext":null},{"id":"101231774125163302","fans":33879,"name":"Webpack","path":"/webpack","slug":"webpack","title":"A bundler for javascript and friends","votes":752,"stacks":40618,"imageUrl":"https://img.stackshare.io/service/1682/IMG_4636.PNG","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/webpack","followContext":null}],"upvotesCount":4},"__typename":"StackDecisionEdge"},{"node":{"id":"103358719401282870","user":{"id":"101232104440280592","title":"Contract Software Engineer - Microsoft","imageUrl":"https://img.stackshare.io/user/221210/default_6e616de7667425b80aed18d31d3dd7efb495da45.png","thumbUrl":"https://img.stackshare.io/user/221210/thumb_6e616de7667425b80aed18d31d3dd7efb495da45.png","username":"greybax","__typename":"User","companyName":"","displayName":"Aleksandr Filatov"},"stack":{"id":"101734466221696119","name":"My Stack","path":"/greybax/my-stack","owner":{"id":"101232104440280592","imageUrl":"https://img.stackshare.io/user/221210/default_6e616de7667425b80aed18d31d3dd7efb495da45.png","username":"greybax","__typename":"User"},"private":false,"imageUrl":"https://img.stackshare.io/stack/361610/default_9edac60d1f881c2d6940388ab6e53c7919b04869.png","__typename":"Stack","identifier":"greybax/my-stack"},"topics":[],"company":{"name":"Microsoft-365","path":"/companies/microsoft-365","features":[],"imageUrl":"https://img.stackshare.io/company/220/default_70522123685141ec1589c4b83956434d0c07e03d.jpg","thumbUrl":"https://img.stackshare.io/company/220/thumb_70522123685141ec1589c4b83956434d0c07e03d.jpg","__typename":"Company"},"private":false,"toTools":[{"id":"101231773895058604","fans":95507,"name":"npm","path":"/npm","slug":"npm","title":"The package manager for JavaScript.","votes":1634,"stacks":124364,"imageUrl":"https://img.stackshare.io/service/1120/lejvzrnlpb308aftn31u.png","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/npm","followContext":null},{"id":"101231774125163302","fans":33879,"name":"Webpack","path":"/webpack","slug":"webpack","title":"A bundler for javascript and friends","votes":752,"stacks":40618,"imageUrl":"https://img.stackshare.io/service/1682/IMG_4636.PNG","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/webpack","followContext":null}],"publicId":"103358719401282870","services":[],"fromTools":[{"id":"101231774636896063","fans":80,"name":"JSPM","path":"/jspm","slug":"jspm","title":"Frictionless browser package management","votes":0,"stacks":90,"imageUrl":"https://img.stackshare.io/service/2869/SD4SNJm8_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/jspm","followContext":null},{"id":"101231776724910347","fans":20,"name":"System.js","path":"/system-js","slug":"system-js","title":"Dynamic ES module loader","votes":2,"stacks":25,"imageUrl":"https://img.stackshare.io/service/6561/New_Project1.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/system-js","followContext":null}],"viewCount":291939,"__typename":"StackDecision","htmlContent":"Why migrated?\n\n
I could define the next points why we have to migrate:\n\n
\n
Decrease build time of our application. (It was the main cause).\n
Also jspm install takes much more time than npm install.\n
Many config files for SystemJS and JSPM. For Webpack you can use just one main config file, and you can use some separate config files for specific builds using inheritance and merge them.\n","publishedAt":"2019-12-23T19:21:37Z","decisionType":"migration","subjectTools":[{"id":"101231773895058604","fans":95507,"name":"npm","path":"/npm","slug":"npm","title":"The package manager for JavaScript.","votes":1634,"stacks":124364,"imageUrl":"https://img.stackshare.io/service/1120/lejvzrnlpb308aftn31u.png","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/npm","followContext":null},{"id":"101231774125163302","fans":33879,"name":"Webpack","path":"/webpack","slug":"webpack","title":"A bundler for javascript and friends","votes":752,"stacks":40618,"imageUrl":"https://img.stackshare.io/service/1682/IMG_4636.PNG","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/webpack","followContext":null},{"id":"101231774636896063","fans":80,"name":"JSPM","path":"/jspm","slug":"jspm","title":"Frictionless browser package management","votes":0,"stacks":90,"imageUrl":"https://img.stackshare.io/service/2869/SD4SNJm8_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/jspm","followContext":null},{"id":"101231776724910347","fans":20,"name":"System.js","path":"/system-js","slug":"system-js","title":"Dynamic ES module loader","votes":2,"stacks":25,"imageUrl":"https://img.stackshare.io/service/6561/New_Project1.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/system-js","followContext":null}],"upvotesCount":4},"__typename":"StackDecisionEdge"},{"node":{"id":"103281735594316984","user":{"id":"103241000390232585","title":"","imageUrl":"https://img.stackshare.io/user/322117/default_94e7f322e1c55a2c6933e225655f72e154034888.png","thumbUrl":"https://img.stackshare.io/user/322117/thumb_94e7f322e1c55a2c6933e225655f72e154034888.png","username":"awatson1978","__typename":"User","companyName":"","displayName":"Abigail Watson"},"stack":{"id":"103281040246256187","name":"node-on-fhir","path":"/symptomatic-llc/node-on-fhir","owner":{"id":"103281033486168711","name":"Symptomatic, LLC","slug":"symptomatic-llc","imageUrl":"https://img.stackshare.io/company/159998/default_fd82ab62f0da36f082f88c5f5b3274f5d0e83901.png","__typename":"Company"},"private":false,"imageUrl":"https://img.stackshare.io/stack/520113/default_8fc8fcd618e28b4497809bd37465a37b0f2efc45.png","__typename":"Stack","identifier":"symptomatic-llc/node-on-fhir"},"topics":[],"company":{"name":"Symptomatic, LLC","path":"/companies/symptomatic-llc","features":[],"imageUrl":"https://img.stackshare.io/company/159998/default_fd82ab62f0da36f082f88c5f5b3274f5d0e83901.png","thumbUrl":"https://img.stackshare.io/company/159998/thumb_fd82ab62f0da36f082f88c5f5b3274f5d0e83901.png","__typename":"Company"},"private":false,"toTools":[{"id":"101231775542534809","fans":587,"name":"rollup","path":"/rollup","slug":"rollup","title":"The next-generation JavaScript module bundler","votes":17,"stacks":1769,"imageUrl":"https://img.stackshare.io/service/4423/zE8RTn9E_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rollup","followContext":null}],"publicId":"103281735594316984","services":[],"fromTools":[{"id":"101231773922892888","fans":24,"name":"Atmosphere","path":"/atmosphere","slug":"atmosphere","title":"Realtime Client Server Framework for the JVM, supporting WebSockets and Cross-Browser Fallbacks Support","votes":10,"stacks":10,"imageUrl":"https://img.stackshare.io/service/1168/2bc3349377c932d375a80095dd63fc31.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/atmosphere","followContext":null},{"id":"101231774125163302","fans":33879,"name":"Webpack","path":"/webpack","slug":"webpack","title":"A bundler for javascript and friends","votes":752,"stacks":40618,"imageUrl":"https://img.stackshare.io/service/1682/IMG_4636.PNG","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/webpack","followContext":null}],"viewCount":216821,"__typename":"StackDecision","htmlContent":"
We mostly use rollup to publish package onto NPM. For most all other use cases, we use the Meteor build tool (probably 99% of the time) for publishing packages. If you're using Node on FHIR you probably won't need to know rollup, unless you are somehow working on helping us publish front end user interface components using FHIR. That being said, we have been migrating away from Atmosphere package manager towards NPM. As we continue to migrate away, we may publish other NPM packages using rollup. ","publishedAt":"2019-12-10T05:03:37Z","decisionType":"tool","subjectTools":[{"id":"101231775542534809","fans":587,"name":"rollup","path":"/rollup","slug":"rollup","title":"The next-generation JavaScript module bundler","votes":17,"stacks":1769,"imageUrl":"https://img.stackshare.io/service/4423/zE8RTn9E_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rollup","followContext":null},{"id":"101231773922892888","fans":24,"name":"Atmosphere","path":"/atmosphere","slug":"atmosphere","title":"Realtime Client Server Framework for the JVM, supporting WebSockets and Cross-Browser Fallbacks Support","votes":10,"stacks":10,"imageUrl":"https://img.stackshare.io/service/1168/2bc3349377c932d375a80095dd63fc31.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/atmosphere","followContext":null},{"id":"101231774125163302","fans":33879,"name":"Webpack","path":"/webpack","slug":"webpack","title":"A bundler for javascript and friends","votes":752,"stacks":40618,"imageUrl":"https://img.stackshare.io/service/1682/IMG_4636.PNG","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/webpack","followContext":null}],"upvotesCount":2},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"NA","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"}},"privateStackDecisions({\"first\":5})":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).privateStackDecisions({\"first\":5})","typename":"StackDecisionConnection"},"cachedFooterRelatedStackups":{"type":"json","json":[{"path":"/stackups/grunt-vs-gulp","title":"Grunt vs gulp","__typename":"Stackup"},{"path":"/stackups/webpack-vs-yeoman","title":"Webpack vs Yeoman","__typename":"Stackup"},{"path":"/stackups/brunch-vs-webpack","title":"Brunch vs Webpack","__typename":"Stackup"},{"path":"/stackups/backpack-vs-webpack","title":"Backpack vs Webpack","__typename":"Stackup"},{"path":"/stackups/gulp-vs-parcel-vs-webpack","title":"Parcel vs Webpack vs gulp","__typename":"Stackup"}]},"footerTopStackups":[{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTopStackups.0","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTopStackups.1","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTopStackups.2","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTopStackups.3","typename":"Stackup"}],"footerTrendingStackups":[{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.0","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.1","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.2","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.3","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.4","typename":"Stackup"}],"__typename":"Stackup","featuredPosts({\"first\":8})":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8})","typename":"FeaturedPostConnection"},"jobs({\"first\":8})":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).jobs({\"first\":8})","typename":"JobConnection"}},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).jobs":{"count":3,"__typename":"JobConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts":{"count":8,"__typename":"FeaturedPostConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).privateStackDecisionsGetAdvice({\"first\":3})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).privateStackDecisionsGetAdvice({\"first\":3}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).privateStackDecisionsGetAdvice({\"first\":3}).pageInfo":{"endCursor":null,"hasNextPage":false,"__typename":"PageInfo"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).privateStackDecisions({\"first\":5})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).privateStackDecisions({\"first\":5}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).privateStackDecisions({\"first\":5}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTopStackups.0":{"title":"HipChat vs Mattermost vs Slack","path":"/stackups/hipchat-vs-mattermost-vs-slack","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTopStackups.1":{"title":"Bitbucket vs GitHub vs GitLab","path":"/stackups/bitbucket-vs-github-vs-gitlab","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTopStackups.2":{"title":"Postman vs Swagger UI","path":"/stackups/postman-vs-swagger-ui","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTopStackups.3":{"title":"Bootstrap vs Materialize","path":"/stackups/bootstrap-vs-materialize","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.0":{"title":"Django vs Laravel vs Node.js","path":"/stackups/django-vs-laravel-vs-nodejs","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.1":{"title":"Bootstrap vs Foundation vs Material-UI","path":"/stackups/bootstrap-vs-foundation-vs-material-ui","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.2":{"title":"Node.js vs Spring Boot","path":"/stackups/nodejs-vs-spring-boot","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.3":{"title":"Flyway vs Liquibase","path":"/stackups/flyway-vs-liquibase","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).footerTrendingStackups.4":{"title":"AWS CodeCommit vs Bitbucket vs GitHub","path":"/stackups/aws-codecommit-vs-bitbucket-vs-github","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8})":{"count":8,"pageInfo":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).pageInfo","typename":"PageInfo"},"edges":[{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.0","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.1","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.2","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.3","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.4","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.5","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.6","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.7","typename":"FeaturedPostEdge"}],"__typename":"FeaturedPostConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).pageInfo":{"hasNextPage":false,"endCursor":"OA","__typename":"PageInfo"},"FeaturedPost:101231808365995189":{"id":"101231808365995189","views":37106,"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: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,"following":false,"followContext":null,"__typename":"Tool"},"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":283476,"stacks":285730,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773837179153":{"id":"101231773837179153","name":"Python","slug":"python","title":"A clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.","verified":false,"imageUrl":"https://img.stackshare.io/service/993/pUBY5pVj.png","canonicalUrl":"/python","path":"/python","votes":6882,"fans":226610,"stacks":244785,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773669807419":{"id":"101231773669807419","name":"Docker","slug":"docker","title":"Enterprise Container Platform for High-Velocity Innovation.","verified":true,"imageUrl":"https://img.stackshare.io/service/586/n4u37v9t_400x400.png","canonicalUrl":"/docker","path":"/docker","votes":3857,"fans":160811,"stacks":174370,"following":false,"followContext":null,"__typename":"Tool"},"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:101231773705712932":{"id":"101231773705712932","name":"Slack","slug":"slack","title":"Bring all your communication together in one place","verified":false,"imageUrl":"https://img.stackshare.io/service/675/RNiSRYOF_400x400.jpg","canonicalUrl":"/slack","path":"/slack","votes":6023,"fans":113619,"stacks":119538,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773853533403":{"id":"101231773853533403","name":"PostgreSQL","slug":"postgresql","title":"A powerful, open source object-relational database system","verified":false,"imageUrl":"https://img.stackshare.io/service/1028/ASOhU5xJ.png","canonicalUrl":"/postgresql","path":"/postgresql","votes":3549,"fans":95439,"stacks":98219,"following":false,"followContext":null,"__typename":"Tool"},"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":59821,"stacks":127241,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773861864225":{"id":"101231773861864225","name":"NGINX","slug":"nginx","title":"A high performance free open source web server powering busiest sites on the Internet.","verified":true,"imageUrl":"https://img.stackshare.io/service/1052/YMxUfyWf.png","canonicalUrl":"/nginx","path":"/nginx","votes":5498,"fans":73391,"stacks":113355,"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":70487,"stacks":71441,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773854768982":{"id":"101231773854768982","name":"Redis","slug":"redis","title":"Open source (BSD licensed), in-memory data structure store","verified":false,"imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","canonicalUrl":"/redis","path":"/redis","votes":3943,"fans":54900,"stacks":59420,"following":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":39450,"stacks":37650,"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":22411,"stacks":21323,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773636491087":{"id":"101231773636491087","name":"Travis CI","slug":"travis-ci","title":"A hosted continuous integration service for open source and private projects","verified":true,"imageUrl":"https://img.stackshare.io/service/460/Lu6cGu0z_400x400.png","canonicalUrl":"/travis-ci","path":"/travis-ci","votes":1749,"fans":9386,"stacks":26378,"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":15564,"stacks":18839,"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":12097,"stacks":14422,"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":11568,"stacks":12203,"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":9934,"stacks":9391,"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":7522,"stacks":10626,"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":5808,"stacks":5838,"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":1840,"stacks":1915,"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: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: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"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.0":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231808365995189","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231806418971264":{"id":"101231806418971264","views":32726,"title":"How Uploadcare Built a Stack That Handles 350M File API Requests Per Day","imageUrl":"https://img.stackshare.io/stack/210138/default_390c70dea99718084250ef55824f73794d561bd1.png","publishedAt":"2017-07-28T07:41:42Z","canonicalUrl":"/uploadcare/how-uploadcare-built-a-stack-that-handles-350m-file-api-requests-per-day","previewImageUrl":"https://img.stackshare.io/stack/210138/uploadcare_preview.gif","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231806418971264.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: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: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:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837565192","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775357043443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773531895266","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773840406851","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773403188549","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773450178959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774492574471","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773620969295","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703014119","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773541427411","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774913496026","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773398855818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456195039","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774105508825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773871944512","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774904399748","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773777695089","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773590628959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775542534809","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773627798007","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773997873230","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773402794654","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773840775583","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774397484242","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773430911322","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773545754049","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773544890869","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775625982020","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776874624909","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775549126558","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774047396627","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774108324861","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776752638828","typename":"Tool"}],"favoriteStacksCount":27,"__typename":"FeaturedPost"},"$FeaturedPost:101231806418971264.company":{"name":"Uploadcare","__typename":"Company"},"Tool:101231773845103618":{"id":"101231773845103618","name":"Node.js","slug":"nodejs","title":"A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications","verified":false,"imageUrl":"https://img.stackshare.io/service/1011/n1JRsFeB_400x400.png","canonicalUrl":"/nodejs","path":"/nodejs","votes":8537,"fans":182807,"stacks":188580,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773409399220":{"id":"101231773409399220","name":"Amazon S3","slug":"amazon-s3","title":"Store and retrieve any amount of data, at any time, from anywhere on the web","verified":false,"imageUrl":"https://img.stackshare.io/service/25/amazon-s3.png","canonicalUrl":"/amazon-s3","path":"/amazon-s3","votes":2041,"fans":47892,"stacks":53207,"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":43248,"stacks":48231,"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":41183,"stacks":43077,"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:101231773531895266":{"id":"101231773531895266","name":"G Suite","slug":"g-suite","title":"Collaboration and productivity apps for Business","verified":false,"imageUrl":"https://img.stackshare.io/service/247/oYkAxyQM_400x400.jpg","canonicalUrl":"/g-suite","path":"/g-suite","votes":2474,"fans":19400,"stacks":31509,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773840406851":{"id":"101231773840406851","name":"Flask","slug":"flask","title":"A microframework for Python based on Werkzeug, Jinja 2 and good intentions","verified":false,"imageUrl":"https://img.stackshare.io/service/1001/default_6d109315b60108628b7cd3e159b84645c31ef0e2.png","canonicalUrl":"/flask","path":"/flask","votes":66,"fans":19611,"stacks":19010,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773403188549":{"id":"101231773403188549","name":"Amazon CloudFront","slug":"amazon-cloudfront","title":"Content delivery with low latency and high data transfer speeds","verified":false,"imageUrl":"https://img.stackshare.io/service/13/amazon-cloudfront.png","canonicalUrl":"/amazon-cloudfront","path":"/amazon-cloudfront","votes":935,"fans":13589,"stacks":21280,"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":11239,"stacks":12602,"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":10486,"stacks":11575,"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":6729,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773615579247":{"id":"101231773615579247","name":"Amazon DynamoDB","slug":"amazon-dynamodb","title":"Fully managed NoSQL database service","verified":false,"imageUrl":"https://img.stackshare.io/service/389/amazon-dynamodb.png","canonicalUrl":"/amazon-dynamodb","path":"/amazon-dynamodb","votes":195,"fans":4020,"stacks":3708,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774913496026":{"id":"101231774913496026","name":"React Router","slug":"react-router","title":"A complete routing solution for React.js","verified":false,"imageUrl":"https://img.stackshare.io/service/3350/8261421.png","canonicalUrl":"/react-router","path":"/react-router","votes":14,"fans":2032,"stacks":3422,"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:101231773456195039":{"id":"101231773456195039","name":"Pingdom","slug":"pingdom","title":"Uptime and performance monitoring made easy","verified":false,"imageUrl":"https://img.stackshare.io/service/106/usvDLKsY_400x400.png","canonicalUrl":"/pingdom","path":"/pingdom","votes":579,"fans":1862,"stacks":2431,"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:101231774904399748":{"id":"101231774904399748","name":"PostCSS","slug":"postcss","title":"Transform CSS with JS plugins","verified":false,"imageUrl":"https://img.stackshare.io/service/3339/rlFcjEdI.png","canonicalUrl":"/postcss","path":"/postcss","votes":49,"fans":1135,"stacks":1629,"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:101231773590628959":{"id":"101231773590628959","name":"Rollbar","slug":"rollbar","title":"Proactively discover, predict, and remediate errors.","verified":true,"imageUrl":"https://img.stackshare.io/service/328/default_3147629185038a15dd41907749544023633da1ea.png","canonicalUrl":"/rollbar","path":"/rollbar","votes":531,"fans":1361,"stacks":1587,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775542534809":{"id":"101231775542534809","name":"rollup","slug":"rollup","title":"The next-generation JavaScript module bundler","verified":false,"imageUrl":"https://img.stackshare.io/service/4423/zE8RTn9E_400x400.jpg","canonicalUrl":"/rollup","path":"/rollup","votes":17,"fans":587,"stacks":1769,"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:101231773997873230":{"id":"101231773997873230","name":"TeamCity","slug":"teamcity","title":"TeamCity is an ultimate Continuous Integration tool for professionals","verified":true,"imageUrl":"https://img.stackshare.io/service/1357/317jQkeS.png","canonicalUrl":"/teamcity","path":"/teamcity","votes":316,"fans":1360,"stacks":1104,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773402794654":{"id":"101231773402794654","name":"Akamai","slug":"akamai","title":"The leading platform for cloud, mobile, media and security across any device, anywhere.","verified":false,"imageUrl":"https://img.stackshare.io/service/12/default_05272bd47547a7580e6086fe0d4d1c7f6626b349.png","canonicalUrl":"/akamai","path":"/akamai","votes":0,"fans":510,"stacks":1915,"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:101231774397484242":{"id":"101231774397484242","name":"Pillow","slug":"pillow","title":"Python Imaging Library","verified":false,"imageUrl":"https://img.stackshare.io/service/2375/default_1f67b0ca7416a9f52beb655f90b5602d5ef74b75.jpg","canonicalUrl":"/pillow","path":"/pillow","votes":0,"fans":196,"stacks":534,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773430911322":{"id":"101231773430911322","name":"KISSmetrics","slug":"kissmetrics","title":"Get actionable metrics for your business.","verified":false,"imageUrl":"https://img.stackshare.io/service/59/DtU2FDKR_400x400.jpg","canonicalUrl":"/kissmetrics","path":"/kissmetrics","votes":70,"fans":234,"stacks":515,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773545754049":{"id":"101231773545754049","name":"Help Scout","slug":"help-scout","title":"A help desk for teams that insist on a delightful customer experience","verified":true,"imageUrl":"https://img.stackshare.io/service/267/default_251e3f50802b29c4b3ecded4242f401a81eb17d5.png","canonicalUrl":"/help-scout","path":"/help-scout","votes":60,"fans":154,"stacks":345,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773544890869":{"id":"101231773544890869","name":"Keen","slug":"keen","title":"Keen is the platform that gives you powerful in-product analytics fast with minimal development time.","verified":true,"imageUrl":"https://img.stackshare.io/service/265/Keen-IO-Logo-no-text-transparent-1.png","canonicalUrl":"/keen","path":"/keen","votes":268,"fans":229,"stacks":229,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775625982020":{"id":"101231775625982020","name":"asyncio","slug":"asyncio","title":"Asynchronous I/O, event loop, coroutines and tasks","verified":false,"imageUrl":"https://img.stackshare.io/service/4569/0_cOqooDOsnb8jDm2G.png","canonicalUrl":"/asyncio","path":"/asyncio","votes":13,"fans":200,"stacks":114,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776874624909":{"id":"101231776874624909","name":"AIOHTTP","slug":"aiohttp","title":"Asynchronous HTTP Client/Server for asyncio and Python","verified":false,"imageUrl":"https://img.stackshare.io/service/6835/aiohttp-icon-128x128.png","canonicalUrl":"/aiohttp","path":"/aiohttp","votes":0,"fans":192,"stacks":123,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775549126558":{"id":"101231775549126558","name":"LogDNA","slug":"logdna","title":"Easy beautiful logging in the cloud","verified":true,"imageUrl":"https://img.stackshare.io/service/4436/LogDNA_-_Logo.png","canonicalUrl":"/logdna","path":"/logdna","votes":18,"fans":167,"stacks":101,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774047396627":{"id":"101231774047396627","name":"Uploadcare","slug":"uploadcare","title":"File uploads, media processing, and adaptive delivery for web and mobile","verified":true,"imageUrl":"https://img.stackshare.io/service/1479/circle-transparent-2.png","canonicalUrl":"/uploadcare","path":"/uploadcare","votes":27,"fans":151,"stacks":73,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774108324861":{"id":"101231774108324861","name":"Nunjucks","slug":"nunjucks","title":"A templating language for JavaScript","verified":false,"imageUrl":"https://img.stackshare.io/service/1637/Microsoft.VisualStudio.Services.Icons.Default","canonicalUrl":"/nunjucks","path":"/nunjucks","votes":6,"fans":132,"stacks":80,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776752638828":{"id":"101231776752638828","name":"cssnano","slug":"cssnano","title":"A modular minifier, based on the PostCSS ecosystem. Created by @ben_eb.","verified":false,"imageUrl":"https://img.stackshare.io/service/6612/ehMiE-wz_normal.jpg","canonicalUrl":"/cssnano","path":"/cssnano","votes":0,"fans":148,"stacks":382,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.1":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231806418971264","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231801963896829":{"id":"101231801963896829","views":31752,"title":"The Stack That Helped Opendoor Buy and Sell Over $1B in Homes","imageUrl":"https://img.stackshare.io/stack/52692/oqhbiHUU.jpg","publishedAt":"2017-03-09T08:02:19Z","canonicalUrl":"/opendoor/the-stack-that-helped-opendoor-buy-and-sell-over-$1b-in-homes","previewImageUrl":"https://img.stackshare.io/stack/52692/opendoor_preview.jpg","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231801963896829.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773848354670","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773885548898","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835511567","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774544144572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773840406851","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835996572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773454477801","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501596063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773469116775","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773431684432","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774237595825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774314369014","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773713150436","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773873140185","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773417615081","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773863068091","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773692729304","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632985587","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774204689068","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773670764039","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773441530720","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774463222644","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773551961673","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773545754049","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773995151871","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774861987902","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773767894174","typename":"Tool"}],"favoriteStacksCount":22,"__typename":"FeaturedPost"},"$FeaturedPost:101231801963896829.company":{"name":"Opendoor","__typename":"Company"},"Tool:101231774206661614":{"id":"101231774206661614","name":"Kubernetes","slug":"kubernetes","title":"Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops","verified":false,"imageUrl":"https://img.stackshare.io/service/1885/21_d3cvM.png","canonicalUrl":"/kubernetes","path":"/kubernetes","votes":681,"fans":60232,"stacks":59838,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773848354670":{"id":"101231773848354670","name":"AngularJS","slug":"angularjs","title":"Superheroic JavaScript MVW Framework","verified":false,"imageUrl":"https://img.stackshare.io/service/1019/square.png","canonicalUrl":"/angularjs","path":"/angularjs","votes":5283,"fans":55513,"stacks":60967,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773885548898":{"id":"101231773885548898","name":"Bootstrap","slug":"bootstrap","title":"Simple and flexible HTML, CSS, and JS for popular UI components and interactions","verified":false,"imageUrl":"https://img.stackshare.io/service/1101/C9QJ7V3X.png","canonicalUrl":"/bootstrap","path":"/bootstrap","votes":7654,"fans":16794,"stacks":55480,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773835511567":{"id":"101231773835511567","name":"Ruby","slug":"ruby","title":"A dynamic, interpreted, open source programming language with a focus on simplicity and productivity","verified":false,"imageUrl":"https://img.stackshare.io/service/989/ruby.png","canonicalUrl":"/ruby","path":"/ruby","votes":3973,"fans":26474,"stacks":41809,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773774313645":{"id":"101231773774313645","name":"Elasticsearch","slug":"elasticsearch","title":"Open Source, Distributed, RESTful Search Engine","verified":true,"imageUrl":"https://img.stackshare.io/service/841/Image_2019-05-20_at_4.58.04_PM.png","canonicalUrl":"/elasticsearch","path":"/elasticsearch","votes":1648,"fans":32677,"stacks":34513,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774544144572":{"id":"101231774544144572","name":"React Native","slug":"react-native","title":"A framework for building native apps with React","verified":false,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","canonicalUrl":"/react-native","path":"/react-native","votes":1153,"fans":34377,"stacks":33561,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773470689784":{"id":"101231773470689784","name":"Heroku","slug":"heroku","title":"Build, deliver, monitor and scale web apps and APIs with a trail blazing developer experience.","verified":true,"imageUrl":"https://img.stackshare.io/service/133/3wgIDj3j.png","canonicalUrl":"/heroku","path":"/heroku","votes":3208,"fans":25159,"stacks":25522,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773835996572":{"id":"101231773835996572","name":"Rails","slug":"rails","title":"Web development that doesn't hurt","verified":false,"imageUrl":"https://img.stackshare.io/service/990/x57_Lorv.png","canonicalUrl":"/rails","path":"/rails","votes":5441,"fans":16790,"stacks":19462,"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":10974,"stacks":20817,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773501041914":{"id":"101231773501041914","name":"CircleCI","slug":"circleci","title":"Automate your development process quickly, safely, and at scale","verified":true,"imageUrl":"https://img.stackshare.io/service/190/CvqrSSFs_400x400.jpg","canonicalUrl":"/circleci","path":"/circleci","votes":974,"fans":9478,"stacks":12826,"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":10932,"stacks":11269,"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:101231774237595825":{"id":"101231774237595825","name":"Elixir","slug":"elixir","title":"Dynamic, functional language designed for building scalable and maintainable applications","verified":false,"imageUrl":"https://img.stackshare.io/service/1974/drop.png","canonicalUrl":"/elixir","path":"/elixir","votes":1325,"fans":3849,"stacks":3410,"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:101231773873140185":{"id":"101231773873140185","name":"Sidekiq","slug":"sidekiq","title":"Simple, efficient background processing for Ruby","verified":false,"imageUrl":"https://img.stackshare.io/service/1078/4b7277462dadad85454ab427ce3f0ca7.png","canonicalUrl":"/sidekiq","path":"/sidekiq","votes":408,"fans":911,"stacks":1117,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773417615081":{"id":"101231773417615081","name":"Dyn","slug":"dyn","title":"Managed DNS, Outsourced DNS & Anycast DNS","verified":true,"imageUrl":"https://img.stackshare.io/service/37/fsKWm_AI_400x400.jpg","canonicalUrl":"/dyn","path":"/dyn","votes":24,"fans":133,"stacks":1725,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773863068091":{"id":"101231773863068091","name":"Puma","slug":"puma","title":"A Modern, Concurrent Web Server for Ruby","verified":false,"imageUrl":"https://img.stackshare.io/service/1055/favicon.png","canonicalUrl":"/puma","path":"/puma","votes":20,"fans":456,"stacks":839,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773692729304":{"id":"101231773692729304","name":"Amplitude","slug":"amplitude","title":"User analytics to fuel explosive user growth","verified":true,"imageUrl":"https://img.stackshare.io/service/640/default_51e537c5ed098d3e9aba0eb94299e4575a556aec.jpg","canonicalUrl":"/amplitude","path":"/amplitude","votes":36,"fans":830,"stacks":892,"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:101231774204689068":{"id":"101231774204689068","name":"Looker","slug":"looker","title":"Pioneering the next generation of BI, data discovery & data analytics","verified":true,"imageUrl":"https://img.stackshare.io/service/1881/default_1431993fb5378db3220eeba43566bb9f356418f7.png","canonicalUrl":"/looker","path":"/looker","votes":9,"fans":758,"stacks":612,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773670764039":{"id":"101231773670764039","name":"Heap","slug":"heap","title":"Automatically capture every user action in your app and measure it all","verified":true,"imageUrl":"https://img.stackshare.io/service/588/i5NnxX2V_400x400.jpg","canonicalUrl":"/heap","path":"/heap","votes":126,"fans":553,"stacks":685,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773441530720":{"id":"101231773441530720","name":"Papertrail","slug":"papertrail","title":"Hosted log management for servers, apps, and cloud services","verified":true,"imageUrl":"https://img.stackshare.io/service/82/default_3accd6f46a6878fc4663003d9758e6d75bca9dd3.png","canonicalUrl":"/papertrail","path":"/papertrail","votes":273,"fans":546,"stacks":610,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774463222644":{"id":"101231774463222644","name":"PostGIS","slug":"postgis","title":"Open source spatial database","verified":false,"imageUrl":"https://img.stackshare.io/service/2519/foo.png","canonicalUrl":"/postgis","path":"/postgis","votes":30,"fans":474,"stacks":367,"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:101231773995151871":{"id":"101231773995151871","name":"HelloSign","slug":"hellosign","title":"Embed signing functionality into your own site with just a few lines of code.","verified":true,"imageUrl":"https://img.stackshare.io/service/1345/R5PcIJdS.png","canonicalUrl":"/hellosign","path":"/hellosign","votes":43,"fans":114,"stacks":83,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774861987902":{"id":"101231774861987902","name":"Talkdesk","slug":"talkdesk","title":"Create a Call Center in 5 Minutes","verified":true,"imageUrl":"https://img.stackshare.io/service/3280/THe-G5nM_400x400.png","canonicalUrl":"/talkdesk","path":"/talkdesk","votes":0,"fans":47,"stacks":16,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773767894174":{"id":"101231773767894174","name":"BlockScore","slug":"blockscore","title":"Simple, fast, and accurate identity verification","verified":true,"imageUrl":"https://img.stackshare.io/service/823/skQqn8lS.png","canonicalUrl":"/blockscore","path":"/blockscore","votes":0,"fans":33,"stacks":10,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.2":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231801963896829","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231795567908311":{"id":"101231795567908311","views":5308,"title":"How LendingHome Scaled Their Marketplace To $750M In Real Estate Loans","imageUrl":"https://img.stackshare.io/stack/36748/Screen_Shot_2017-03-13_at_10.56.54_AM.png","publishedAt":"2016-09-02T03:23:26Z","canonicalUrl":"/lendinghome/how-lendinghome-scaled-their-marketplace-to-$750m-in-real-estate-loans","previewImageUrl":"https://img.stackshare.io/stack/36748/lendinghome.jpeg","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231795567908311.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:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849559490","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:101231775376642511","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773482334926","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835511567","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775357043443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774903366255","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773531895266","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215979427","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:101231773501596063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773469116775","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773487450796","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773421693052","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773431684432","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773416481916","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773398855818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456195039","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773613893180","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773429315550","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774204689068","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773396427216","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774495984435","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773923341861","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774924579100","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773665355731","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775657769432","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773559671617","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774021239712","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776250438527","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775363408714","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776255471760","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773767894174","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773546532440","typename":"Tool"}],"favoriteStacksCount":18,"__typename":"FeaturedPost"},"$FeaturedPost:101231795567908311.company":{"name":"LendingHome","__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":204952,"stacks":297361,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773849559490":{"id":"101231773849559490","name":"jQuery","slug":"jquery","title":"The Write Less, Do More, JavaScript Library.","verified":false,"imageUrl":"https://img.stackshare.io/service/1021/lxEKmMnB_400x400.jpg","canonicalUrl":"/jquery","path":"/jquery","votes":6557,"fans":82460,"stacks":191851,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773482334926":{"id":"101231773482334926","name":"Jira","slug":"jira","title":"The #1 software development tool used by agile teams to plan, track, and release great software.","verified":true,"imageUrl":"https://img.stackshare.io/service/154/default_53605d3093005bd7853e04a258c0d4746e803e29.jpg","canonicalUrl":"/jira","path":"/jira","votes":1183,"fans":57978,"stacks":61489,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774903366255":{"id":"101231774903366255","name":"ESLint","slug":"eslint","title":"The fully pluggable JavaScript code quality tool","verified":false,"imageUrl":"https://img.stackshare.io/service/3337/Q4L7Jncy.jpg","canonicalUrl":"/eslint","path":"/eslint","votes":28,"fans":18216,"stacks":29976,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774215979427":{"id":"101231774215979427","name":"AWS Lambda","slug":"aws-lambda","title":"Automatically run code in response to modifications to objects in Amazon S3 buckets, messages in Kinesis streams, or updates in DynamoDB","verified":false,"imageUrl":"https://img.stackshare.io/service/1909/aws-lambda.png","canonicalUrl":"/aws-lambda","path":"/aws-lambda","votes":432,"fans":22842,"stacks":24008,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773487450796":{"id":"101231773487450796","name":"InVision","slug":"invision","title":"Prototyping & Collaboration For Design Teams","verified":true,"imageUrl":"https://img.stackshare.io/service/165/r9uL4jWU.png","canonicalUrl":"/invision","path":"/invision","votes":617,"fans":7624,"stacks":8446,"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:101231773416481916":{"id":"101231773416481916","name":"Salesforce Sales Cloud","slug":"salesforce-sales-cloud","title":"The worldâs #1 CRM sales app","verified":false,"imageUrl":"https://img.stackshare.io/service/35/lGZFUPOW.png","canonicalUrl":"/salesforce-sales-cloud","path":"/salesforce-sales-cloud","votes":64,"fans":2031,"stacks":2691,"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:101231773429315550":{"id":"101231773429315550","name":"Marketo","slug":"marketo","title":"Helping marketers master the art and science of digital marketing","verified":true,"imageUrl":"https://img.stackshare.io/service/56/default_f680d749102e3b27d73b13d44ff7e408bfb01629.jpg","canonicalUrl":"/marketo","path":"/marketo","votes":16,"fans":434,"stacks":1742,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773396427216":{"id":"101231773396427216","name":"Pivotal Tracker","slug":"pivotal-tracker","title":"Provides a proven agile project management tool for delivering better products","verified":false,"imageUrl":"https://img.stackshare.io/service/1/422314579c5a2b89852d2ba6432d7716.png","canonicalUrl":"/pivotal-tracker","path":"/pivotal-tracker","votes":317,"fans":543,"stacks":638,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774495984435":{"id":"101231774495984435","name":"Capybara","slug":"capybara","title":"Acceptance test framework for web applications","verified":false,"imageUrl":"https://img.stackshare.io/service/2595/capybara.png","canonicalUrl":"/capybara","path":"/capybara","votes":15,"fans":349,"stacks":624,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773923341861":{"id":"101231773923341861","name":"HAML","slug":"haml","title":"HTML Abstraction Markup Language - A Markup Haiku","verified":false,"imageUrl":"https://img.stackshare.io/service/1169/Picture_2.png","canonicalUrl":"/haml","path":"/haml","votes":267,"fans":442,"stacks":530,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774924579100":{"id":"101231774924579100","name":"FullStory","slug":"fullstory","title":"Meet FullStory, the app that captures all your customer experience data in one powerful, easy-to-use platform.","verified":true,"imageUrl":"https://img.stackshare.io/service/3365/gyA5IJZO_400x400.jpg","canonicalUrl":"/fullstory","path":"/fullstory","votes":33,"fans":341,"stacks":287,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773665355731":{"id":"101231773665355731","name":"Buildkite","slug":"buildkite","title":"Fast, secure and scalable CI/CD for all your software projects","verified":true,"imageUrl":"https://img.stackshare.io/service/577/default_2d19e0c5c214c1ba5cd484c8463d7dfe88eb2328.png","canonicalUrl":"/buildkite","path":"/buildkite","votes":115,"fans":280,"stacks":212,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775657769432":{"id":"101231775657769432","name":"wkhtmltopdf","slug":"wkhtmltopdf","title":"Convert HTML to PDF using Webkit (QtWebKit)","verified":false,"imageUrl":"https://img.stackshare.io/no-img-open-source.png","canonicalUrl":"/wkhtmltopdf","path":"/wkhtmltopdf","votes":0,"fans":122,"stacks":57,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773559671617":{"id":"101231773559671617","name":"Lob","slug":"lob","title":"Print and Mail for Developers","verified":true,"imageUrl":"https://img.stackshare.io/service/281/default_917b21004d74cbcfcbafcd50aac4d1f3fe3747d5.png","canonicalUrl":"/lob","path":"/lob","votes":2,"fans":92,"stacks":71,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774021239712":{"id":"101231774021239712","name":"Hound","slug":"hound","title":"Take care of pesky code reviews with a trusty Hound","verified":true,"imageUrl":"https://img.stackshare.io/service/1424/default_0dde9d02742d51e062296a842f4779742c0c03ca.jpg","canonicalUrl":"/hound","path":"/hound","votes":14,"fans":58,"stacks":42,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776250438527":{"id":"101231776250438527","name":"CloudConvert","slug":"cloudconvert","title":"File conversion in the cloud","verified":true,"imageUrl":"https://img.stackshare.io/service/5665/logo_flat_1024x1024.png","canonicalUrl":"/cloudconvert","path":"/cloudconvert","votes":0,"fans":27,"stacks":19,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775363408714":{"id":"101231775363408714","name":"Poltergeist","slug":"poltergeist","title":"A PhantomJS driver for Capybara","verified":false,"imageUrl":"https://img.stackshare.io/service/4088/7149329.png","canonicalUrl":"/poltergeist","path":"/poltergeist","votes":0,"fans":27,"stacks":17,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776255471760":{"id":"101231776255471760","name":"DocGen","slug":"docgen","title":"Better documentation for software products","verified":false,"imageUrl":"https://img.stackshare.io/service/5671/docgen.png","canonicalUrl":"/docgen","path":"/docgen","votes":0,"fans":27,"stacks":15,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773546532440":{"id":"101231773546532440","name":"RightSignature","slug":"rightsignature","title":"The Easiest, Fastest Way to Get Documents Signed.","verified":false,"imageUrl":"https://img.stackshare.io/service/269/_ShC3j0h.png","canonicalUrl":"/rightsignature","path":"/rightsignature","votes":0,"fans":15,"stacks":9,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.3":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231795567908311","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231789624828158":{"id":"101231789624828158","views":22150,"title":"Scaling Zapier to Automate Billions of Tasks","imageUrl":"https://img.stackshare.io/stack/25100/default_c7e38cfcdd58ce686ec6d1343a14a67c2686c8f6.png","publishedAt":"2016-02-04T18:44:12Z","canonicalUrl":"/zapier/scaling-zapier-to-automate-billions-of-tasks","previewImageUrl":"https://img.stackshare.io/stack/25100/815475d73317d4eadfd9dfce06f6545ce30a9489.gif","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231789624828158.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:101231773851859414","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773895058604","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773433737219","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703650742","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:101231774125163302","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:101231774215979427","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:101231774781423216","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773970332063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773700412232","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773450178959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773523090140","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773775509982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501596063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774492574471","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773855606480","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773421693052","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773871944512","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773613893180","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773563008013","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615096541","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773628223844","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775525897727","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774450050488","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774782086471","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773813299908","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773545754049","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773565026135","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775514423534","typename":"Tool"}],"favoriteStacksCount":53,"__typename":"FeaturedPost"},"$FeaturedPost:101231789624828158.company":{"name":"Zapier","__typename":"Company"},"Tool:101231773851859414":{"id":"101231773851859414","name":"MySQL","slug":"mysql","title":"The world's most popular open source database","verified":false,"imageUrl":"https://img.stackshare.io/service/1025/logo-mysql-170x170.png","canonicalUrl":"/mysql","path":"/mysql","votes":3753,"fans":122602,"stacks":125312,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773895058604":{"id":"101231773895058604","name":"npm","slug":"npm","title":"The package manager for JavaScript.","verified":true,"imageUrl":"https://img.stackshare.io/service/1120/lejvzrnlpb308aftn31u.png","canonicalUrl":"/npm","path":"/npm","votes":1634,"fans":95650,"stacks":124520,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773703650742":{"id":"101231773703650742","name":"Jenkins","slug":"jenkins","title":"An extendable open source continuous integration server","verified":false,"imageUrl":"https://img.stackshare.io/service/670/jenkins.png","canonicalUrl":"/jenkins","path":"/jenkins","votes":2219,"fans":58546,"stacks":58361,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774781423216":{"id":"101231774781423216","name":"Docker Compose","slug":"docker-compose","title":"Define and run multi-container applications with Docker","verified":true,"imageUrl":"https://img.stackshare.io/service/3136/docker-compose.png","canonicalUrl":"/docker-compose","path":"/docker-compose","votes":501,"fans":20599,"stacks":21631,"following":false,"followContext":null,"__typename":"Tool"},"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":17525,"stacks":18393,"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":18717,"stacks":19053,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773523090140":{"id":"101231773523090140","name":"Amazon RDS","slug":"amazon-rds","title":"Set up, operate, and scale a relational database in the cloud.","verified":false,"imageUrl":"https://img.stackshare.io/service/232/amazon-rds.png","canonicalUrl":"/amazon-rds","path":"/amazon-rds","votes":761,"fans":13705,"stacks":15833,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773775509982":{"id":"101231773775509982","name":"gulp","slug":"gulp","title":"The streaming build system","verified":false,"imageUrl":"https://img.stackshare.io/service/844/iruTC031.png","canonicalUrl":"/gulp","path":"/gulp","votes":1691,"fans":11829,"stacks":14197,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773855606480":{"id":"101231773855606480","name":"Memcached","slug":"memcached","title":"High-performance, distributed memory object caching system","verified":false,"imageUrl":"https://img.stackshare.io/service/1040/hDNnpa4a_400x400.jpg","canonicalUrl":"/memcached","path":"/memcached","votes":473,"fans":7208,"stacks":7743,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773563008013":{"id":"101231773563008013","name":"Zapier","slug":"zapier","title":"Automate tasks between other online services (services like Salesforce, Basecamp, Gmail, and 400+ more)","verified":true,"imageUrl":"https://img.stackshare.io/service/286/0bd8e9aaccec949490082ad22c7ee60f.png","canonicalUrl":"/zapier","path":"/zapier","votes":114,"fans":1508,"stacks":1578,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773615096541":{"id":"101231773615096541","name":"Amazon VPC","slug":"amazon-vpc","title":"Provision a logically isolated section of the AWS Cloud and launch AWS resources in a virtual network that you define","verified":false,"imageUrl":"https://img.stackshare.io/service/388/amazon-vpc.png","canonicalUrl":"/amazon-vpc","path":"/amazon-vpc","votes":46,"fans":1018,"stacks":1381,"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:101231775525897727":{"id":"101231775525897727","name":"Graylog","slug":"graylog","title":"Open source log management that actually works","verified":true,"imageUrl":"https://img.stackshare.io/service/4392/_HU28D42.png","canonicalUrl":"/graylog","path":"/graylog","votes":70,"fans":918,"stacks":576,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774450050488":{"id":"101231774450050488","name":"CodeMirror","slug":"codemirror","title":"A versatile text editor implemented in JavaScript for the browser","verified":false,"imageUrl":"https://img.stackshare.io/service/2490/E_fCaAi6.png","canonicalUrl":"/codemirror","path":"/codemirror","votes":15,"fans":422,"stacks":620,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774782086471":{"id":"101231774782086471","name":"Docker Machine","slug":"docker-machine","title":"Machine management for a container-centric world","verified":true,"imageUrl":"https://img.stackshare.io/service/3137/fbbb494a7eef5f9278c6967b6072ca3e.png","canonicalUrl":"/docker-machine","path":"/docker-machine","votes":12,"fans":590,"stacks":434,"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:101231773565026135":{"id":"101231773565026135","name":"HackPad","slug":"hackpad","title":"Smart collaborative documents. ","verified":false,"imageUrl":"https://img.stackshare.io/service/289/oo1SaTNQ.png","canonicalUrl":"/hackpad","path":"/hackpad","votes":17,"fans":71,"stacks":54,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775514423534":{"id":"101231775514423534","name":"McRouter","slug":"mcrouter","title":"A memcached protocol router for scaling memcached deployments, by Facebook","verified":true,"imageUrl":"https://img.stackshare.io/service/4370/G7xgmEZ.png","canonicalUrl":"/mcrouter","path":"/mcrouter","votes":0,"fans":70,"stacks":20,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.4":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231789624828158","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231780843600126":{"id":"101231780843600126","views":5690,"title":"How Tilt Is Building The Fastest Growing Crowdfunding Platform","imageUrl":"https://img.stackshare.io/stack/5646/default_59321e7c3f4513d874bb7f399a9ada3a520f84a0.png","publishedAt":"2015-07-24T05:58:24Z","canonicalUrl":"/tilt/how-tilt-is-building-the-fastest-growing-crowdfunding-platform","previewImageUrl":"https://img.stackshare.io/stack/5646/7cad0050f30ea1df50d5255b8605f2c2dabc4602.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231780843600126.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","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:101231773861864225","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703650742","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773924002641","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","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:101231774063724150","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125690843","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773744147511","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773871022988","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773855606480","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773859476798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773616958547","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773627798007","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773699610959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774012172650","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773813299908","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774854392237","typename":"Tool"}],"favoriteStacksCount":13,"__typename":"FeaturedPost"},"$FeaturedPost:101231780843600126.company":{"name":"Tilt","__typename":"Company"},"Tool:101231773924002641":{"id":"101231773924002641","name":"Sass","slug":"sass","title":"Syntactically Awesome Style Sheets","verified":false,"imageUrl":"https://img.stackshare.io/service/1171/jCR2zNJV.png","canonicalUrl":"/sass","path":"/sass","votes":3002,"fans":38453,"stacks":42595,"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":17507,"stacks":17922,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774063724150":{"id":"101231774063724150","name":"Selenium","slug":"selenium","title":"Web Browser Automation","verified":false,"imageUrl":"https://img.stackshare.io/service/1517/sbUizSli_400x400.jpg","canonicalUrl":"/selenium","path":"/selenium","votes":527,"fans":15411,"stacks":15617,"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: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":10085,"stacks":11473,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773871022988":{"id":"101231773871022988","name":"Varnish","slug":"varnish","title":"High-performance HTTP accelerator","verified":false,"imageUrl":"https://img.stackshare.io/service/1073/default_7811fe80d774e75973d4f3880e5903125f0bec3b.jpg","canonicalUrl":"/varnish","path":"/varnish","votes":370,"fans":3591,"stacks":12474,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773859476798":{"id":"101231773859476798","name":"Perl","slug":"perl","title":"Highly capable, feature-rich programming language with over 26 years of development","verified":false,"imageUrl":"https://img.stackshare.io/service/1048/perl.png","canonicalUrl":"/perl","path":"/perl","votes":574,"fans":1411,"stacks":3499,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773616958547":{"id":"101231773616958547","name":"Amazon ElastiCache","slug":"amazon-elasticache","title":"Deploy, operate, and scale an in-memory cache in the cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/392/amazon-elasticache.png","canonicalUrl":"/amazon-elasticache","path":"/amazon-elasticache","votes":151,"fans":1319,"stacks":1324,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773699610959":{"id":"101231773699610959","name":"Capistrano","slug":"capistrano","title":"A remote server automation and deployment tool written in Ruby","verified":false,"imageUrl":"https://img.stackshare.io/service/661/5da4e1d78e930197cb7dc002ceafdfda.png","canonicalUrl":"/capistrano","path":"/capistrano","votes":232,"fans":861,"stacks":1049,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774012172650":{"id":"101231774012172650","name":"InfluxDB","slug":"influxdb","title":"An open-source distributed time series database with no external dependencies","verified":true,"imageUrl":"https://img.stackshare.io/service/1396/fc3a45a16c93d59408e04097e8bef1e8.png","canonicalUrl":"/influxdb","path":"/influxdb","votes":175,"fans":1482,"stacks":1038,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774854392237":{"id":"101231774854392237","name":"Dancer","slug":"dancer","title":"Simple but powerful web application framework for Perl","verified":false,"imageUrl":"https://img.stackshare.io/service/3269/dancer-logo.png","canonicalUrl":"/dancer","path":"/dancer","votes":4,"fans":41,"stacks":39,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.5":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231780843600126","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231780096128007":{"id":"101231780096128007","views":19252,"title":"Scaling Wix to 60M Users - From Monolith to Microservices","imageUrl":"https://img.stackshare.io/stack/4017/default_410723f7192df3131c077d4cf6244774dd60b150.png","publishedAt":"2015-05-29T09:25:40Z","canonicalUrl":"/wix/scaling-wix-to-60m-users-from-monolith-to-microservices","previewImageUrl":"https://img.stackshare.io/stack/4017/fdb96f3841c4a8ae0b23a7232ba76a47503ecc48.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231780096128007.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:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774472411723","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773851859414","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773482334926","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773848354670","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773454477801","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773930545301","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773649935410","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845539901","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773775953805","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838374890","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773830185558","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773857450417","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773712725009","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774157994263","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773627798007","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773997873230","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773402794654","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773864793528","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774068594470","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773751138943","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773552487870","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773857055849","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774759642261","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773876277120","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773860768398","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774090990020","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774760110096","typename":"Tool"}],"favoriteStacksCount":41,"__typename":"FeaturedPost"},"$FeaturedPost:101231780096128007.company":{"name":"Wix","__typename":"Company"},"Tool:101231774472411723":{"id":"101231774472411723","name":"HTML5","slug":"html5","title":"5th major revision of the core language of the World Wide Web","verified":false,"imageUrl":"https://img.stackshare.io/service/2538/kEpgHiC9.png","canonicalUrl":"/html5","path":"/html5","votes":2236,"fans":145676,"stacks":148625,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773838011785":{"id":"101231773838011785","name":"Java","slug":"java","title":"A concurrent, class-based, object-oriented, language specifically designed to have as few implementation dependencies as possible","verified":false,"imageUrl":"https://img.stackshare.io/service/995/K85ZWV2F.png","canonicalUrl":"/java","path":"/java","votes":3710,"fans":118419,"stacks":135155,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773854388643":{"id":"101231773854388643","name":"MongoDB","slug":"mongodb","title":"The database for giant ideas","verified":true,"imageUrl":"https://img.stackshare.io/service/1030/leaf-360x360.png","canonicalUrl":"/mongodb","path":"/mongodb","votes":4131,"fans":93768,"stacks":93516,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773930545301":{"id":"101231773930545301","name":"Apache Tomcat","slug":"tomcat","title":"An open source software implementation of the Java Servlet and JavaServer Pages technologies","verified":false,"imageUrl":"https://img.stackshare.io/service/1187/tomcat.png","canonicalUrl":"/tomcat","path":"/tomcat","votes":201,"fans":15304,"stacks":16550,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773845539901":{"id":"101231773845539901","name":"Scala","slug":"scala","title":"A pure-bred object-oriented language that runs on the JVM","verified":false,"imageUrl":"https://img.stackshare.io/service/1012/scala.png","canonicalUrl":"/scala","path":"/scala","votes":1511,"fans":9693,"stacks":10879,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773838374890":{"id":"101231773838374890","name":"Spring","slug":"spring","title":"Provides a comprehensive programming and configuration model for modern Java-based enterprise applications","verified":false,"imageUrl":"https://img.stackshare.io/service/996/unnamed.jpg","canonicalUrl":"/spring","path":"/spring","votes":1072,"fans":5671,"stacks":3963,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773830185558":{"id":"101231773830185558","name":"Apache Maven","slug":"maven","title":"Apache build manager for Java projects. ","verified":false,"imageUrl":"https://img.stackshare.io/package_manager/977/default_9833f2ef0bbc2a946b4cc5e9307264033361076b.png","canonicalUrl":"/maven","path":"/maven","votes":414,"fans":2536,"stacks":2843,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773857450417":{"id":"101231773857450417","name":"Hadoop","slug":"hadoop","title":"Open-source software for reliable, scalable, distributed computing","verified":false,"imageUrl":"https://img.stackshare.io/service/1044/elephant_rgb_sq.png","canonicalUrl":"/hadoop","path":"/hadoop","votes":56,"fans":2739,"stacks":2510,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773712725009":{"id":"101231773712725009","name":"Google Cloud Storage","slug":"google-cloud-storage","title":"Durable and highly available object storage service","verified":false,"imageUrl":"https://img.stackshare.io/service/694/Cloud_Storage.png","canonicalUrl":"/google-cloud-storage","path":"/google-cloud-storage","votes":75,"fans":1559,"stacks":1705,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774157994263":{"id":"101231774157994263","name":"Hibernate","slug":"hibernate","title":"Idiomatic persistence for Java and relational databases.","verified":false,"imageUrl":"https://img.stackshare.io/service/1756/1uNl_IZX.png","canonicalUrl":"/hibernate","path":"/hibernate","votes":34,"fans":1607,"stacks":1543,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773864793528":{"id":"101231773864793528","name":"ActiveMQ","slug":"activemq","title":"A message broker written in Java together with a full JMS client","verified":false,"imageUrl":"https://img.stackshare.io/service/1062/default_08edb6f82e2c79424efc1e297ab096e50acd8e0b.jpg","canonicalUrl":"/activemq","path":"/activemq","votes":77,"fans":1452,"stacks":610,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774068594470":{"id":"101231774068594470","name":"Zookeeper","slug":"zookeeper","title":"Because coordinating distributed systems is a Zoo","verified":false,"imageUrl":"https://img.stackshare.io/service/1528/apache-zookeeper.png","canonicalUrl":"/zookeeper","path":"/zookeeper","votes":43,"fans":1204,"stacks":812,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773751138943":{"id":"101231773751138943","name":"Nagios","slug":"nagios","title":"Complete monitoring and alerting for servers, switches, applications, and services","verified":false,"imageUrl":"https://img.stackshare.io/service/786/3gaoi2h254k0canb4hxj.png","canonicalUrl":"/nagios","path":"/nagios","votes":102,"fans":1259,"stacks":828,"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:101231773857055849":{"id":"101231773857055849","name":"HBase","slug":"hbase","title":"The Hadoop database, a distributed, scalable, big data store","verified":false,"imageUrl":"https://img.stackshare.io/service/1043/HBase-Twitter3.png","canonicalUrl":"/hbase","path":"/hbase","votes":15,"fans":596,"stacks":462,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774759642261":{"id":"101231774759642261","name":"Ehcache","slug":"ehcache","title":"Java's Most Widely-Used Cache","verified":false,"imageUrl":"https://img.stackshare.io/service/3093/EhcacheTwitterIcon.png","canonicalUrl":"/ehcache","path":"/ehcache","votes":4,"fans":214,"stacks":178,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773876277120":{"id":"101231773876277120","name":"Jetty","slug":"jetty","title":"An open-source project providing an HTTP server, HTTP client, and javax.servlet container","verified":false,"imageUrl":"https://img.stackshare.io/service/1084/default_392a491b5c8bff92ffa39468611ad8f9c0ff1939.png","canonicalUrl":"/jetty","path":"/jetty","votes":47,"fans":405,"stacks":472,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773860768398":{"id":"101231773860768398","name":"Graphite","slug":"graphite","title":"A highly scalable real-time graphing system","verified":false,"imageUrl":"https://img.stackshare.io/service/1050/graphite.png","canonicalUrl":"/graphite","path":"/graphite","votes":42,"fans":517,"stacks":390,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774090990020":{"id":"101231774090990020","name":"Apache Storm","slug":"apache-storm","title":"Distributed and fault-tolerant realtime computation","verified":false,"imageUrl":"https://img.stackshare.io/service/1595/WC8j4Gr3.png","canonicalUrl":"/apache-storm","path":"/apache-storm","votes":25,"fans":350,"stacks":204,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774760110096":{"id":"101231774760110096","name":"Level 3 CDN","slug":"level3-cdn","title":"Level 3âs CDN helps you succeed by leveraging our network scalability, global footprint and proven customer service.","verified":false,"imageUrl":"https://img.stackshare.io/service/3094/2x2piaOi.jpeg","canonicalUrl":"/level3-cdn","path":"/level3-cdn","votes":0,"fans":18,"stacks":6,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.6":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231780096128007","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231779902423103":{"id":"101231779902423103","views":1789,"title":"How The World's Largest Design Marketplace Builds and Ships Code","imageUrl":"https://img.stackshare.io/stack/3532/default_eef2fe2095509f2ab9317a3e52b2d50f84ef8e7b.png","publishedAt":"2015-05-01T12:32:29Z","canonicalUrl":"/99designs/how-the-worlds-largest-design-marketplace-builds-and-ships-code","previewImageUrl":null,"company":{"type":"id","generated":true,"id":"$FeaturedPost:101231779902423103.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773836410122","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:101231773924002641","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:101231773835996572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773525549037","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:101231773450178959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773523090140","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773775509982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773620969295","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773744147511","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773775953805","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:101231773616958547","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773480426879","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632985587","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773441530720","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773969827609","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773451086031","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773665355731","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774656944558","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773517506861","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774307942543","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774657695191","typename":"Tool"}],"favoriteStacksCount":13,"__typename":"FeaturedPost"},"$FeaturedPost:101231779902423103.company":{"name":"99designs","__typename":"Company"},"Tool:101231773836410122":{"id":"101231773836410122","name":"PHP","slug":"php","title":"A popular general-purpose scripting language that is especially suited to web development","verified":false,"imageUrl":"https://img.stackshare.io/service/991/hwUcGZ41_400x400.jpg","canonicalUrl":"/php","path":"/php","votes":4622,"fans":95277,"stacks":144308,"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":17040,"stacks":22469,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773525549037":{"id":"101231773525549037","name":"PayPal","slug":"paypal","title":"Send Money, Pay Online or Set Up a Merchant Account","verified":true,"imageUrl":"https://img.stackshare.io/service/236/yy3lVE1y.jpeg","canonicalUrl":"/paypal","path":"/paypal","votes":665,"fans":17916,"stacks":19247,"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:101231773480426879":{"id":"101231773480426879","name":"Bugsnag","slug":"bugsnag","title":"Bugsnag provides production error monitoring and management for front-end, mobile and back-end applications","verified":true,"imageUrl":"https://img.stackshare.io/service/150/square-logo-small-midnight.png","canonicalUrl":"/bugsnag","path":"/bugsnag","votes":267,"fans":811,"stacks":1094,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773969827609":{"id":"101231773969827609","name":"Flux","slug":"flux","title":"Application Architecture for Building User Interfaces","verified":false,"imageUrl":"https://img.stackshare.io/service/1275/flux.png","canonicalUrl":"/flux","path":"/flux","votes":130,"fans":633,"stacks":519,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773451086031":{"id":"101231773451086031","name":"Braintree","slug":"braintree","title":"Accept payments in your app or website today","verified":true,"imageUrl":"https://img.stackshare.io/service/98/mgD1tpPz.jpeg","canonicalUrl":"/braintree","path":"/braintree","votes":90,"fans":552,"stacks":563,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774656944558":{"id":"101231774656944558","name":"Adyen","slug":"adyen","title":"One integration allows businesses to accept 250 payment methods, from wherever people pay","verified":true,"imageUrl":"https://img.stackshare.io/service/2907/default_dd04a747aa08ad83b6aa811fada7cef801c1e169.jpg","canonicalUrl":"/adyen","path":"/adyen","votes":49,"fans":304,"stacks":155,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773517506861":{"id":"101231773517506861","name":"Cloudability","slug":"cloudability","title":"Cloud management made easy","verified":false,"imageUrl":"https://img.stackshare.io/service/221/default_afbd8f4614ac39f09aa8c58ac27427ecec0a6822.jpg","canonicalUrl":"/cloudability","path":"/cloudability","votes":11,"fans":47,"stacks":22,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774307942543":{"id":"101231774307942543","name":"Sift Science","slug":"sift-science","title":"Fight fraud with real time machine learning. Integrate in an afternoon.","verified":false,"imageUrl":"https://img.stackshare.io/service/2166/u7oytlxc.png","canonicalUrl":"/sift-science","path":"/sift-science","votes":0,"fans":19,"stacks":14,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774657695191":{"id":"101231774657695191","name":"Smartling","slug":"smartling","title":"Cloud-Based Translation Management Platform","verified":true,"imageUrl":"https://img.stackshare.io/service/2908/SjNamdrt.png","canonicalUrl":"/smartling","path":"/smartling","votes":0,"fans":22,"stacks":8,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).featuredPosts({\"first\":8}).edges.7":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231779902423103","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"Job:111849507104693544":{"name":"Software Engineer, Web","id":"111849507104693544","angellistJobUrl":"https://www.pinterestcareers.com/job-form?gh_jid=5404145","title":"Software Engineer, Web","location":"Mexico City, MX; , MX","private":false,"services":[{"type":"id","generated":false,"id":"Tool:107846281190496441","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:105210142539751462","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:104433999937414333","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776411419473","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775357043443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775212866992","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774098455524","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773939333405","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773770920543","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:101231709530029071","typename":"Company"},"__typename":"Job"},"Tool:107846281190496441":{"id":"107846281190496441","name":"Dream","slug":"dream-framework","title":"Tidy, feature-complete Web framework","verified":false,"imageUrl":"https://img.stackshare.io/service/40514/default_c19d22a0eb52861815d6674d4209c48b26039df7.png","canonicalUrl":"/dream-framework","path":"/dream-framework","votes":0,"fans":8,"stacks":4,"following":false,"followContext":null,"__typename":"Tool"},"Tool:105210142539751462":{"id":"105210142539751462","name":"Vite","slug":"vite","title":"Native-ESM powered web dev build tool","verified":false,"imageUrl":"https://img.stackshare.io/service/21547/default_1aeac791cde11ff66cc0b20dcc6144eeb185c905.png","canonicalUrl":"/vite","path":"/vite","votes":13,"fans":1003,"stacks":1422,"following":false,"followContext":null,"__typename":"Tool"},"Tool:104433999937414333":{"id":"104433999937414333","name":"Relay","slug":"relay-puppet","title":"Event-driven DevOps automation (By Puppet)","verified":true,"imageUrl":"https://img.stackshare.io/service/12507/relay.png","canonicalUrl":"/relay-puppet","path":"/relay-puppet","votes":0,"fans":41,"stacks":30,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776411419473":{"id":"101231776411419473","name":"Next.js","slug":"next-js","title":"A small framework for server-rendered universal JavaScript apps ","verified":false,"imageUrl":"https://img.stackshare.io/service/5936/nextjs.png","canonicalUrl":"/next-js","path":"/next-js","votes":326,"fans":6520,"stacks":6764,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775212866992":{"id":"101231775212866992","name":"GraphQL","slug":"graphql","title":"A data query language and runtime","verified":false,"imageUrl":"https://img.stackshare.io/service/3820/12972006.png","canonicalUrl":"/graphql","path":"/graphql","votes":310,"fans":33462,"stacks":33753,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774098455524":{"id":"101231774098455524","name":"TypeScript","slug":"typescript","title":"A superset of JavaScript that compiles to clean JavaScript output","verified":false,"imageUrl":"https://img.stackshare.io/service/1612/bynNY5dJ.jpg","canonicalUrl":"/typescript","path":"/typescript","votes":502,"fans":83662,"stacks":94019,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773770920543":{"id":"101231773770920543","name":"Jest","slug":"jest","title":"Painless JavaScript Unit Testing","verified":false,"imageUrl":"https://img.stackshare.io/service/830/jest.png","canonicalUrl":"/jest","path":"/jest","votes":175,"fans":5996,"stacks":9734,"following":false,"followContext":null,"__typename":"Tool"},"Company:101231709530029071":{"imageUrl":"https://img.stackshare.io/company/260/default_c077fc04bb219001b7a1ab10f90ebcdb00c143a9.png","name":"Pinterest","id":"101231709530029071","path":"/companies/pinterest","__typename":"Company"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).jobs({\"first\":8}).edges.0":{"node":{"type":"id","generated":false,"id":"Job:111849507104693544","typename":"Job"},"__typename":"JobEdge"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).jobs({\"first\":8}).edges.1":{"node":{"type":"id","generated":false,"id":"Job:111849507104693544","typename":"Job"},"__typename":"JobEdge"},"Job:111056787521234710":{"name":" Senior Platform Engineer, (Distribution)","id":"111056787521234710","angellistJobUrl":"https://boards.greenhouse.io/postman/jobs/5739819003","title":" Senior Platform Engineer, (Distribution)","location":"Bangalore, India","private":false,"services":[{"type":"id","generated":false,"id":"Tool:110818823175886266","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:109510960203067986","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:106306652202618132","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:103935188691306742","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774565594919","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773990286939","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773770920543","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:101231710004405533","typename":"Company"},"__typename":"Job"},"Tool:110818823175886266":{"id":"110818823175886266","name":"Continue","slug":"continue","title":"The open-source autopilot for software development","verified":false,"imageUrl":"https://img.stackshare.io/service/101970/default_4cf30d3bdd10c69eb42f37e3a5d6720ae2063000.jpg","canonicalUrl":"/continue","path":"/continue","votes":0,"fans":6,"stacks":2,"following":false,"followContext":null,"__typename":"Tool"},"Tool:109510960203067986":{"id":"109510960203067986","name":"Patterns","slug":"patterns","title":"A much faster way to build and deploy data apps","verified":false,"imageUrl":"https://img.stackshare.io/service/48386/default_470f18b5ff4f790e964fb31c3c74ce92b46747cf.png","canonicalUrl":"/patterns","path":"/patterns","votes":0,"fans":53,"stacks":49,"following":false,"followContext":null,"__typename":"Tool"},"Tool:106306652202618132":{"id":"106306652202618132","name":"Schedule","slug":"schedule","title":"Appointment scheduling software that helps schedule online appointments for businesses","verified":true,"imageUrl":"https://img.stackshare.io/service/25670/default_627149174da6df340278777eb96beffc83108fba.jpg","canonicalUrl":"/schedule","path":"/schedule","votes":0,"fans":46,"stacks":46,"following":false,"followContext":null,"__typename":"Tool"},"Tool:103935188691306742":{"id":"103935188691306742","name":"Playwright","slug":"playwright","title":"Node library to automate Chromium, Firefox and WebKit with a single API (By Microsoft)","verified":true,"imageUrl":"https://img.stackshare.io/service/11955/default_48baa40615243f437bc3b182e62ddfe0290fca4b.png","canonicalUrl":"/playwright","path":"/playwright","votes":78,"fans":727,"stacks":484,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773990286939":{"id":"101231773990286939","name":"Postman","slug":"postman","title":"Only complete API development environment","verified":true,"imageUrl":"https://img.stackshare.io/service/1336/xWMRvm_5_400x400.png","canonicalUrl":"/postman","path":"/postman","votes":1797,"fans":94177,"stacks":94467,"following":false,"followContext":null,"__typename":"Tool"},"Company:101231710004405533":{"imageUrl":"https://img.stackshare.io/company/1215/default_ed96be074df3f923cb496d060de5b1edb4b58a08.png","name":"Postman","id":"101231710004405533","path":"/companies/postman","__typename":"Company"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).jobs({\"first\":8}).edges.2":{"node":{"type":"id","generated":false,"id":"Job:111056787521234710","typename":"Job"},"__typename":"JobEdge"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).jobs({\"first\":8})":{"edges":[{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).jobs({\"first\":8}).edges.0","typename":"JobEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).jobs({\"first\":8}).edges.1","typename":"JobEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"grunt-vs-webpack\"}).jobs({\"first\":8}).edges.2","typename":"JobEdge"}],"__typename":"JobConnection"}}
Grunt and Webpack are both popular task runners and build systems commonly used in web development projects. While they serve similar purposes, there are key differences between the two.
1. Configuration Method: Grunt uses a configuration-based approach where developers need to define specific tasks and their configurations in a Gruntfile.js file. On the other hand, Webpack uses a JavaScript-based configuration approach, allowing developers to define their build process directly in a webpack.config.js file using a powerful and flexible API.
2. Module Bundling: Webpack excels in module bundling and dependency management, allowing developers to bundle not only JavaScript files but also other assets like CSS, images, and fonts, providing a more comprehensive build system. Grunt, on the other hand, focuses more on task automation and requires additional plugins or custom configurations to handle module bundling.
3. Hot Module Replacement: Webpack has built-in support for hot module replacement (HMR), a feature that allows for live reloading and updating of modules without a full page refresh. This can greatly enhance the development experience by enabling real-time updates. Grunt, on the other hand, lacks native support for HMR and requires additional configuration or plugins to achieve a similar functionality.
4. Code Splitting: Webpack offers powerful code splitting capabilities, allowing developers to split their code into multiple chunks to optimize load times by loading only the required code for a specific page or feature. Grunt, on the other hand, does not provide built-in code splitting capabilities and requires additional configurations or plugins to achieve similar optimization.
5. Development vs Production Environments: Webpack provides a built-in mechanism for differentiating between development and production environments, allowing developers to apply specific optimizations and configurations based on the current environment. Grunt, on the other hand, does not have this built-in functionality and requires additional configuration or tasks to differentiate between different environments.
6. Ecosystem and Community: Both Grunt and Webpack have vibrant ecosystems and active communities, but they have different focuses. Grunt has been around for longer and has a larger number of plugins available, making it easier to find solutions for various tasks. Webpack, on the other hand, has gained strong momentum in recent years, particularly in the JavaScript community, and is widely used in modern web development, especially for complex applications with advanced requirements.
In summary, Grunt and Webpack have significant differences in their configuration methods, module bundling capabilities, support for hot module replacement and code splitting, handling of development vs production environments, and the size and focus of their ecosystems and communities.
Very simple to use and a great way to optimize repetitive tasks, like optimize PNG images, convert to WebP, create sprite images with CSS.
I didn't choose Grunt because of the fact it uses files and Gulp uses memory, making it faster for my use case since I need to work with 3000+ small images. And the fact Gulp has 32k+ stars on GitHub.
The developer experience Webpack gave us was not delighting anyone. It works and is stable and consistent. It is also slow and frustrating. We decided to check out Vite as an alternative when moving to Vue 3 and have been amazed. It is very early in development and there are plenty of rough edges, but it has been a breath of fresh air not waiting for anything to update. It is so fast we have found ourselves using devtools in browser less because changing styles is just as fast in code. We felt confident using the tool because although it is early in its development, the production build is still provided by Rollup which is a mature tool. We also felt optimistic that as good as it is right now, it will only continue to get better, as it is being worked on very actively. So far we are really happy with the choice.
I could define the next points why we have to migrate:
Decrease build time of our application. (It was the main cause).
Also jspm install takes much more time than npm install.
Many config files for SystemJS and JSPM. For Webpack you can use just one main config file, and you can use some separate config files for specific builds using inheritance and merge them.
We mostly use rollup to publish package onto NPM. For most all other use cases, we use the Meteor build tool (probably 99% of the time) for publishing packages. If you're using Node on FHIR you probably won't need to know rollup, unless you are somehow working on helping us publish front end user interface components using FHIR. That being said, we have been migrating away from Atmosphere package manager towards NPM. As we continue to migrate away, we may publish other NPM packages using rollup.
Sign up to add or upvote prosMake informed product decisions
Cons of Grunt
Cons of Webpack
Cons of Grunt
1
Poor mindshare/community support
Cons of Webpack
15
Hard to configure
5
No clear direction
2
Spaghetti-Code out of the box
2
SystemJS integration is quite lackluster
2
Loader architecture is quite a mess (unreliable/buggy)
2
Fire and Forget mentality of Core-Developers
Sign up to add or upvote consMake informed product decisions
What is Grunt?
The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes. After you've configured it, a task runner can do most of that mundane work for youâand your teamâwith basically zero effort.
What is Webpack?
A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows to load parts for the application on demand. Through "loaders" modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
Need advice about which tool to choose?Ask the StackShare community!
Jobs that mention Grunt and Webpack as a desired skillset
Build system automating tasks: minification and copying of all JavaScript files, static images. More capable of watching files to automatically rerun the task when a file changes.
npm
npm is the command-line interface to the npm ecosystem. It is battle-tested, surprisingly flexible, and used by hundreds of thousands of JavaScript developers every day.
Yarn
Yarn caches every package it downloads so it never needs to again. It also parallelizes operations to maximize resource utilization so install times are faster than ever.
Gradle
Gradle is a build tool with a focus on build automation and support for multi-language development. If you are building, testing, publishing, and deploying software on any platform, Gradle offers a flexible model that can support the entire development lifecycle from compiling and packaging code to publishing web sites.
Apache Maven
Maven allows a project to build using its project object model (POM) and a set of plugins that are shared by all projects using Maven, providing a uniform build system. Once you familiarize yourself with how one Maven project builds you automatically know how all Maven projects build saving you immense amounts of time when trying to navigate many projects.