PageSourceSearch

http://codegram-website.netlify.app/case-studies/

html codegram-website.netlify.app collected 2026-10-03 10:35:26 UTC 47,311 bytes, 131 lines download raw bytes

1<!DOCTYPE html>
2<html data-html-server-rendered="true" lang="en" data-vue-tag="%7B%22lang%22:%7B%22ssr%22:%22en%22%7D%7D">
3  <head>
4    <title>Case Studies · Codegram</title><meta name="gridsome:hash" content="70ff42cfa65f66e6d2c305b1726b20f7fa466bdd"><meta data-vue-tag="ssr" charset="utf-8">
5<!-- This site is hosted on Netlify. Anyone can build and deploy a site
6     like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=1ce79851-515f-493f-9154-a74e325e06dd
7     Netlify hosting facts for this site: static/SSR served via Netlify Edge. --><meta data-vue-tag="ssr" name="generator" content="Gridsome v0.7.23"><meta data-vue-tag="ssr" data-key="viewport" name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"><meta data-vue-tag="ssr" data-key="format-detection" name="format-detection" content="telephone=no"><meta data-vue-tag="ssr" name="twitter:card" content="summary_large_image" vmid="twitter:card"><meta data-vue-tag="ssr" name="twitter:site" content="@codegram" vmid="twitter:site"><meta data-vue-tag="ssr" property="og:image" content="https://623008a26b418b00086edf07--codegram-website.netlify.app/assets/img/social.c099e656.jpg" vmid="og:image"><meta data-vue-tag="ssr" name="twitter:title" content="Case Studies" vmid="twitter:title"><meta data-vue-tag="ssr" property="og:title" content="Case Studies" vmid="og:title"><meta data-vue-tag="ssr" name="twitter:description" content="Find out how we&#x27;ve helped some of our clients to design, build and scale human-centered products. Examples of our work and digital solutions." vmid="twitter:description"><meta data-vue-tag="ssr" property="og:description" content="Find out how we&#x27;ve helped some of our clients to design, build and scale human-centered products. Examples of our work and digital solutions." vmid="og:description"><meta data-vue-tag="ssr" name="description" content="Find out how we&#x27;ve helped some of our clients to design, build and scale human-centered products. Examples of our work and digital solutions." vmid="description"><link data-vue-tag="ssr" rel="icon" href="data:,"><link data-vue-tag="ssr" rel="icon" type="image/png" sizes="16x16" href="/assets/static/favicon.ce0531f.f0c5c8fa8544a3b4acf1c018bc4a31c0.png"><link data-vue-tag="ssr" rel="icon" type="image/png" sizes="32x32" href="/assets/static/favicon.ac8d93a.f0c5c8fa8544a3b4acf1c018bc4a31c0.png"><link data-vue-tag="ssr" rel="icon" type="image/png" sizes="96x96" href="/assets/static/favicon.b9532cc.f0c5c8fa8544a3b4acf1c018bc4a31c0.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="76x76" href="/assets/static/favicon.f22e9f3.f0c5c8fa8544a3b4acf1c018bc4a31c0.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="152x152" href="/assets/static/favicon.62d22cb.f0c5c8fa8544a3b4acf1c018bc4a31c0.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="120x120" href="/assets/static/favicon.1539b60.f0c5c8fa8544a3b4acf1c018bc4a31c0.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="167x167" href="/assets/static/favicon.dc0cdc5.f0c5c8fa8544a3b4acf1c018bc4a31c0.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="180x180" href="/assets/static/favicon.7b22250.f0c5c8fa8544a3b4acf1c018bc4a31c0.png"><link data-vue-tag="ssr" rel="canonical" href="https://623008a26b418b00086edf07--codegram-website.netlify.app/case-studies/"><link rel="preload" href="/assets/css/0.styles.fdfd7bdc.css" as="style"><link rel="preload" href="/assets/js/app.b4ad11b3.js" as="script"><link rel="preload" href="/assets/js/page--src--pages--case-studies-vue.b478d811.js" as="script"><link rel="prefetch" href="/assets/js/6.4eb39f1e.js"><link rel="prefetch" href="/assets/js/page--src--pages--404-vue.8268be03.js"><link rel="prefetch" href="/assets/js/page--src--pages--agency-vue.c4b8198a.js"><link rel="prefetch" href="/assets/js/page--src--pages--careers-vue.508ae8db.js"><link rel="prefetch" href="/assets/js/page--src--pages--case-studies--davis-cup-finals-vue.0fea9d7d.js"><link rel="prefetch" href="/assets/js/page--src--pages--case-studies--davis-cup-finals-vue~page--src--pages--case-studies--decidim-vue~pag~c619282d.f529ccf9.js">
7<link rel="prefetch" href="/assets/js/page--src--pages--case-studies--decidim-vue.3d50ad79.js"><link rel="prefetch" href="/assets/js/page--src--pages--case-studies--empresaula-vue.aa97262d.js"><link rel="prefetch" href="/assets/js/page--src--pages--case-studies--github-hackathon-vue.48c2bfe0.js"><link rel="prefetch" href="/assets/js/page--src--pages--case-studies--github-skyline-vue.471efd6f.js"><link rel="prefetch" href="/assets/js/page--src--pages--case-studies--github-stars-vue.b15d9113.js"><link rel="prefetch" href="/assets/js/page--src--pages--case-studies--golden-manager-vue.8126c971.js"><link rel="prefetch" href="/assets/js/page--src--pages--case-studies--redbooth-vue.ebdd4ac4.js"><link rel="prefetch" href="/assets/js/page--src--pages--case-studies--venair-vue.e23a9955.js"><link rel="prefetch" href="/assets/js/page--src--pages--clients-vue.375af75b.js"><link rel="prefetch" href="/assets/js/page--src--pages--contact-vue.907426c7.js"><link rel="prefetch" href="/assets/js/page--src--pages--contact-vue~page--src--pages--offerings--elixir-vue~page--src--pages--offerings--p~cb6f1a09.7e0efc19.js"><link rel="prefetch" href="/assets/js/page--src--pages--index-vue.e4955e55.js"><link rel="prefetch" href="/assets/js/page--src--pages--offerings--elixir-vue.7a8028ec.js"><link rel="prefetch" href="/assets/js/page--src--pages--offerings--prototyping-vue.37f2319e.js"><link rel="prefetch" href="/assets/js/page--src--pages--privacy-policy-vue.7ca8d971.js"><link rel="prefetch" href="/assets/js/page--src--pages--team-vue.3f040e77.js"><link rel="prefetch" href="/assets/js/page--src--pages--terms-and-conditions-vue.e473fbfd.js"><link rel="prefetch" href="/assets/js/page--src--pages--thank-you-call-vue.885e927f.js"><link rel="prefetch" href="/assets/js/page--src--pages--thank-you-call-vue~page--src--pages--thank-you-vue.429df6ed.js"><link rel="prefetch" href="/assets/js/page--src--pages--thank-you-vue.d3399b79.js"><link rel="prefetch" href="/assets/js/page--src--templates--author-vue.49d3da98.js"><link rel="prefetch" href="/assets/js/page--src--templates--author-vue~page--src--templates--blog-vue.30f99dc3.js"><link rel="prefetch" href="/assets/js/page--src--templates--blog-vue.f4108cf1.js"><link rel="prefetch" href="/assets/js/page--src--templates--position-vue.de73bb87.js"><link rel="prefetch" href="/assets/js/page--src--templates--post-vue.5b5cceb8.js"><link rel="prefetch" href="/assets/js/page--src--templates--tag-vue.83b156e0.js"><link rel="prefetch" href="/assets/js/vendors~page--src--pages--case-studies--github-stars-vue.3b47916a.js"><link rel="prefetch" href="/assets/js/vendors~page--src--pages--contact-vue~page--src--pages--offerings--elixir-vue~page--src--pages--offe~fd7d8370.a936546c.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--a-devrel-in-a-digital-product-agency-md.330edee4.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--a-github-actions-workflow-to-deploy-to-google-cloud-using-serverless-framework-md.afdb0470.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--a-jamstack-journey-headless-content-management-with-vue-react-md.08a5dae1.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--a-productive-development-environment-md.5ea3b932.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--about-production-mistakes-md.e241cf9f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--about-programming-languages-md.b2d93fea.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--acceptance-tests-with-cucumber-devise-omniauth-and-twitter-md.e2ff30bf.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--an-awesome-ruby-and-rails-feed-bundle-for-google-reader-md.b4d2bf32.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--an-ode-to-code-reviews-md.c24ba3d4.js">
7<link rel="prefetch" href="/assets/js/vue-remark--src--blog--angular-for-junior-backend-devs-md.c81bb208.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--asdf-a-version-manager-to-rule-them-all-md.1f5e4de5.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--attending-elixirconfeu-2016-in-berlin-what-we-ve-learned-md.ad8363ae.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--autocancel-github-actions-workflows-md.2dfa80a2.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--baruco-barcelona-ruby-conference-md.76898a9e.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--baruco-meets-futurejs-announcing-full-stack-fest-2015-md.c1f6593a.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--bcn-software-crafters-2019-md.5fa37f72.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--becoming-a-logician-with-typescript-md.570078ab.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--benchmarking-actsaslist-vs-rankedmodel-vs-resort-md.90ec750b.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--biz-dev-at-codegram-md.790b10b3.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--brief-intro-to-ux-md.c6be428f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--building-a-content-based-recommender-system-in-clojure-md.d779d63a.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--building-a-serverless-newsletter-parser-md.a145f179.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--building-decidim-architecture-overview-md.df81d6b7.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--but-lighthouse-says-i-am-accessible-part-one-md.c8501166.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--but-lighthouse-says-i-am-accessible-part-two-md.5dfec740.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--celebrate-rbxday-with-us-at-codegram-md.71436411.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--cleaner-safer-ruby-api-clients-with-kleisli-md.184a5246.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--codegram-is-also-a-dog-friendly-company-md.69c0f49e.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--codegram-lunch-talks-episode-01-md.3044c72e.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--codegram-lunch-talks-episode-02-md.043c7e88.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--codegram-retreat-aftermath-md.f46e8c4a.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--communication-tools-md.fe30d14a.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--crawling-websites-with-elixir-and-crawly-md.7931196c.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--create-a-reusable-button-with-vue-dynamic-components-md.39d4fbf2.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--css-3-box-sizing-and-making-50-wide-padded-elements-behave-md.92de4709.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--css-3-html-5-and-how-to-degrade-gracefully-md.c73fc8e9.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--cucumber-plus-ad-hoc-apps-to-test-rails-3-generators-md.96aa3036.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--datamapper-an-alternative-to-activerecord-md.c60fcec6.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--date-validation-with-rails-3-md.8775dd40.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--decidim-open-source-participatory-democracy-framework-md.30a0e76e.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--devops-for-juniors-md.6dc62d6d.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--distributed-codegram-new-horizons-md.b4b183a1.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--diving-into-elixir-phoenix-md.6055d332.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--elasticsearch-with-ruby-md.1f7be153.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--elixir-conf-us-2020-md.b8cee5ca.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--finding-similar-documents-with-transformers-md.a6e6daf9.js">
7<link rel="prefetch" href="/assets/js/vue-remark--src--blog--firefox-lets-focus-md.b5b9de8f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--first-thoughts-about-deno-md.23fbdc71.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--from-a-pet-server-to-a-kubernetes-cluster-md.766d3d67.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--from-java-to-ruby-md.1f7acc8f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--from-vue-to-angular-md.3dee80cb.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--full-stack-fest-is-back-stronger-than-ever-md.53764bc1.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--futurejs-the-future-happens-on-may-2014-md.6833a308.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--gettin-jiggy-wit-git-part-one-md.5dbddd96.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--getting-started-with-deep-learning-md.4c7a6b0d.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--getting-started-with-prisma-md.50351d69.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--git-is-your-friend-md.8ae07f79.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--graphql-101-md.be92d6ba.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--graphql-organization-in-a-phoenix-project-md.17a7c98f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--hack-friday-xmas-special-md.b32baf4f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--hack-the-future-in-full-stack-fest-2016-md.7bd6cc49.js">
7<link rel="prefetch" href="/assets/js/vue-remark--src--blog--how-to-achieve-more-clean-encapsulated-modular-step-definitions-with-spinach-md.5694135d.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--how-to-save-elephants-by-improving-your-code-md.9ff9cc30.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--how-to-use-vogue-to-automatically-reload-your-css-on-the-fly-cross-browser-cross-framework-md.b29e19c6.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--improving-a-gridsome-website-performance-md.015cf5c8.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--infrastructure-as-code-with-pulumi-md.dcbe3bdc.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--introducing-monday-talks-at-codegram-md.9760055f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--jamstack-conf-a-virtual-conference-experience-md.3cbc57e6.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--journey-of-a-self-funded-product-md.d43a670c.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--jumping-into-the-world-of-ux-md.6be48984.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--keeping-the-distributed-team-connected-md.c9fc54e7.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--kill-the-backend-md.a2fdbe13.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--learning-how-to-learn-md.41da0f7f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--learning-rust-my-way-md.db6992cc.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--learning-rust-threads-md.6ec0f0ab.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lets-read-book-recommendations-for-world-book-day-md.508c431a.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lightweight-markdown-in-your-rails-models-md.6f889447.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--linting-the-hell-out-of-your-ruby-classes-with-pelusa-md.0a60dd05.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lunch-talks-10-fighting-impostor-syndrome-in-four-easy-steps-md.56afe92f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lunch-talks-3-a-couple-words-about-metrics-md.a5a0632b.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lunch-talks-3-elixir-the-good-parts-md.814803df.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lunch-talks-6-leveling-our-elixir-up-md.6e8ccd44.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lunch-talks-7-a-type-system-tour-md.83753739.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lunch-talks-8-machine-learning-md.1ce5c5b1.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lunch-talks-9-why-we-should-take-our-attention-to-rust-md.d11ed2be.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--lunch-talks-week-5-css-i-want-to-give-it-all-to-you-md.d809be7e.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--machine-learning-loves-dogs-md.3f901bf8.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--migrating-form-webstorm-to-vscode-md.c3a12aff.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--my-learning-experience-in-a-fully-remote-company-as-a-junior-developer-md.afd48959.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--new-gem-released-futuroscope-md.fed04f80.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--nuxt-typescript-apollo-md.3fab613d.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--our-company-retreat-things-we-learned-during-codegrams-2019-retreat-md.a7a89b51.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--peeking-into-elixir-part-one-md.2be5a3e1.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--phoenix-integration-tests-at-github-actions-md.9735a1b9.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--phoenix-templates-components-md.7bb3e01c.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--playing-with-dialogs-and-ng-templates-md.cc3f229b.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--powering-up-static-sites-with-gridsome-md.f585ff04.js">
7<link rel="prefetch" href="/assets/js/vue-remark--src--blog--practical-react-and-redux-part-1-md.cec3f4e9.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--practical-react-and-redux-part-2-md.fbbf4389.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--practical-react-and-redux-part-3-md.5e901177.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--practical-react-and-redux-part-4-md.ef464c86.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--rack-webconsole-a-rubyrails-console-inside-your-browser-md.71b86a0b.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--raiders-of-the-lost-accessibility-md.0c13d058.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--rails-engines-independent-heroes-md.9028a7a9.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--railsgirls-a-summer-of-codes-md.ee0f157b.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--rake-ignores-eager-loading-rails-config-md.14453c47.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--released-acts-as-decimal-md.e58fc182.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--remote-work-interview-md.fd17e79e.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--resort-positionless-sorting-for-your-rails-3-models-md.3fb81e06.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--reviewing-pull-requests-from-vim-with-vim-codereview-md.9d0de7d0.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--routines-for-a-routineless-life-md.d42e1fc4.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--routing-in-rails-md.6133350a.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--ruby-lambda-bff-md.b48dc789.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--rust-for-js-developers-md.571af502.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--rustfest-barcelona-2019-md.0f0afeaa.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--secure-github-oauth-with-cookies-md.4b293f1e.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--serverless-for-front-end-developers-md.be943885.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--serverless-ruby-ci-cd-md.a9b9faba.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--shaping-a-diverse-and-inclusive-culture-at-codegram-md.34310927.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--skinny-controllers-are-not-enough-md.f3b1485d.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--slice-machine-from-prismic-md.930012c8.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--stop-ab-using-z-index-md.3741babf.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--talk-club-dark-patterns-md.a4557dd9.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--talk-club-phoenix-liveview-md.8c50a075.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--the-codegrammers-guide-to-the-rupy-md.2a9b192b.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--the-humanoids-who-killed-don-draper-md.85c47bce.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--the-way-to-a-thight-knit-remote-team-md.f1b3c00b.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--this-weeks-talks-bdd-best-practices-and-antipatterns-and-brew-your-own-coffeescript-md.e7d8cc35.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--this-weeks-talks-creating-basic-chrome-extensions-and-object-oriented-nirvana-md.86602af2.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--this-weeks-talks-encoding-messages-in-a-noiseless-channel-and-http-authentication-methods-md.ceb10e26.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--understanding-class-instance-variables-in-ruby-md.ed77119f.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--understanding-regex-once-and-for-all-part-four-md.ddb321f7.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--understanding-regex-once-and-for-all-part-one-md.ebae0f3d.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--understanding-regex-once-and-for-all-part-three-md.448d42e2.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--understanding-regex-once-and-for-all-part-two-md.24b7ac54.js">
7<link rel="prefetch" href="/assets/js/vue-remark--src--blog--unexpected-programming-boost-from-humanities-to-github-md.8d2a2c83.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--using-bem-in-components-md.95f905b3.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--why-cucumber-sucks-and-i-still-love-it-md.a21a3fa5.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--why-you-should-hire-a-junior-developer-md.20f8a3c0.js"><link rel="prefetch" href="/assets/js/vue-remark--src--blog--your-business-as-an-observable-system-md.780c0b88.js"><link rel="stylesheet" href="/assets/css/0.styles.fdfd7bdc.css"><style data-vue-tag="ssr" type="text/css">
8    #nprogress {
9     pointer-events: none;
10    }
11    #nprogress .bar {
12      background: #fdf4aa;
13      position: fixed;
14      z-index: 1031;
15      top: 0;
16      left: 0;
17      width: 100%;
18      height: 2px;
19    }
20    #nprogress .peg {
21      display: block;
22      position: absolute;
23      right: 0px;
24      width: 100px;
25      height: 100%;
26      box-shadow: 0 0 10px #fdf4aa, 0 0 5px #fdf4aa;
27      opacity: 1.0;
28      -webkit-transform: rotate(3deg) translate(0px, -4px);
29      -ms-transform: rotate(3deg) translate(0px, -4px);
30      transform: rotate(3deg) translate(0px, -4px);
31    }
32    #nprogress .spinner {
33      display: block;
34      position: fixed;
35      z-index: 1031;
36      top: 15px;
37      right: 15px;
38    }
39    #nprogress .spinner-icon {
40      width: 18px;
41      height: 18px;
42      box-sizing: border-box;
43      border: solid 2px transparent;
44      border-top-color: #fdf4aa;
45      border-left-color: #fdf4aa;
46      border-radius: 50%;
47      -webkit-animation: nprogress-spinner 400ms linear infinite;
48      animation: nprogress-spinner 400ms linear infinite;
49    }
50    .nprogress-custom-parent {
51      overflow: hidden;
52      position: relative;
53    }
54    .nprogress-custom-parent #nprogress .spinner,
55    .nprogress-custom-parent #nprogress .bar {
56      position: absolute;
57    }
58    @-webkit-keyframes nprogress-spinner {
59      0% {
60        -webkit-transform: rotate(0deg);
61      }
62      100% {
63        -webkit-transform: rotate(360deg);
64      }
65    }
66    @keyframes nprogress-spinner {
67      0% {
68        transform: rotate(0deg);
69      }
70      100% {
71        transform: rotate(360deg);
72      }
73    }
74  </style>
74<script data-vue-tag="ssr" src="https://plausible.io/js/plausible.js" async defer data-domain="www.codegram.com"></script>
74<noscript data-vue-tag="ssr"><style>.g-image--loading{display:none;}</style></noscript>
75  </head>
76  <body >
77    <div id="app" data-server-rendered="true" class="app" data-v-5485585b><div data-v-027f15e1 data-v-5485585b><a href="#main-content" class="skip-main" data-v-027f15e1>
78    Skip to Main Content
79  </a></div><!----><header class="nav-bar header" data-v-5485585b><!----><div class="nav-bar__wrapper"><div tabindex="0" role="link" aria-label="Homepage" class="nav-bar__logo"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 362 50" class="brand"><path d="M6.9874136,8.05294269 C16.3039651,-1.32695855 31.4461523,-1.4347565 40.8953961,7.81155015 L40.8953961,7.81155015 L42.6984492,9.90881459 L39.8524834,13.2218845 L37.8335504,10.8723404 C30.0741251,3.32005517 17.6758115,3.43040693 10.0521374,11.1196102 C2.42846324,18.8088134 2.42846324,31.2033446 10.0521374,38.8925479 C17.6758115,46.5817511 30.0741251,46.6921029 37.8335504,39.1398176 L37.8335504,39.1398176 L60.072219,13.2644377 C66.5140733,7.02247884 76.7823389,7.12914203 83.0930481,13.5035701 C89.4037574,19.8779982 89.4037574,30.1432784 83.0930481,36.5177065 C76.7823389,42.8921346 66.5140733,42.9987978 60.072219,36.7568389 L60.072219,36.7568389 L58.5184919,34.9513678 L56.304963,37.5288754 L57.6884186,39.1398176 C65.4472623,46.6891456 77.8425236,46.5775133 85.4640459,38.889669 C93.0855683,31.2018248 93.0855683,18.8103333 85.4640459,11.122489 C77.8425236,3.43464477 65.4472623,3.32301247 57.6884186,10.8723404 L57.6884186,10.8723404 L35.44975,36.7477204 C29.0078957,42.9896792 18.7396301,42.883016 12.4289209,36.508588 C6.11821157,30.1341599 6.11821157,19.8688796 12.4289209,13.4944516 C18.7396301,7.12002349 29.0078957,7.0133603 35.44975,13.2553191 L35.44975,13.2553191 L37.6389545,15.7963526 L34.7899481,19.112462 L32.3879043,16.3161094 C27.6383887,11.7663675 20.1140861,11.8732192 15.4957707,16.5559926 C10.8774554,21.238766 10.8774554,28.761234 15.4957707,33.4440074 C20.1140861,38.1267808 27.6383887,38.2336325 32.3879043,33.6838906 L32.3879043,33.6838906 L54.6265729,7.81155015 C59.1180198,3.4046056 65.1626273,0.939561512 71.4560822,0.948328267 C82.3128934,0.949690362 91.8237882,8.21930906 94.6709502,18.6925303 C97.5181122,29.1657515 92.996096,40.2476101 83.6332917,45.7419185 C74.2704873,51.2362269 62.3867303,49.7816522 54.6265729,42.1914894 L54.6265729,42.1914894 L50.6099909,37.5197568 L53.4589972,34.2066869 L55.6725262,31.6291793 L58.5215325,28.3161094 L63.1371052,33.6838906 C67.8866209,38.2336325 75.4109235,38.1267808 80.0292388,33.4440074 C84.6475542,28.761234 84.6475542,21.238766 80.0292388,16.5559926 C75.4109235,11.8732192 67.8866209,11.7663675 63.1371052,16.3161094 L63.1371052,16.3161094 L40.8953961,42.1914894 C31.4461523,51.437796 16.3039651,51.3299981 6.9874136,41.9500968 C-2.32913787,32.5701956 -2.32913787,17.4328439 6.9874136,8.05294269 Z" class="isotype"></path><path d="M244.834994,11.9696049 C248.343173,11.9696049 250.947152,13.2730177 252.720823,15.3463626 L252.907685,15.5714286 L252.907685,12.668693 L259.794558,12.668693 L259.794558,36.5775076 C259.794558,44.9422492 254.333709,50 245.725878,50 C241.758923,50 237.560132,48.9966697 234.634414,47.0690441 L234.31465,46.8510638 L236.817033,41.1215805 C239.357383,42.8478729 242.356187,43.7751493 245.427903,43.7841945 C249.699086,43.7841945 252.727318,41.4624871 252.849141,37.1447923 L252.852955,36.8723404 L252.852955,35.0486322 C251.077267,37.224924 248.4411,38.5714286 244.834994,38.5714286 C238.486301,38.5714286 232.836937,33.2978723 232.836937,25.2826748 C232.836937,17.2674772 238.486301,11.9696049 244.834994,11.9696049 Z  M198.445143,0 L198.445143,38.7325228 L191.585636,38.7325228 L191.585636,35.8541033 C189.892043,37.9513678 187.362296,39.4042553 183.783555,39.4042553 C176.598707,39.4042553 171.165223,33.5136778 171.165223,25.6869301 C171.165223,17.8601824 176.598707,11.9696049 183.783555,11.9696049 C187.159627,11.9696049 189.583312,13.2475162 191.273551,15.1768408 L191.451851,15.3860182 L191.451851,0 L198.445143,0 Z M153.672872,11.9696049 C161.800293,11.9696049 167.799322,17.8237082 167.799322,25.6869301 C167.799322,33.550152 161.769888,39.4042553 153.672872,39.4042553 C145.575856,39.4042553 139.601152,33.5410334 139.601152,25.6869301 C139.601152,17.8328267 145.575856,11.9696049 153.672872,11.9696049 Z M127.201741,11.9696049 C131.438626,11.9696049 135.032218,13.6387305 137.430802,16.6083745 L137.652152,16.8905775 L132.595698,21.115501
795 C131.005484,19.4164134 129.311891,18.5045593 127.022348,18.5045593 C123.391917,18.5045593 120.48514,21.331307 120.48514,25.6869301 C120.48514,30.0425532 123.364552,32.8662614 126.998024,32.8662614 C129.154473,32.8662614 131.017257,31.9357181 132.470017,30.450021 L132.674752,30.2340426 L137.670395,34.5075988 C135.222743,37.656535 131.561907,39.4042553 127.201741,39.4042553 C118.888845,39.4042553 113.318536,33.5683891 113.318536,25.6869301 C113.318536,17.8054711 118.888845,11.9696049 127.201741,11.9696049 Z M298.558679,11.9696049 C302.014016,11.9696049 304.465945,13.3211873 306.179931,15.3294593 L306.360761,15.5471125 L306.360761,12.668693 L313.223309,12.668693 L313.223309,38.7325228 L306.360761,38.7325228 L306.360761,35.8541033 C304.667168,37.9513678 302.13742,39.4042553 298.558679,39.4042553 C291.373832,39.4042553 285.940348,33.5136778 285.940348,25.6869301 C285.940348,17.8601824 291.373832,11.9696049 298.558679,11.9696049 Z M216.679392,11.9696049 C224.195661,11.9696049 229.325088,17.5379939 229.364782,25.6474164 C229.3671,26.2446336 229.342549,26.8415553 229.291162,27.4363615 L229.230831,28.0303951 L210.744216,28.0303951 C211.486113,31.7963526 214.12532,33.4346505 217.433451,33.4346505 C219.731576,33.3855856 221.947162,32.5869316 223.745035,31.1657261 L224.025389,30.9361702 L228.14231,35.4528875 C225.183843,38.1671733 221.416587,39.4042553 217.029057,39.4042553 C209.03846,39.4042553 203.495516,33.9756839 203.495516,25.768997 C203.495516,17.56231 208.877311,11.9696049 216.679392,11.9696049 Z M283.752734,12.3982407 L284.146417,12.5227964 L283.097423,19.4893617 C281.744917,18.9418808 280.299817,18.6591515 278.840636,18.656535 C275.656956,18.656535 273.456642,20.5645934 273.356023,24.2617516 L273.352422,24.5288754 L273.352422,38.7325228 L266.328725,38.7325228 L266.328725,12.668693 L273.148705,12.668693 L273.148705,15.5197568 C274.778446,13.0729483 277.280828,11.9696049 280.497742,11.9604863 C281.599592,11.9386445 282.697404,12.0865376 283.752734,12.3982407 Z M351.722901,11.9696049 C357.756491,11.9696049 361.861404,15.9490662 361.996559,21.8358181 L362,22.1367781 L362,38.7264438 L355.006708,38.7264438 L355.006708,24.3890578 C355.006708,20.6231003 353.097235,18.5531915 349.922889,18.5531915 C346.979766,18.5531915 344.523976,20.4264525 344.411345,24.1729745 L344.40731,24.443769 L344.40731,38.7294833 L337.383612,38.7294833 L337.383612,24.3920973 C337.383612,20.6261398 335.501504,18.556231 332.299793,18.556231 C329.353701,18.556231 326.900742,20.429492 326.788244,24.176014 L326.784214,24.4468085 L326.784214,38.7325228 L319.760516,38.7325228 L319.760516,12.668693 L326.592659,12.668693 L326.592659,15.7325228 C328.450442,12.9635258 331.302489,11.9696049 334.263996,11.9696049 C338.028211,11.9696049 341.120463,13.662614 342.871826,16.4346505 C344.887719,13.1246201 348.30531,11.9696049 351.722901,11.9696049 Z M299.850918,18.5106383 C295.733997,18.5106383 293.122155,21.7112462 293.122155,25.6930091 C293.122155,29.5918186 295.626304,32.738768 299.59558,32.8681987 L299.850918,32.8723404 C303.858378,32.8662614 306.576641,29.8085106 306.576641,25.6930091 C306.576641,21.5775076 303.861419,18.5106383 299.850918,18.5106383 Z M185.075793,18.5045593 C180.958873,18.5045593 178.337909,21.7051672 178.337909,25.6869301 C178.337909,29.5857396 180.842058,32.732689 184.811334,32.8621197 L185.066672,32.8662614 C189.083254,32.8662614 191.801516,29.8024316 191.801516,25.6869301 C191.801516,21.5714286 189.083254,18.5045593 185.075793,18.5045593 Z M153.672872,18.5045593 C149.717101,18.5045593 146.758634,21.4650456 146.758634,25.6869301 C146.758634,29.9088146 149.720141,32.8662614 153.672872,32.8662614 C157.628642,32.8662614 160.614474,29.9088146 160.614474,25.6869301 C160.614474,21.4650456 157.628642,18.5045593 153.672872,18.5045593 Z M246.613722,18.4255319 C242.603222,18.4255319 240.046109,21.5167173 240.046109,25.2826748 C240.046109,29.0486322 242.603222,32.1155015 246.613722,32.1155015 C250.514763,32.1155015 253.15093,29.1823708 253.15093,25.2826748 C253.15093,21.3829787 250.514763,18.4255319 246.613722,18.4255319 Z M216.627703,18.0212766 C213.408508,18.0212766 211.47686,19.9030897 210.813199,22.9712112 L210.759418,23.2370821 L222.301391,23.2370821 C221.656792,19.9027356 219.637859,18.0212766 216.627703,18.0212766 Z" class="logotype"></path></svg></div><nav class="navigation"><!----><ul class="navigation__items navigation__items--hidden"></ul><button aria-label="Open menu" class="navigation__toggle"><svg width="28px" height="20px" viewBox="0 0 28 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="burger" data-v-68a44f2e><path id="top" d="M12,2 L26,2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-68a44f2e></path><path id="mid" d="M4,10 L26,10" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-68a44f2e></path><path id="bottom" d="M12,18 L26,18" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-68a44f2e></path></svg></button></nav></div></header><main id="main-content" role="main" class="content" data-v-5485585b><div data-v-73920b5e data-v-5485585b data-v-5485585b><section id="case-studies-hero-trigger" class="case-study-hero-section" data-v-5df2af84 data-v-73920b5e><h2 class="case-study-hero-section__title" data-v-5df2af84>
80    Design, build and scale human-centered products.
81  </h2></section><div class="case-studies-list" data-v-73920b5e><div class="case-studies-list__column" data-v-73920b5e><a href="/case-studies/github-skyline/" id="case-studies-list__pill--github-skyline" class="case-study case-studies-list__pill case-study--animated" data-v-91ecf9e0 data-v-73920b5e><span data-v-91ecf9e0><img title="GitHub Skyline" alt="GitHub Skyline" srcset="/case-study/[email protected] 2x" role="presentation" src="/case-study/github-skyline-thumbnail.jpg" class="case-study__image g-image" data-v-91ecf9e0><h3 class="case-study__title" data-v-91ecf9e0><span id="highlighted--null" class="highlighted" data-v-331bc3a7 data-v-91ecf9e0>
82        GitHub Skyline
83      </span></h3><span class="case-study__summary" data-v-91ecf9e0>
84      Recognizing hard working open-source developers around the world.</span></span></a><a href="/case-studies/github-stars/" id="case-studies-list__pill--github-stars" class="case-study case-studies-list__pill case-study--animated" data-v-91ecf9e0 data-v-73920b5e><span data-v-91ecf9e0><img title="GitHub Stars" alt="GitHub Stars" srcset="/case-study/[email protected] 2x" role="presentation" src="/case-study/github-stars-thumbnail.jpg" class="case-study__image g-image" data-v-91ecf9e0><h3 class="case-study__title" data-v-91ecf9e0><span id="highlighted--null" class="highlighted" data-v-331bc3a7 data-v-91ecf9e0>
85        GitHub Stars
86      </span></h3><span class="case-study__summary" data-v-91ecf9e0>
87      Lift up the people who inspire and educate your communities with the GitHub Stars program.</span></span></a><a href="/case-studies/decidim/" id="case-studies-list__pill--decidim" class="case-study case-studies-list__pill case-study--animated" data-v-91ecf9e0 data-v-73920b5e><span data-v-91ecf9e0><img title="Decidim" alt="Decidim" srcset="/case-study/[email protected] 2x" role="presentation" src="/case-study/decidim-thumbnail.jpg" class="case-study__image g-image" data-v-91ecf9e0><h3 class="case-study__title" data-v-91ecf9e0><span id="highlighted--null" class="highlighted" data-v-331bc3a7 data-v-91ecf9e0>
88        Decidim
89      </span></h3><span class="case-study__summary" data-v-91ecf9e0>
90      Bringing institutions and people closer together.</span></span></a><a href="/case-studies/github-hackathon/" id="case-studies-list__pill--github-hackathon" class="case-study case-studies-list__pill case-study--animated" data-v-91ecf9e0 data-v-73920b5e><span data-v-91ecf9e0><img title="GitHub Hackathon" alt="GitHub Hackathon" srcset="/case-study/[email protected] 2x" role="presentation" src="/case-study/github-hackathon-thumbnail.jpg" class="case-study__image g-image" data-v-91ecf9e0><h3 class="case-study__title" data-v-91ecf9e0><span id="highlighted--null" class="highlighted" data-v-331bc3a7 data-v-91ecf9e0>
91        GitHub Hackathon
92      </span></h3><span class="case-study__summary" data-v-91ecf9e0>
93      Transform your workflow and build something original.</span></span></a><a href="/case-studies/redbooth/" id="case-studies-list__pill--redbooth" class="case-study case-studies-list__pill case-study--animated" data-v-91ecf9e0 data-v-73920b5e><span data-v-91ecf9e0><img title="Redbooth" alt="Redbooth" srcset="/case-study/[email protected] 2x" role="presentation" src="/case-study/redbooth-thumbnail.jpg" class="case-study__image g-image" data-v-91ecf9e0><h3 class="case-study__title" data-v-91ecf9e0><span id="highlighted--null" class="highlighted" data-v-331bc3a7 data-v-91ecf9e0>
94        Redbooth
95      </span></h3><span class="case-study__summary" data-v-91ecf9e0>
96      Increasing productivity through collaborative financial software.</span></span></a></div><div class="case-studies-list__column" data-v-73920b5e><a href="/case-studies/davis-cup-finals/" id="case-studies-list__pill--davis-cup-finals" class="case-study case-studies-list__pill case-study--animated" data-v-91ecf9e0 data-v-73920b5e><span data-v-91ecf9e0><img title="Davis Cup Finals" alt="Davis Cup Finals" srcset="/case-study/[email protected] 2x" role="presentation" src="/case-study/davis-cup-finals-thumbn
96ail.jpg" class="case-study__image g-image" data-v-91ecf9e0><h3 class="case-study__title" data-v-91ecf9e0><span id="highlighted--null" class="highlighted" data-v-331bc3a7 data-v-91ecf9e0>
97        Davis Cup Finals
98      </span></h3><span class="case-study__summary" data-v-91ecf9e0>
99      Building a scalable, resilient website for the Davis Cup Finals.</span></span></a><a href="/case-studies/empresaula/" id="case-studies-list__pill--empresaula" class="case-study case-studies-list__pill case-study--animated" data-v-91ecf9e0 data-v-73920b5e><span data-v-91ecf9e0><img title="Empresaula" alt="Empresaula" srcset="/case-study/[email protected] 2x" role="presentation" src="/case-study/empresaula-thumbnail.jpg" class="case-study__image g-image" data-v-91ecf9e0><h3 class="case-study__title" data-v-91ecf9e0><span id="highlighted--null" class="highlighted" data-v-331bc3a7 data-v-91ecf9e0>
100        Empresaula
101      </span></h3><span class="case-study__summary" data-v-91ecf9e0>
102      Bridging the education gap with a business simulation platform.</span></span></a><a href="/case-studies/golden-manager/" id="case-studies-list__pill--golden-manager" class="case-study case-studies-list__pill case-study--animated" data-v-91ecf9e0 data-v-73920b5e><span data-v-91ecf9e0><img title="Golden Manager" alt="Golden Manager" srcset="/case-study/[email protected] 2x" role="presentation" src="/case-study/golden-manager-thumbnail.jpg" class="case-study__image g-image" data-v-91ecf9e0><h3 class="case-study__title" data-v-91ecf9e0><span id="highlighted--null" class="highlighted" data-v-331bc3a7 data-v-91ecf9e0>
103        Golden Manager
104      </span></h3><span class="case-study__summary" data-v-91ecf9e0>
105      Scaling football simulation game up to 8 million users.</span></span></a><a href="/case-studies/venair/" id="case-studies-list__pill--venair" class="case-study case-studies-list__pill case-study--animated" data-v-91ecf9e0 data-v-73920b5e><span data-v-91ecf9e0><img title="Venair" alt="Venair" srcset="/case-study/[email protected] 2x" role="presentation" src="/case-study/venair-thumbnail.jpg" class="case-study__image g-image" data-v-91ecf9e0><h3 class="case-study__title" data-v-91ecf9e0><span id="highlighted--null" class="highlighted" data-v-331bc3a7 data-v-91ecf9e0>
106        Venair
107      </span></h3><span class="case-study__summary" data-v-91ecf9e0>
108      Building a High-performance UX/UI Website for Venair</span></span></a></div></div></div></main><footer class="footer" data-v-4c594c96 data-v-5485585b><section class="footer__main" data-v-4c594c96><div class="footer__links footer__links--news" data-v-4c594c96><div class="news-links" data-v-4c594c96><a href="/blog/" class="link footer__link link--bottom-border" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
109          Blog
110        </span><!----></span></a></div><div class="news-links" data-v-4c594c96><a href="/case-studies/" aria-current="page" class="link footer__link active--exact active link--bottom-border" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
111          Case Studies
112        </span><!----></span></a></div><div class="news-links" data-v-4c594c96><a target="_blank" href="https://conferences.codegram.com/" class="link footer__link link--bottom-border" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
113          Conferences
114        </span><!----></span></a></div></div><div class="footer__links footer__links--about" data-v-4c594c96><a target="_blank" href="https://dribbble.com/codegram" rel="noopener noreferrer" class="link footer__link link--bottom-border" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
115        Dribbble
116      </span><!----></span></a><a target="_blank" href="https://github.com/codegram/" rel="noopener noreferrer" class="link footer__link link--bottom-border" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
117        GitHub
118      </span><!----></span></a><a target="_blank" href="https://www.youtube.com/channel/UCwoOpKfkyCQHW562hXXQAGg" rel="noopener noreferrer" class="link footer__link link--bottom-border" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
119        YouTube
120      </span><!----></span></a></div><div class="footer__links footer__links--social" data-v-4c594c96><a target="_blank" href="https://www.linkedin.com/company/codegram" rel="noopener noreferrer" class="link footer__link link--bottom-border" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
121        LinkedIn
122      </span><!----></span></a><a target="_blank" href="https://twitter.com/codegram" rel="noopener noreferrer" class="link footer__link link--bottom-border" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
123        Twitter
124      </span><!----></span></a></div></section><div class="footer__secondary" data-v-4c594c96><div class="terms" data-v-4c594c96><a href="/privacy-policy/" class="link terms__link link--bottom-border terms__link--privacy-policy" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
125        Privacy Policy
126      </span><!----></span></a><a href="/terms-and-conditions/" class="link terms__link link--bottom-border terms__link--terms-and-conditions" data-v-8e318434 data-v-4c594c96><span class="link__wrapper" data-v-8e318434><span class="link__content" data-v-8e318434>
127        Terms and Conditions
128      </span><!----></span></a></div><div class="copyright" data-v-4c594c96><div class="copyright__text" data-v-4c594c96>© 2021 Codegram. All Rights Reserved.</div><div class="copyright__made-from" data-v-4c594c96><span data-v-4c594c96 data-v-4c594c96>Made remotely with <svg height="14" width="14" xmlns="http://www.w3.org/2000/svg" class="heart" data-v-4c594c96 data-v-4c594c96>
128<path d="M10.23 0c1.055.022 1.947.394 2.676 1.116.73.722 1.094 1.586 1.094 2.592 0 1.51-.538 2.964-1.615 4.364-.606.787-1.358 1.602-2.255 2.444-.898.843-1.65 1.493-2.255 1.953L7 13.125c-2.244-1.575-4.038-3.26-5.385-5.053C.538 6.672 0 5.217 0 3.708c0-1.006.365-1.87 1.094-2.592S2.714.022 3.769 0h.034C5.17 0 6.237.569 7 1.706 7.763.57 8.829 0 10.197 0h.034z" fill="#e5554f" data-v-4c594c96 data-v-4c594c96></path></svg> from <span data-v-1fde8a87 data-v-1fde8a87 data-v-4c594c96>.</span></span></div></div><div class="scroll-top-wrapper" data-v-44163e8e data-v-4c594c96><div class="scroll-top" data-v-44163e8e><a href="#" class="scroll-top__link" data-v-44163e8e><svg xmlns="http://www.w3.org/2000/svg" width="96" height="11" viewBox="0 0 96 11" class="scroll-top__arrow" data-v-44163e8e><path d="M59.0397697,1.13577854 C59.0409248,1.13674332 59.0420778,1.13771074 59.0432286,1.1386808 L63.6411142,5.01457111 C63.8912472,5.22542626 64.0115619,5.53329727 63.9931769,5.83669278 C63.994042,5.85173022 63.9946276,5.86677711 63.9948736,5.88182292 C63.9976748,5.92094082 64,5.96019887 64,6 C64,6.4511056 63.7013021,6.83244656 63.2908987,6.9570304 L59.0432286,10.535709 C59.0420778,10.536679 59.0409248,10.5376464 59.0397697,10.5386112 C58.6216374,10.8878236 57.9995816,10.8319531 57.6503692,10.4138208 C57.2990853,9.99320824 57.3538163,9.3677767 57.7728165,9.01457111 L57.7728165,9.01457111 L60.162,6.99944059 L1,7 C0.44771525,7 6.76353751e-17,6.55228475 0,6 C-6.76353751e-17,5.44771525 0.44771525,5 1,5 L60.548,4.99944059 L57.7728165,2.65981865 C57.3538163,2.30661306 57.2990853,1.68118153 57.6503692,1.26056892 C57.9995816,0.842436673 58.6216374,0.786566117 59.0397697,1.13577854 Z"></path></svg></a></div></div></div><!----></footer></div>
129    
129<script>window.__INITIAL_STATE__={"data":null,"context":{"locale":"en-us"}};(function(){var s;(s=document.currentScript||document.scripts[document.scripts.length-1]).parentNode.removeChild(s);}());</script>
129<script src="/assets/js/app.b4ad11b3.js" defer></script>
129<script src="/assets/js/page--src--pages--case-studies-vue.b478d811.js" defer></script>
129
130  </body>
131</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.