CINXE.COM
What is developer experience (DevEx)?
<!DOCTYPE html> <html lang="en"> <head> <link rel="dns-prefetch" href="https://sync.outbrain.com"> <link rel="dns-prefetch" href="https://ups.analytics.yahoo.com"> <link rel="dns-prefetch" href="https://ib.adnxs.com"> <link rel="dns-prefetch" href="https://www.google-analytics.com"> <link rel="dns-prefetch" href="https://fonts.googleapis.com"> <link rel="dns-prefetch" href="https://cdn.logrocket.io"> <link rel="preload" as="style" rel="stylesheet" type="text/css" href="https://www.developermarketing.io/assets/built/screen.css?v=3ccf9f31c8" /> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>What is developer experience (DevEx)?</title> <meta name="HandheldFriendly" content="True" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="https://www.developermarketing.io/assets/built/screen.css?v=3ccf9f31c8" /> <meta name="author" content="Teresa Garanhel"> <script src="https://cdn.lr-ingest.io/LogRocket.min.js" crossorigin="anonymous"></script> <script> window.LogRocket && window.LogRocket.init('acara/sequel-main'); window.inArticleAdList; window.inArticleAdListDisabled; window.topNav; window.showGetCertCta; window.isTOCenabled; window.userIdSegment = localStorage.getItem("user_id"); </script> <script> var ghosthunter_key = 'b1d2e55946ba49e939e2eba782'; window.isHiddenUpgradeVisible = false; </script> <script type="text/javascript"> function getParameterByName(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); } var action = getParameterByName('action'); if (action == 'signin') { window.location = '/account'; } if (window.location && window.location.search && window.location.search.includes('stripe=success')) { window.location = '/activate'; } </script> <script> var checkUserId = function({ payload, next, integrations }) { var user_id = payload.obj.userId; if(user_id && (user_id.length === 8 || user_id.length !== 36)) { console.log('teacahble user_id still set, clearing'); window.localStorage.removeItem('apc_user_id'); analytics.reset(); analytics.user().anonymousId(payload.obj.anonymousId); delete payload.obj.userId; delete payload.obj.traits; console.log('payload after clearing', payload.obj); } next(payload); }; !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e<analytics.methods.length;e++){var key=analytics.methods[e];analytics[key]=analytics.factory(key)}analytics.load=function(key,e){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.src="https://cdn.segment.com/analytics.js/v1/" + key + "/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);analytics._loadOptions=e};analytics._writeKey="bqZesCFCcPJXif3lu86TptwIYpDbM6WX";analytics.SNIPPET_VERSION="4.13.2"; const tags = []; const authors = []; let primary_tag; let primary_author; primary_author = "Teresa Garanhel"; primary_tag = "Guides"; authors.push("Teresa Garanhel") tags.push("Guides") analytics.addSourceMiddleware(checkUserId); analytics.load('bqZesCFCcPJXif3lu86TptwIYpDbM6WX', { user: { persist: true, cookie: { key: 'ajs_alliance_user_id' }, localStorage: { key: 'ajs_alliance_user_traits' } } }); analytics.page({ properties: { primary_tag: primary_tag, primary_author: primary_author, authors: authors, tags: tags, community: 'DMA' } }); }}(); </script> <meta name="description" content="Developer experience refers to how developers feel when working with a particular technical product, and it includes the whole developer journey."> <link rel="icon" href="https://www.developermarketing.io/content/images/size/w256h256/2024/07/android-chrome-192x192--2-.png" type="image/png"> <link rel="canonical" href="https://www.developermarketing.io/what-is-developer-experience-devex/"> <meta name="referrer" content="no-referrer-when-downgrade"> <meta property="og:site_name" content="Developer Marketing Alliance"> <meta property="og:type" content="article"> <meta property="og:title" content="What is developer experience (DevEx)?"> <meta property="og:description" content="You’ll want to create the best possible experience for your developer audience, from content to a smooth onboarding process, in order for them to stay satisfied with your offerings and company."> <meta property="og:url" content="https://www.developermarketing.io/what-is-developer-experience-devex/"> <meta property="og:image" content="https://www.developermarketing.io/content/images/size/w1200/2024/01/DMA_Meta_Hub_developer-experience.png"> <meta property="article:published_time" content="2024-01-24T12:45:33.000Z"> <meta property="article:modified_time" content="2024-01-24T12:45:33.000Z"> <meta property="article:tag" content="Guides"> <meta property="article:publisher" content="https://www.facebook.com/Dev-Mar-Com-104156045444631"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="What is developer experience (DevEx)?"> <meta name="twitter:description" content="You’ll want to create the best possible experience for your developer audience, from content to a smooth onboarding process, in order for them to stay satisfied with your offerings and company."> <meta name="twitter:url" content="https://www.developermarketing.io/what-is-developer-experience-devex/"> <meta name="twitter:image" content="https://www.developermarketing.io/content/images/size/w1200/2024/01/DMA_Meta_Hub_developer-experience.png"> <meta name="twitter:label1" content="Written by"> <meta name="twitter:data1" content="Teresa Garanhel"> <meta name="twitter:label2" content="Filed under"> <meta name="twitter:data2" content="Guides"> <meta name="twitter:site" content="@DevMarCom"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "publisher": { "@type": "Organization", "name": "Developer Marketing Alliance", "url": "https://www.developermarketing.io/", "logo": { "@type": "ImageObject", "url": "https://www.developermarketing.io/content/images/2024/07/DMA-FULL-LOGO-SECONDARY--ON-WHITE-.png" } }, "author": { "@type": "Person", "name": "Teresa Garanhel", "image": { "@type": "ImageObject", "url": "https://www.developermarketing.io/content/images/2022/04/1549900816180.jpeg", "width": 400, "height": 400 }, "url": "https://www.developermarketing.io/author/teresa/", "sameAs": [] }, "headline": "What is developer experience (DevEx)?", "url": "https://www.developermarketing.io/what-is-developer-experience-devex/", "datePublished": "2024-01-24T12:45:33.000Z", "dateModified": "2024-01-24T12:45:33.000Z", "image": { "@type": "ImageObject", "url": "https://www.developermarketing.io/content/images/size/w1200/2024/01/DMA_Meta_Hub_developer-experience.png", "width": 1200, "height": 630 }, "keywords": "Guides", "description": "You’ll want to create the best possible experience for your developer audience, from content to a smooth onboarding process, in order for them to stay satisfied with your offerings and company.", "mainEntityOfPage": "https://www.developermarketing.io/what-is-developer-experience-devex/" } </script> <meta name="generator" content="Ghost 5.101"> <link rel="alternate" type="application/rss+xml" title="Developer Marketing Alliance" href="https://www.developermarketing.io/rss/"> <script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.46/umd/portal.min.js" data-i18n="true" data-ghost="https://www.developermarketing.io/" data-key="2be6d1425f40575bfdfe2cf338" data-api="https://developer-marketing-alliance.ghost.io/ghost/api/content/" data-locale="en" crossorigin="anonymous"></script><style id="gh-members-styles">.gh-post-upgrade-cta-content, .gh-post-upgrade-cta { display: flex; flex-direction: column; align-items: center; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; text-align: center; width: 100%; color: #ffffff; font-size: 16px; } .gh-post-upgrade-cta-content { border-radius: 8px; padding: 40px 4vw; } .gh-post-upgrade-cta h2 { color: #ffffff; font-size: 28px; letter-spacing: -0.2px; margin: 0; padding: 0; } .gh-post-upgrade-cta p { margin: 20px 0 0; padding: 0; } .gh-post-upgrade-cta small { font-size: 16px; letter-spacing: -0.2px; } .gh-post-upgrade-cta a { color: #ffffff; cursor: pointer; font-weight: 500; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a:hover { color: #ffffff; opacity: 0.8; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a.gh-btn { display: block; background: #ffffff; text-decoration: none; margin: 28px 0 0; padding: 8px 18px; border-radius: 4px; font-size: 16px; font-weight: 600; } .gh-post-upgrade-cta a.gh-btn:hover { opacity: 0.92; }</style><script async src="https://js.stripe.com/v3/"></script> <script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/sodo-search.min.js" data-key="2be6d1425f40575bfdfe2cf338" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/main.css" data-sodo-search="https://developer-marketing-alliance.ghost.io/" data-locale="en" crossorigin="anonymous"></script> <link href="https://www.developermarketing.io/webmentions/receive/" rel="webmention"> <script defer src="/public/cards.min.js?v=3ccf9f31c8"></script> <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=3ccf9f31c8"> <script defer src="/public/comment-counts.min.js?v=3ccf9f31c8" data-ghost-comments-counts-api="https://www.developermarketing.io/members/api/comments/counts/"></script> <script defer src="/public/member-attribution.min.js?v=3ccf9f31c8"></script><style>:root {--ghost-accent-color: #4f36d6;}</style> <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js-eu1.hs-scripts.com/139496063.js"></script> <!-- End of HubSpot Embed Code --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-PCKTC3B');</script> <!-- End Google Tag Manager --> <script>!function () {var reb2b = window.reb2b = window.reb2b || [];if (reb2b.invoked) return;reb2b.invoked = true;reb2b.methods = ["identify", "collect"];reb2b.factory = function (method) {return function () {var args = Array.prototype.slice.call(arguments);args.unshift(method);reb2b.push(args);return reb2b;};};for (var i = 0; i < reb2b.methods.length; i++) {var key = reb2b.methods[i];reb2b[key] = reb2b.factory(key);}reb2b.load = function (key) {var script = document.createElement("script");script.type = "text/javascript";script.async = true;script.src = "https://s3-us-west-2.amazonaws.com/b2bjsstore/b/" + key + "/reb2b.js.gz";var first = document.getElementsByTagName("script")[0];first.parentNode.insertBefore(script, first);};reb2b.SNIPPET_VERSION = "1.0.1";reb2b.load("Y46DJ4H4P361");}();</script> <!-- Start Cookie Script --> <script type="text/javascript"> var _iub = _iub || []; _iub.csConfiguration = {"askConsentAtCookiePolicyUpdate":true,"cookiePolicyInOtherWindow":true,"countryDetection":true,"enableFadp":true,"enableLgpd":true,"enableTcf":true,"floatingPreferencesButtonDisplay":"anchored-center-left","floatingPreferencesButtonZIndex":10,"gdprAppliesGlobally":false,"googleAdditionalConsentMode":true,"lang":"en","lgpdAppliesGlobally":false,"perPurposeConsent":true,"siteId":1712381,"tcfPurposes":{"2":"li_only","7":"li_only","8":"li_only","9":"li_only","10":"li_only","11":"li_only"},"cookiePolicyId":24731467,"i18n":{"en":{"banner":{"title":"The Alliance privacy & cookie controls","dynamic":{"body":"We use cookies to give you the best experience on our website. By continuing to browse, you agree to our cookie policy"}}}}, "banner":{ "acceptButtonColor":"#367AFF","acceptButtonDisplay":true,"backgroundColor":"#09100F","brandBackgroundColor":"#09100F","closeButtonRejects":true,"customizeButtonCaptionColor":"#F9F8F5","customizeButtonColor":"#292626","customizeButtonDisplay":true,"explicitWithdrawal":true,"fontSizeBody":"10px","fontSizeCloseButton":"24px","listPurposes":true,"logo":"https://pma-assets-external.ams3.cdn.digitaloceanspaces.com/alliance-website/ALLIANCE%20FULL%20-%20Secondary_small.svg","linksColor":"#F9F8F5","ownerName":"The Alliance","position":"bottom","prependOnBody":true,"rejectButtonCaptionColor":"#F9F8F5","rejectButtonColor":"#292626","rejectButtonDisplay":true,"showPurposesToggles":true,"showTotalNumberOfProviders":true,"textColor":"#F9F8F5","acceptButtonCaption":"Accept all","rejectButtonCaption":"Reject" }}; </script> <script type="text/javascript" src="https://cs.iubenda.com/autoblocking/1712381.js"></script> <script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/stub-v2.js"></script> <script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js"></script> <script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script> <!-- End Cookie Script --> <!-- Mutiny Script --> <script> (function(){var a=window.mutiny=window.mutiny||{};if(!window.mutiny.client){a.client={_queue:{}};var b=["identify","trackConversion"];var c=[].concat(b,["defaultOptOut","optOut","optIn"]);var d=function factory(c){return function(){for(var d=arguments.length,e=new Array(d),f=0;f<d;f++){e[f]=arguments[f]}a.client._queue[c]=a.client._queue[c]||[];if(b.includes(c)){return new Promise(function(b,d){a.client._queue[c].push({args:e,resolve:b,reject:d});setTimeout(d,500)})}else{a.client._queue[c].push({args:e})}}};c.forEach(function(b){a.client[b]=d(b)})}})(); </script> <script data-cfasync="false" src="https://client-registry.mutinycdn.com/personalize/client/dc82cf9a1e4605e6.js"></script> <!-- End Mutiny Script --> <script id='pixel-script-poptin' src='https://cdn.popt.in/pixel.js?id=5216131db94ff' async='true'></script> <!-- Start Clearbit Script --> <script src="https://tag.clearbitscripts.com/v1/pk_bebaa9db4ca35af82ab4d629c9fade2b/tags.js"></script> <!-- End Clearbit Script --> <!-- Start of Async ProveSource Code --><script>!function(o,i){window.provesrc&&window.console&&console.error&&console.error("ProveSource is included twice in this page."),provesrc=window.provesrc={dq:[],display:function(){this.dq.push(arguments)}},o._provesrcAsyncInit=function(){provesrc.init({apiKey:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50SWQiOiI1ZWEyZTczNTRjNDQ0ZDQ1NzU0OWRhYWUiLCJpYXQiOjE1ODc3MzQzMjZ9.3BTkc-xMOUGxjeDJV_LuZh_FJ956iGxKa9mZGF4TRMA",v:"0.0.4"})};var r=i.createElement("script");r.type="text/javascript",r.async=!0,r["ch"+"ar"+"set"]="UTF-8",r.src="https://cdn.provesrc.com/provesrc.js";var e=i.getElementsByTagName("script")[0];e.parentNode.insertBefore(r,e)}(window,document);</script><!-- End of Async ProveSource Code --> <script> window.proPlusStripeIdList = [ 'price_1NY9D7Eo1YJVPydUpWRGoVGF', 'price_1NizPIEo1YJVPydULbBhp8Lm' ]; </script> <script> var eventsList = [ { 'title': 'Developer Relations Summit', 'date': 'December 3', 'location': '<b>Virtual Summit</b>', 'url': 'https://virtual.developermarketing.io/' }, { 'title': 'Developer Marketing Summit', 'date': 'Catch up OnDemand', 'location': '<b>Online</b>', 'url': 'https://www.developermarketing.io/developer-marketing-summit-nov-2022-ondemand/' }, { 'title': 'Developer Marketing Summit', 'date': 'Catch up OnDemand', 'location': '<b>San Francisco</b>', 'url': 'https://www.developermarketing.io/developer-marketing-summit-san-francisco-2022/' }, { 'title': 'Developer Marketing Summit, March 22', 'date': 'Catch up OnDemand', 'location': '<b>Online</b>', 'url': 'https://www.developermarketing.io/developer-marketing-summit-march-2022-ondemand/' }, ]; </script> <script> window.topNav = [ { name: 'Membership', itemList: [ { name: 'Membership plans', url: '', desc: 'Pick your path', itemList: [ { name: 'Pro membership', url: '/pro-membership/' }, { name: 'Pro+ membership', url: '/pro-plus-membership/' }, { name: 'Team membership', url: '/teams/' } , { name: 'Your taster pack', url: '/your-dma-taster-pack/' } ] }, { name: 'What is included?', desc: 'All you need to succeed', itemList: [ { name: 'Templates & frameworks', url: '/templates-frameworks/' }, { name: 'OnDemand videos', url: '/developer-marketing-ondemand/' }, { name: 'Exclusive content', url: '/tag/exclusive-articles/' }, { name: 'Member perks', url: '/member-perks/' } ] }, { name: 'Take a peek inside', url: '', desc: 'See what the fuss is about', itemList: [ { name: 'Freemium membership', url: '/insider-membership-plan/' }, { name: 'Membership release notes', url: '/whats-new-in-the-developer-marketing-alliance-membership-plans/' } ] }, ] }, { name: 'Certification', itemList: [ { name: 'Developer Marketing Core', desc: 'The essentials of developer marketing', itemList: [ { name: 'Developer Marketing Certified: Core', desc: 'The A to Z of developer marketing', url: 'https://learn.developermarketing.io/course/developer-marketing-certified-core' }, { name: 'View all courses', url: 'https://learn.developermarketing.io/courses' }, ] }, { name: 'Masters Certified', desc: 'Be the go-to expert', itemList: [ { name: 'Developer Relations Certified: Masters', url: 'https://learn.developermarketing.io/course/developer-relations-certified-masters' }, { name: 'Developer Research Certified: Masters', url: 'https://learn.developermarketing.io/course/developer-research-certified-masters' }, { name: 'Digital Developer Marketing Certified: Masters', url: 'https://learn.developermarketing.io/course/digital-developer-marketing-certified-masters' }, { name: 'Developer Content Marketing Certified: Masters', url: 'https://learn.developermarketing.io/course/developer-content-marketing-certified-masters' }, { name: 'Developer Journeys Certified: Masters', url: 'https://learn.developermarketing.io/course/developer-journeys-certified-masters' }, { name: 'View all Masters', url: 'https://learn.developermarketing.io/courses' }, ] }, ] }, { name: 'Resources', itemList: [ { name: 'Content hub', desc: 'DevMar insights on tap', url: '#', itemList: [ { name: 'Articles', url: '/articles/' }, { name: 'Reports', url: '/all-developer-marketing-alliance-reports/' }, { name: 'Guides', url: '/tag/guides/' }, { name: 'Playbooks', url: '/tag/playbooks/' }, { name: 'Podcasts', url: 'https://alliance.ghost.io/podcasts/?filter=podcast-filter-community-devmar' }, { name: 'YouTube', url: 'https://www.youtube.com/@developermarketingalliance' }, { name: 'Newsletter', url: '/newsletter/' }, { name: 'Success stories', url: '/tag/success-stories/' } ] }, { name: 'Research & reports', desc: 'All the intel you need', url: '#', itemList: [ { name: 'AI in Community Management Playbook', desc: 'Get the playbook', url: '/ai-in-community-management-playbook/' }, { name: 'Landscape & Salary Survey 2024-25', desc: 'Have your say', url: '/big-developer-marketing-survey/' }, { name: '6 content marketing hacks for developer marketers', desc: 'Get your copy', url: '/six-content-marketing-hacks-for-developer-marketers-ebook/' }, { name: 'State of Developer Marketing 2023/24', desc: '', url: '/state-of-developer-marketing/' }, { name: 'Tools of Choice Report', desc: '', url: '/developer-marketing-tools-of-choice-report/' }, { name: 'Developer Relations Playbook', desc: '', url: '/the-developer-relations-playbook/' }, { name: 'How Developers Think: A Persona Playbook', desc: '', url: '/how-developers-think-a-persona-playbook/' }, { name: 'Guide to Developer and Community Engagement', desc: '', url: '/guide-to-developer-community-engagement/' }, { name: 'All reports', url: '/all-developer-marketing-alliance-reports/' } ] }, { name: 'Guides', desc: 'Dive into the essentials', url: '/tag/guides/', itemList: [ { name: 'Developer communities', url: '/everything-you-need-to-know-about-developer-communities/' }, { name: 'Developer marketing (B2D)', url: '/your-guide-to-developer-marketing/' }, { name: 'Developer personas', url: '/the-complete-guide-to-developer-personas/' }, { name: 'Developer relations (DevRel)', url: '/what-is-developer-relations-devrel/' }, { name: 'Developer experience', url: '/what-is-developer-experience-devex/' }, { name: 'B2D product positioning', url: '/the-b2d-guide-to-product-positioning/' }, { name: 'SaaS marketing', url: '/what-is-saas-marketing/' }, { name: 'Free essential templates', url: '/4-essential-templates-for-successful-developer-marketers/' }, { name: 'Frequently asked questions', url: '/frequently-asked-questions/' }, { name: 'All guides', url: '/tag/guides/' } ] }, { name: 'Best of the rest', desc: 'Highlights from elsewhere', url: '/', itemList: [ { name: 'DMA framework', desc: 'Download the framework', url: '/developer-marketing-framework/' }, { name: 'DMA IQ test', desc: 'Developer marketing competency test', url: 'https://www.developermarketing.io/developer-marketing-iq/' }, { name: 'Newsletter', desc: 'Monthly developer marketing insights', url: '/newsletter/' }, ] }, ] }, { name: 'Events', itemList: [ { name: 'Virtual events', desc: 'Any time, any place', url: '#', itemList: [ { name: 'DMAnow: Live LinkedIn Webinar', desc: 'Webinar', url: '/tag/dmanow/' }, { name: 'AMA: Katie Miller | Proving business impact', desc: 'December 2-6', url: 'https://developer-marketing-alliance.circle.so/c/ama/dec2' }, { name: 'Developer Relations Summit', desc: 'December 3', url: 'https://virtual.developermarketing.io/' }, ] }, { name: 'In-person events', desc: 'Events all over the world', url: '#', itemList: [ { name: 'Global event calendar', url: 'https://events.developermarketing.io/', target: '_blank' }, ] }, { name: 'Quick links', desc: 'Plan ahead or catch up', url: '#', itemList: [ { name: 'Apply to speak at our events', url: '/developer-marketing-alliance-call-for-speakers/', target: '_blank' }, { name: 'All events', url: 'https://live.developermarketing.io/', target: '_blank' }, ] } ] }, { name: 'Community', itemList: [ { name: 'Network', url: '#', desc: 'Connect and collaborate', itemList: [ { name: 'Slack community', url: '/join-the-developer-marketing-alliance-community/' }, { name: 'Meetups', url: '/dma-in-person-meetups/' }, { name: 'Meet the ambassadors', url: '/meet-the-ambassadors/' } ] }, { name: 'Learn', url: '#', desc: 'Level up your career', itemList: [ { name: 'Developer Marketing Alliance LinkedIn', url: 'https://www.linkedin.com/company/developer-marketing-alliance/' }, { name: 'Developer Marketing Alliance Awards | 2024 Finalists', url: 'https://www.developermarketing.io/developer-marketing-awards-2024-your-finalists/' }, { name: 'Become an ambassador', url: '/become-dma-ambassador/' }, { name: 'Customer Advisory Board', url: '/developer-marketing-alliance-customer-advisory-board/' } ] }] }, { name: 'About', itemList: [ { name: 'The basics', desc: 'Our journey & how to reach us', url: '#', itemList: [ { name: 'Mission', url: '/about-developer-marketing-alliance/' }, { name: 'Partner with us', url: '/partner-with-us/' }, { name: 'Contact', url: '/contact/' } ] }, { name: 'Our people', desc: 'The crew behind our community', url: '#', itemList: [ { name: 'Meet the Developer Marketing Alliance team', url: '/meet-the-team/' }, { name: 'Create & contribute', url: '/create-contribute/' } ] }] }, { name: "What's new?", url: '#', class: 'nav-whats-new' } ]; </script> <script> if (window.location.pathname === '/articles/') { document.title = 'Developer marketing articles | Developer Marketing Alliance'; } </script> <script>(function(w,r){w._rwq=r;w[r]=w[r]||function(){(w[r].q=w[r].q||[]).push(arguments)}})(window,'rewardful');</script> <script async src='https://r.wdfl.co/rw.js' data-rewardful='737c05'></script> <script> window.isTOCenabled = true; </script> </head> <body class="home-template post-template tag-guides"> <div class="site-wrapper"> <div class="inner nav-wrapper"> <div class="site-header-content"> <a href="/"> <div class="site-title"> <img class="site-logo" src="/content/images/size/w600/2024/07/DMA-FULL-LOGO-SECONDARY--ON-WHITE-.png" alt="Developer Marketing Alliance" /> </div> </a> </div> <nav class="site-nav"> <div class="site-nav-left"> <div class="nav-login"> <a class="button primary small" href="/signin/">Log in</a> <a class="button primary small button-green" href="/signup">Membership</a> </div> <div class="nav-icons" data-ghost-search> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg> </div> <!-- <div class="nav-icons nav-mobile"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg> </div> --> <div class="modular-navigation"></div> <div class="nav-icons nav-mobile-modular"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg> </div> <!-- <ul class="nav"> <li class="nav-home"><a href="https://www.developermarketing.io/">Home</a></li> </ul> --> </div> </nav> <script> if (window.topNav) { document.addEventListener('mouseover', (evt) => { let targetElement = evt.target; do { if (targetElement instanceof Element && targetElement.closest('.site-nav-left') || targetElement instanceof Element && targetElement.closest('.modular-navigation') || targetElement instanceof Element && targetElement.classList.contains('modular-navigation-main') || targetElement instanceof Element && targetElement.classList.contains('modular-navigation')) { return; } targetElement = targetElement.parentNode; } while (targetElement); const thisElementChildrenWrapper = document.querySelectorAll('.modular-navigation-item-wrapper'); const selectAllThisElementChildrenWrapperSub = document.querySelectorAll('.modular-navigation-item-sub-wrapper-active'); if (!document.querySelector('.modular-navigation-item-wrapper-active')) return; for (let i = 0; i < thisElementChildrenWrapper.length; i++) { thisElementChildrenWrapper[i].classList.remove('modular-navigation-item-wrapper-active'); setTimeout(() => { thisElementChildrenWrapper[i].style.display = 'none'; for (let c = 0; c < selectAllThisElementChildrenWrapperSub.length; c++) { selectAllThisElementChildrenWrapperSub[c].classList.remove('modular-navigation-item-sub-wrapper-active'); selectAllThisElementChildrenWrapperSub[c].style.display = 'none'; } }, 10); } const thisElementChildrenWrapperThird = document.querySelectorAll('.modular-navigation-item-sub-third-wrapper'); const selectAllThisElementChildrenWrapperSubThird = document.querySelectorAll('.modular-navigation-item-sub-third-wrapper-active'); for (let i = 0; i < thisElementChildrenWrapperThird.length; i++) { thisElementChildrenWrapperThird[i].classList.remove('modular-navigation-item-sub-third-wrapper-active'); setTimeout(() => { thisElementChildrenWrapperThird[i].style.display = 'none'; for (let c = 0; c < selectAllThisElementChildrenWrapperSubThird.length; c++) { selectAllThisElementChildrenWrapperSubThird[c].classList.remove('modular-navigation-item-sub-third-wrapper-active'); selectAllThisElementChildrenWrapperSubThird[c].style.display = 'none'; } }, 10); } }); const getModularNavigation = document.querySelector('.modular-navigation'); function modularNavHandleOnClik(event) { const thisElement = event.target; const thisElementParent = thisElement.parentNode; const thisElementChildrenWrapper = thisElementParent.querySelector('.modular-navigation-item-wrapper'); const selectAllThisElementChildrenWrapperSub = document.querySelectorAll('.modular-navigation-item-sub-wrapper-active'); if (thisElementChildrenWrapper.classList.contains('modular-navigation-item-wrapper-active')) { thisElementChildrenWrapper.classList.remove('modular-navigation-item-wrapper-active'); setTimeout(() => { thisElementChildrenWrapper.style.display = 'none'; for (let c = 0; c < selectAllThisElementChildrenWrapperSub.length; c++) { selectAllThisElementChildrenWrapperSub[c].classList.remove('modular-navigation-item-sub-wrapper-active'); selectAllThisElementChildrenWrapperSub[c].style.display = 'none'; } }, 310); return; } const selectAllThisElementChildrenWrapper = document.querySelectorAll('.modular-navigation-item-wrapper'); for (let i = 0; i < selectAllThisElementChildrenWrapper.length; i++) { if (selectAllThisElementChildrenWrapper[i].classList.contains('modular-navigation-item-wrapper-active')) { selectAllThisElementChildrenWrapper[i].classList.remove('modular-navigation-item-wrapper-active'); setTimeout(() => { selectAllThisElementChildrenWrapper[i].style.display = 'none'; for (let c = 0; c < selectAllThisElementChildrenWrapperSub.length; c++) { selectAllThisElementChildrenWrapperSub[c].classList.remove('modular-navigation-item-sub-wrapper-active'); selectAllThisElementChildrenWrapperSub[c].style.display = 'none'; } }, 310); } } setTimeout(() => { thisElementChildrenWrapper.style.display = 'flex'; setTimeout(() => { thisElementChildrenWrapper.classList.add('modular-navigation-item-wrapper-active'); }, 1); }, 10); } function modularNavHandleOnClikSub(event) { const thisElement = event.target; const thisElementParent = thisElement.classList.contains('modular-navigation-item') ? thisElement : thisElement.parentNode; const thisElementChildrenWrapper = thisElementParent.querySelector('.modular-navigation-item-sub-wrapper'); if (thisElementChildrenWrapper) { if (thisElementChildrenWrapper.classList.contains('modular-navigation-item-sub-wrapper-active')) { thisElementChildrenWrapper.classList.remove('modular-navigation-item-sub-wrapper-active'); setTimeout(() => { thisElementChildrenWrapper.style.display = 'none'; }, 310); return; } const selectAllThisElementChildrenWrapper = document.querySelectorAll('.modular-navigation-item-sub-wrapper'); for (let i = 0; i < selectAllThisElementChildrenWrapper.length; i++) { if (selectAllThisElementChildrenWrapper[i].classList.contains('modular-navigation-item-sub-wrapper-active')) { selectAllThisElementChildrenWrapper[i].classList.remove('modular-navigation-item-sub-wrapper-active'); setTimeout(() => { selectAllThisElementChildrenWrapper[i].style.display = 'none'; }, 310); } } setTimeout(() => { thisElementChildrenWrapper.style.display = 'flex'; setTimeout(() => { thisElementChildrenWrapper.classList.add('modular-navigation-item-sub-wrapper-active'); }, 1); }, 10); } const selectAllThisElementChildrenWrapper = document.querySelectorAll('.modular-navigation-item-sub-third-wrapper'); for (let i = 0; i < selectAllThisElementChildrenWrapper.length; i++) { if (selectAllThisElementChildrenWrapper[i].classList.contains('modular-navigation-item-sub-third-wrapper-active')) { selectAllThisElementChildrenWrapper[i].classList.remove('modular-navigation-item-sub-third-wrapper-active'); setTimeout(() => { selectAllThisElementChildrenWrapper[i].style.display = 'none'; }, 310); } } } function modularNavHandleOnClikSubThird(event) { const thisElement = event.target; const thisElementParent = thisElement.classList.contains('modular-navigation-item') ? thisElement : thisElement.parentNode; const thisElementChildrenWrapper = thisElementParent.querySelector('.modular-navigation-item-sub-third-wrapper'); if (thisElementChildrenWrapper) { if (thisElementChildrenWrapper.classList.contains('modular-navigation-item-sub-third-wrapper-active')) { thisElementChildrenWrapper.classList.remove('modular-navigation-item-sub-third-wrapper-active'); setTimeout(() => { thisElementChildrenWrapper.style.display = 'none'; }, 310); return; } const selectAllThisElementChildrenWrapper = document.querySelectorAll('.modular-navigation-item-sub-third-wrapper'); for (let i = 0; i < selectAllThisElementChildrenWrapper.length; i++) { if (selectAllThisElementChildrenWrapper[i].classList.contains('modular-navigation-item-sub-third-wrapper-active')) { selectAllThisElementChildrenWrapper[i].classList.remove('modular-navigation-item-sub-third-wrapper-active'); setTimeout(() => { selectAllThisElementChildrenWrapper[i].style.display = 'none'; }, 310); } } setTimeout(() => { thisElementChildrenWrapper.style.display = 'flex'; setTimeout(() => { thisElementChildrenWrapper.classList.add('modular-navigation-item-sub-third-wrapper-active'); }, 1); }, 10); } } for (let i = 0; i < topNav.length; i++) { const thisModNav = topNav[i]; const thisModNavWrapper= document.createElement('div'); thisModNavWrapper.classList.add('modular-navigation-wrapper'); if (thisModNav.itemList) { const thisModNavMain = document.createElement('div'); thisModNavMain.classList.add('modular-navigation-main'); thisModNavMain.classList.add('modular-navigation-main-width-list'); if (thisModNav.class) thisModNavMain.classList.add(thisModNav.class); thisModNavMain.textContent = thisModNav.name ? thisModNav.name : ''; thisModNavWrapper.appendChild(thisModNavMain); thisModNavMain.addEventListener('mouseenter', modularNavHandleOnClik); const thisModItemWrapper = document.createElement('div'); thisModItemWrapper.classList.add('modular-navigation-item-wrapper'); for (var b = 0; b < thisModNav.itemList.length; b++) { const thisModItem = thisModNav.itemList[b]; if (thisModItem.itemList) { } if (!thisModItem.url && !thisModItem.itemList) continue; const thisModNavItem = thisModItem.itemList ? document.createElement('div') : document.createElement('a'); thisModNavItem.classList.add('modular-navigation-item'); thisModNavItem.classList.add('modular-navigation-item-list-wrapper'); if (thisModItem.class) thisModNavItem.classList.add(thisModItem.class); if (thisModItem.url) thisModNavItem.setAttribute('href', thisModItem.url); if (thisModItem.target) thisModNavItem.setAttribute('target', thisModItem.target); const thisModNavHtext = document.createElement('h5'); thisModNavHtext.textContent = thisModItem.name ? thisModItem.name : ''; thisModNavItem.appendChild(thisModNavHtext); if (thisModItem.desc) { const thisModNavPtext = document.createElement('p'); thisModNavPtext.textContent = thisModItem.desc; thisModNavItem.appendChild(thisModNavPtext); } if (thisModItem.itemList) { const thisModNavItemSubWrapper = document.createElement('div'); thisModNavItemSubWrapper.classList.add('modular-navigation-item-sub-wrapper'); for (let d = 0; d < thisModItem.itemList.length; d++) { const thisModItemSub = thisModItem.itemList[d]; const thisModNavItemSub = thisModItemSub.itemList ? document.createElement('div') : document.createElement('a'); thisModNavItemSub.classList.add('modular-navigation-item-third'); thisModNavItemSub.classList.add('modular-navigation-item'); if (thisModItemSub.class) thisModNavItemSub.classList.add(thisModItemSub.class); if (thisModItemSub.url) thisModNavItemSub.setAttribute('href', thisModItemSub.url); if (thisModItemSub.target) thisModNavItemSub.setAttribute('target', thisModItemSub.target); const thisModNavHtext = document.createElement('h6'); thisModNavHtext.textContent = thisModItemSub.name ? thisModItemSub.name : ''; thisModNavItemSub.appendChild(thisModNavHtext); if (thisModItemSub.desc) { const thisModNavPtext = document.createElement('p'); thisModNavPtext.textContent = thisModItemSub.desc; thisModNavItemSub.appendChild(thisModNavPtext); } thisModNavItemSubWrapper.appendChild(thisModNavItemSub); } thisModNavItem.appendChild(thisModNavItemSubWrapper); } thisModItemWrapper.appendChild(thisModNavItem); } thisModNavWrapper.appendChild(thisModItemWrapper); } else { const thisModNavMain = document.createElement('a'); thisModNavMain.classList.add('modular-navigation-main'); if (thisModNav.class) thisModNavMain.classList.add(thisModNav.class); thisModNavMain.setAttribute('href', thisModNav.url); if (thisModNav.target) thisModNavMain.setAttribute('target', thisModNav.target); thisModNavMain.textContent = thisModNav.name ? thisModNav.name : ''; thisModNavWrapper.appendChild(thisModNavMain); } getModularNavigation.appendChild(thisModNavWrapper); } const getModularNavMobile = document.querySelector('.nav-mobile-modular'); const thisModNavClose = document.createElement('div'); thisModNavClose.classList.add('modular-navigation-close'); thisModNavClose.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg>'; getModularNavigation.appendChild(thisModNavClose); thisModNavClose.addEventListener('click', function() { getModularNavigation.classList.remove('modular-navigation-visible'); }); getModularNavMobile.addEventListener('click', function() { getModularNavigation.classList.add('modular-navigation-visible'); }); } if (document.querySelector('.nav-jobs a')) document.querySelector('.nav-jobs a').setAttribute('target', '_blank'); if (document.querySelector('.nav-pmm-q-a a')) document.querySelector('.nav-pmm-q-a a').setAttribute('target', '_blank'); </script> </div> <div class="search-results"> <div class="search-results-close"> x close </div> <div id="search-field-wrapper"> <form> <input id="search-field" class="st-default-search-input" placeholder="Start typing..."/> </form> </div> <div id="results" class="st-search-container">Nothing to display...</div> <div class="search-tags"> <div class="search-tags-view">or view by:</div> <a href="/tag/developer-marketing">Developer Marketing</a> <a href="/tag/developer-communities">Developer Communities</a> <a href="/tag/developer-relations">Developer Relations</a> <a href="/tag/product-adoption-and-customer-success">Product adoption</a> </div> </div> <div class="social-links social-links-fixed"> <a href="https://www.linkedin.com/company/developer-marketing-alliance/" target="_blank" rel="noopener"><?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve"> <g> <g> <path class="st0" d="M18.5,0h-17C0.7,0,0,0.6,0,1.4v17.1C0,19.4,0.7,20,1.5,20h17c0.8,0,1.5-0.6,1.5-1.4V1.4C20,0.6,19.3,0,18.5,0 z M5.9,17H3V7.5h3V17z M4.4,6.2c-1,0-1.7-0.8-1.7-1.7c0-0.9,0.8-1.7,1.7-1.7c0.9,0,1.7,0.8,1.7,1.7C6.2,5.4,5.4,6.2,4.4,6.2z M17,17h-3v-4.6c0-1.1,0-2.5-1.5-2.5c-1.5,0-1.8,1.2-1.8,2.5V17h-3V7.5h2.8v1.3h0c0.4-0.8,1.4-1.5,2.8-1.5c3,0,3.6,2,3.6,4.5V17z" /> </g> </g> </svg> </a> <a href="https://twitter.com/DevMarAlliance" target="_blank" rel="noopener"><?xml version="1.0" encoding="iso-8859-1"?> <svg viewBox="0 0 24 24" aria-hidden="true" class="r-18jsvk2 r-4qtqp9 r-yyyyoo r-16y2uox r-8kz0gk r-dnmrzs r-bnwqim r-1plcrui r-lrvibr r-lrsllp"> <g> <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"> </path> </g> </svg></a> <a href="https://www.facebook.com/Developer-Marketing-Community-104156045444631/" target="_blank" rel="noopener"><?xml version="1.0" encoding="iso-8859-1"?> <!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 10.385 20" style="enable-background:new 0 0 10.385 20;" xml:space="preserve"> <g> <path id="f_1_" d="M6.742,20v-9.122h3.061l0.459-3.556h-3.52v-2.27c0-1.029,0.285-1.731,1.762-1.731 l1.882-0.001V0.139C10.06,0.097,8.943,0,7.643,0C4.928,0,3.07,1.657,3.07,4.699v2.622H0v3.556h3.07V20H6.742z"/> </g> </svg> </a> <a href="https://www.instagram.com/developermarketingalliance/" target="_blank" rel="noopener"><?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" id="Logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <g> <path d="M256,49.47c67.27,0,75.23,0.26,101.8,1.47c24.56,1.12,37.9,5.22,46.78,8.67c11.76,4.57,20.15,10.03,28.97,18.84 c8.82,8.82,14.28,17.21,18.84,28.97c3.45,8.88,7.55,22.22,8.67,46.78c1.21,26.56,1.47,34.53,1.47,101.8s-0.26,75.23-1.47,101.8 c-1.12,24.56-5.22,37.9-8.67,46.78c-4.57,11.76-10.03,20.15-18.84,28.97c-8.82,8.82-17.21,14.28-28.97,18.84 c-8.88,3.45-22.22,7.55-46.78,8.67c-26.56,1.21-34.53,1.47-101.8,1.47s-75.24-0.26-101.8-1.47c-24.56-1.12-37.9-5.22-46.78-8.67 c-11.76-4.57-20.15-10.03-28.97-18.84c-8.82-8.82-14.28-17.21-18.84-28.97c-3.45-8.88-7.55-22.22-8.67-46.78 c-1.21-26.56-1.47-34.53-1.47-101.8s0.26-75.23,1.47-101.8c1.12-24.56,5.22-37.9,8.67-46.78c4.57-11.76,10.03-20.15,18.84-28.97 c8.82-8.82,17.21-14.28,28.97-18.84c8.88-3.45,22.22-7.55,46.78-8.67C180.77,49.73,188.73,49.47,256,49.47 M256,4.08 c-68.42,0-77,0.29-103.87,1.52c-26.81,1.22-45.13,5.48-61.15,11.71c-16.57,6.44-30.62,15.05-44.62,29.06 C32.36,60.37,23.74,74.42,17.3,90.98c-6.23,16.02-10.49,34.34-11.71,61.15C4.37,179,4.08,187.58,4.08,256 c0,68.42,0.29,77,1.52,103.87c1.22,26.81,5.48,45.13,11.71,61.15c6.44,16.57,15.05,30.62,29.06,44.62 c14.01,14.01,28.05,22.62,44.62,29.06c16.02,6.23,34.34,10.49,61.15,11.71c26.87,1.23,35.45,1.52,103.87,1.52s77-0.29,103.87-1.52 c26.81-1.22,45.13-5.48,61.15-11.71c16.57-6.44,30.62-15.05,44.62-29.06c14.01-14.01,22.62-28.05,29.06-44.62 c6.23-16.02,10.49-34.34,11.71-61.15c1.23-26.87,1.52-35.45,1.52-103.87s-0.29-77-1.52-103.87c-1.22-26.81-5.48-45.13-11.71-61.15 c-6.44-16.57-15.05-30.62-29.06-44.62c-14.01-14.01-28.05-22.62-44.62-29.06c-16.02-6.23-34.34-10.49-61.15-11.71 C333,4.37,324.42,4.08,256,4.08L256,4.08z"/> <path d="M256,126.64c-71.45,0-129.36,57.92-129.36,129.36S184.55,385.36,256,385.36S385.36,327.45,385.36,256 S327.45,126.64,256,126.64z M256,339.97c-46.38,0-83.97-37.6-83.97-83.97s37.6-83.97,83.97-83.97c46.38,0,83.97,37.6,83.97,83.97 S302.38,339.97,256,339.97z"/> <circle cx="390.48" cy="121.52" r="30.23"/> </g> </svg> </a> <a href="https://dev-mar-com.slack.com/join/shared_invite/zt-10ogsse5h-HzlGgf8ln_ButCSJzwJRcw#/shared-invite/email" target="_blank" rel="noopener"><?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.8 122.8" style="enable-background:new 0 0 122.8 122.8;" xml:space="preserve"> <g> <g> <path class="st0" d="M25.8,77.6c0,7.1-5.8,12.9-12.9,12.9S0,84.7,0,77.6c0-7.1,5.8-12.9,12.9-12.9h12.9V77.6z"/> <path class="st0" d="M32.3,77.6c0-7.1,5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v32.3c0,7.1-5.8,12.9-12.9,12.9s-12.9-5.8-12.9-12.9 C32.3,109.9,32.3,77.6,32.3,77.6z"/> </g> <g> <path class="st0" d="M45.2,25.8c-7.1,0-12.9-5.8-12.9-12.9S38.1,0,45.2,0s12.9,5.8,12.9,12.9v12.9H45.2z"/> <path class="st0" d="M45.2,32.3c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9H12.9C5.8,58.1,0,52.3,0,45.2s5.8-12.9,12.9-12.9 C12.9,32.3,45.2,32.3,45.2,32.3z"/> </g> <g> <path class="st0" d="M97,45.2c0-7.1,5.8-12.9,12.9-12.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9H97V45.2z"/> <path class="st0" d="M90.5,45.2c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9V12.9C64.7,5.8,70.5,0,77.6,0 c7.1,0,12.9,5.8,12.9,12.9V45.2z"/> </g> <g> <path class="st0" d="M77.6,97c7.1,0,12.9,5.8,12.9,12.9c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9V97H77.6z"/> <path class="st0" d="M77.6,90.5c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h32.3c7.1,0,12.9,5.8,12.9,12.9 c0,7.1-5.8,12.9-12.9,12.9H77.6z"/> </g> </g> </svg> </a> <a href="https://www.youtube.com/@developermarketingalliance/videos" target="_blank" rel="noopener"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 176 124"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="M180.32,53.36A22.12,22.12,0,0,0,164.76,37.7C151,34,96,34,96,34s-55,0-68.76,3.7A22.12,22.12,0,0,0,11.68,53.36C8,67.18,8,96,8,96s0,28.82,3.68,42.64A22.12,22.12,0,0,0,27.24,154.3C41,158,96,158,96,158s55,0,68.76-3.7a22.12,22.12,0,0,0,15.56-15.66C184,124.82,184,96,184,96S184,67.18,180.32,53.36ZM78,122.17V69.83L124,96Z" transform="translate(-8 -34)"/></svg> </a> <a href="https://www.tiktok.com/@dm_alliance" target="_blank" rel="noopener"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-tiktok" viewBox="0 0 16 16"> <path d="M9 0h1.98c.144.715.54 1.617 1.235 2.512C12.895 3.389 13.797 4 15 4v2c-1.753 0-3.07-.814-4-1.829V11a5 5 0 1 1-5-5v2a3 3 0 1 0 3 3z"/> </svg></a> </div> <main id="site-main" class="site-main outer site-main-post has-post-image"> <div class="feature-post-wrapper"> <article class="post-full post tag-guides "> <section class="post-full-content Guides"> <header class="post-full-header"> <div class="post-full-header-wrapper"> <section class="post-full-meta"> <time class="post-full-meta-date" datetime=" 2024-01-24">24 January 2024</time> <span class="reading-time">11 min read</span> </section> <h1 class="post-full-title">What is developer experience (DevEx)?</h1> <section class="post-full-meta"> <a href="/tag/guides/">Guides</a> </section> <div class="post-author-with-linkedin-wrapper"> <div class="post-author-wrapper"> <section class="post-full-authors"> <section class="author-card"> <a href="/author/teresa/"> <img class="author-profile-image" src="/content/images/size/w300/2022/04/1549900816180.jpeg" alt="Teresa Garanhel" /> <section class="author-card-content"> <h4 class="author-card-name">Teresa Garanhel</h4> <div class="post-full-footer-right"> <div class="author-card-button">Read More</div> </div> </section> </a> </section> </section> </div> </div> </div> <div class="post-full-image" style="background-image: url(/content/images/2024/01/DMA_Meta_Hub_developer-experience.png);"> </div> </header> <div class="post-content"> <aside class="toc-container"> </aside> <p>Creating the best developer experience (DevEx) is paramount, but it can also be a challenge. Overall, DevEx is a critical factor in the success of technical products, as it directly impacts the experience and satisfaction of the developers who use them.</p><h2 id="what-is-developer-experience"><strong>What is developer experience?</strong></h2><p>Developer experience refers to how developers feel when working with a particular technical product, tool, or service. DevEx includes the entire developer journey, from the initial evaluation and testing to the ongoing use and maintenance of the product.</p><p>The term developer experience emerged in the early 2010s as a response to the growing importance of <a href="https://www.developermarketing.io/everything-you-need-to-know-about-developer-communities/"><u>developer communities</u></a> in the tech industry. Before this, the focus was primarily on user experience (UX) and customer experience (CX).</p><p>The rise of cloud computing and <a href="https://www.developermarketing.io/what-is-saas-marketing/"><u>software-as-a-service (SaaS)</u></a> platforms led to a growing need for developers to integrate and customize these services. As a result, companies began to realize the importance of providing a positive experience for devs using their platforms and tools.</p><p>The concept of developer experience was first popularized by companies like Heroku, which promoted the idea of a developer-centric platform. Heroku emphasized the importance of providing a simple, intuitive, and productive experience for devs building applications on their platform.</p><p>Other companies soon followed, and the concept of DevEx began to gain traction as a key factor in the success of developer-focused products. Today, DevEx is seen as crucial for companies that rely on dev communities, and it’s a pivotal factor in attracting and retaining top developer talent.</p><p>Developers look for tools that are easy to use, well-documented, and provide quick and accurate results. They also want access to helpful support and resources that can assist them in solving any issues.</p><p>A positive DevEx can also lead to increased productivity, faster innovation, and better software quality. To improve developer experience, companies may focus on providing excellent documentation, great user interfaces, seamless integration with other tools, and proactive support. They may also gather feedback from their <a href="https://www.developermarketing.io/how-can-developer-marketers-get-the-most-out-of-developer-communities/"><u>developer community</u></a> to understand <a href="https://www.developermarketing.io/5-developer-pain-points-backed-by-dev-marketing-pros/"><u>developer pain points</u></a> and opportunities for improvement.</p><h2 id="what-makes-a-great-developer-experience"><strong>What makes a great developer experience?</strong></h2><p>Daniel Palma, Data Engineering Manager at Brooklyn Data Co., considers bad documentation, the lack of free trials, no community support, and no preparation for software engineering practices, <a href="https://www.developermarketing.io/the-developer-experience-dx-formula/"><u>huge mistakes when trying to offer developers the best experience</u></a>.</p><p>So, what makes a good DevEx? A.K.A., what are some developer experience best practices to keep in mind?</p><h3 id="community-support"><strong>Community support</strong></h3><p>As Palma says, “You don't have to create a community, but make sure you do your best to enable the creation of one and support and nurture it to your best abilities — the members will be your best friends in business development.”</p><p><a href="https://www.developermarketing.io/what-is-the-impact-of-your-developer-community/"><u>Developer communities can have a huge impact</u></a> on organizations. For example, in our <a href="https://www.developermarketing.io/state-of-developer-marketing/"><u>State of Developer Marketing 2023/24 Report</u></a>, 50% of our respondents said their communities allow them to gather developer feedback, which is a huge benefit of belonging to groups like these.</p><p>Having a robust and responsive support system in place, as well as an <a href="https://www.developermarketing.io/top-developer-community-guidelines-you-should-be-using/"><u>active community with clear guidelines</u></a>, can greatly enhance developer experience. So, ensure you have access to expert help, forums, and user groups.</p><figure class="kg-card kg-image-card"><img src="https://lh7-us.googleusercontent.com/mm0OeAqUsXUbfogvgIgyMS0YaGjipb83HBv-aKTeNGIwiQhoh6jtPsW3xKgKyZDM8G0AkN8rbhiY_KIb5NaowQw2T20bVhKzmdJCrFIwkEHQBvZIe6XJZlySh6iJjm6Fc1GNXT5FHZ59WCSOo0phj4Y" class="kg-image" alt="" loading="lazy" width="1412" height="586"></figure><h3 id="great-code-and-apis"><strong>Great code and APIs</strong></h3><p>In order to offer a fantastic experience to your <a href="https://www.developermarketing.io/the-complete-guide-to-developer-personas/"><u>developer audience</u></a>, you’ll want to provide well-documented code and APIs, since this helps developers to quickly understand how to use your product or contribute to a project. Some even use AI tools, <a href="https://www.developermarketing.io/how-can-developers-use-chatgpt/"><u>like ChatGPT, to help build code samples</u></a>.</p><p>However you decide to create it, quality is vital, as it will impact the experience of the users. So, ensure they:</p><ul><li>Are easy to understand and use,</li><li>Cut down the time developers need to spend on figuring out API functionalities,</li><li>Showcase how to create clean and efficient code,</li><li>Cover common use cases and help developers avoid mistakes, and</li><li>Create confidence and trust in your product.</li></ul><h3 id="solid-documentation"><strong>Solid documentation</strong></h3><blockquote>“Incorrect documentation is often worse than no documentation.” – <strong>Bertrand Meyer, Professor of Software Engineering and Provost</strong></blockquote><p>Having documentation is a vital component of the product development process—it also equips developers with the tools they need to easily use a product, API, or platform. <a href="https://www.developermarketing.io/spilling-the-tea-on-writing-for-developers-as-a-marketer/"><u>Technical documentation</u></a> can be used to onboard new users, provide customer support, and so much more.</p><p><a href="https://www.developermarketing.io/how-to-create-killer-saas-documentation-for-developers/"><u>All documentation should be accurate</u></a> and reviewed often, up-to-date, and easy to read. The inclusion of graphs and other visuals can help to make your docs more accessible and digestible.</p><p>You can also offer great <a href="https://www.developermarketing.io/writing-great-technical-tutorials-for-developers/"><u>tutorials</u></a> and <a href="https://www.developermarketing.io/10-interactive-demo-software-to-elevate-your-product-demonstrations/"><u>demos</u></a> to ensure your developers have the best experience with your product or platform.</p><hr><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.developermarketing.io/writing-great-technical-tutorials-for-developers/%C2%A0"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Writing great technical tutorials for developers</div><div class="kg-bookmark-description">Whether you’re a software engineer who’s been asked to write something for your company’s blog or documentation, or you’re a non-technical marketing person who’s trying to help their contributors improve their skills, here’s how you can write better tutorials.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.developermarketing.io/content/images/size/w256h256/2021/07/DMC-33_logomark_square-02-1.png" alt=""><span class="kg-bookmark-author">Developer Marketing Alliance</span><span class="kg-bookmark-publisher">Karl Hughes</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.developermarketing.io/content/images/size/w1200/2023/04/lee-campbell-6njoEbtarec-unsplash.jpeg" alt=""></div></a></figure><p></p><hr><h3 id="free-trials"><strong>Free trials</strong></h3><p>Offering a free trial can be extremely beneficial for orgs. They allow developers to have experience using your product, which is crucial since devs enjoy a hands-on experience. </p><p>They also reduce the risk of developers feeling like they wasted money on the wrong product—with a free trial, your audience gets to test out the product’s features and functionalities, and understand whether they’re suitable to their needs without having to commit financially.</p><p>And, by letting developers play around, you help them build a case for your product with the stakeholders in their business. Win-win.</p><p>Free trials can lead to increased trust and credibility as well, since orgs are showing how much they believe in their product and are willing to let it speak for itself. You can also gather feedback from developers by allowing them a trial of your product, which can help you to streamline DevEx.</p><p>And, of course, you make it easy for <a href="https://www.developermarketing.io/the-importance-of-developer-advocates/"><u>developers to become advocates</u></a> by providing a high-quality trial experience too.</p><h3 id="the-right-tools"><strong>The right tools</strong></h3><p>Another important element of great developer experience is tooling.</p><p>For example, effective frameworks that simplify common tasks and onboarding tools for a smooth process, managed APIs, low- or no-code experience to make workflows easier, and more, help you to offer a great DevEx.</p><blockquote>“The success of a product isn't just about creating a brilliant solution—it's about ensuring that users embrace it with open arms. Yet, product adoption and onboarding often pose challenges for product teams.</blockquote><blockquote>“The steep learning curve of some tools leaves users feeling baffled. On top of that, unhelpful onboarding experiences make it even harder for them to become proficient with the product.</blockquote><blockquote>“So, how can product teams overcome these challenges? By using the right tools that help understand how users interact with their products and optimize the onboarding process for a smoother product experience.” – <a href="https://www.developermarketing.io/9-product-adoption-and-onboarding-tools-for-amazing-product-experiences/"><strong><u>Hasanpasha Abdulov, SaaS content specialist</u></strong></a></blockquote><p>You can also consider hiring a Developer Experience Engineer; they specialize in creating efficient experiences for developers by helping the product development process, for instance.</p><h3 id="smooth-onboarding"><strong>Smooth onboarding </strong></h3><p>A smooth, as well as quick and easy setup, is crucial to provide developers a good experience with your product. Users should be able to get up and running with minimal setup time, so ensure that your product’s installation process is easy, your getting-started guides are clear, and there are minimal configuration obstacles.</p><p>On top of this, every tool and platform you provide needs to perform efficiently, with minimal lag or downtime—reliability is crucial to make sure developers can work without interruption.</p><hr><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.developermarketing.io/how-to-create-a-great-developer-onboarding-process/%C2%A0"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to create a great developer onboarding process</div><div class="kg-bookmark-description">A developer’s first impression of your product matters. What value do they see in it? Are there any features that jump out to them immediately? What journey are you taking your users on?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.developermarketing.io/content/images/size/w256h256/2021/07/DMC-33_logomark_square-02-1.png" alt=""><span class="kg-bookmark-author">Developer Marketing Alliance</span><span class="kg-bookmark-publisher">Teresa Garanhel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.developermarketing.io/content/images/size/w1200/2023/09/duncan-meyer-xruML_FcCOk-unsplash.jpeg" alt=""></div></a></figure><p></p><hr><h3 id="responsive-support"><strong>Responsive support</strong></h3><p>While your tutorials and guides should minimize the need for support, developers may still have questions or may encounter issues—so, in order to offer a great experience, ensure you’re also providing access to responsive and helpful support.</p><p>From community forums and chat support to detailed FAQs and troubleshooting guides, there are several ways to make sure developers have everything they need to use your product.</p><p>After all, good communication is invaluable. In fact, in our <a href="https://www.developermarketing.io/state-of-developer-marketing/"><u>State of Developer Marketing Report</u></a>, communication was considered the most essential skill for developer marketers, with a representation of 92%.</p><h3 id="regular-updates"><strong>Regular updates</strong></h3><p>In order for developers to have the best experience with your product, you’ll want to continuously improve and update it (based on feedback and industry standards, for example). This way, devs have access to the latest features and security updates.</p><p>This can be hard work if you’re responsible for several products—like <a href="https://www.developermarketing.io/state-of-developer-marketing/"><u>28% of our survey respondents</u></a>, who support five or more products in their company—but necessary.</p><figure class="kg-card kg-image-card"><img src="https://lh7-us.googleusercontent.com/B4gZzlJNhTD5WGFwX2ml6-mE7Oka5_AOp8PiNq541JuC281f4u9YMsxwi1jIFKgHu2ZzSs5OocliixTjDpmWihjIW_nibwgDcXAtpiwoChqqmAGOXxLKYK76B5R5_MZkLNZ0S08H--wEN79XqpLW-mk" class="kg-image" alt="" loading="lazy" width="1326" height="804"></figure><h3 id="seamless-integration-with-other-tools"><strong>Seamless integration with other tools</strong></h3><p>The ability to easily integrate with other tools and services in the developer’s workflow is crucial, especially as developers use several products. This includes compatibility with common development environments, version control systems, and deployment platforms.</p><h2 id="benefits-of-a-strong-developer-experience"><strong>Benefits of a strong developer experience</strong></h2><p>Investing in developer experience has several benefits for companies, developers, and end users. By providing a positive, efficient, and productive experience for devs, you can drive success and growth in today’s fast-paced tech landscape.</p><p>Here are a few reasons why you should prioritize developer experience:</p><ul><li><strong>Increased adoption and retention</strong>: a positive experience makes developers more likely to adopt and continue using your product—so, user-friendliness, effectiveness, and overall satisfaction are key for long-term adoption.</li><li><strong>Better product advocacy</strong>: when developers are happy with your product, they can become advocates, recommending it to peers and within their networks. This type of marketing is invaluable and can lead to your product reaching a wider audience.</li><li><strong>Valuable feedback and improvement</strong>: developers are technically savvy and can provide <a href="https://www.developermarketing.io/the-science-behind-feedback-gathering-from-developers/"><u>insightful feedback</u></a>; if they have a good experience with your product, they’re more likely to provide constructive feedback, which allows you to improve and tweak your offerings.</li><li><strong>Building a developer community</strong>: a great DevEx helps in building a strong, loyal <a href="https://www.developermarketing.io/everything-you-need-to-know-about-developer-communities/"><u>community</u></a> around your product.</li><li><strong>Cut down support costs</strong>: if developers find your product easy and intuitive to use, they won’t need as much support, which reduces the burden on your support team and associated costs.</li><li><strong>Increased productivity</strong>: if your product is well-designed and user-friendly, you’re helping developers to become more productive, and they’ll spend less time figuring out how to use a tool or platform and more time on actual development work.</li><li><strong>Competitive advantage</strong>: nowadays, there are many products offering similar features, so having a great user experience can help you <a href="https://www.developermarketing.io/the-best-competitive-strategy-for-each-stage-in-the-business-lifecycle/"><u>differentiate yourself from your competitors</u></a>.</li><li><strong>Great reputation</strong>: by providing a fantastic DevEx, you can help enhance your brand’s reputation and, considering developers talk to each other and get recommendations from their peers, this can help you boost product sales/subscriptions.</li></ul><h2 id="developer-experience-metrics"><strong>Developer experience metrics</strong></h2><p>Measuring developer experience involves a combination of qualitative and quantitative metrics, which help you to understand how developers interact with your product, their satisfaction levels, and any areas for improvement.</p><p>Some key developer experience metrics include:</p><h3 id="adoption-rate"><strong>Adoption rate</strong></h3><p>This metric measures how many developers start using your product over a given period of time, with a higher rate indicating interest and perceived value in your offerings.</p><hr><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.developermarketing.io/9-product-adoption-and-onboarding-tools-for-amazing-product-experiences/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">9 product adoption and onboarding tools for amazing product experiences</div><div class="kg-bookmark-description">The success of a product isn’t just about creating a brilliant solution—it’s about ensuring that users embrace it with open arms. Yet, product adoption and onboarding often pose challenges for product teams.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.developermarketing.io/content/images/size/w256h256/2021/07/DMC-33_logomark_square-02-1.png" alt=""><span class="kg-bookmark-author">Developer Marketing Alliance</span><span class="kg-bookmark-publisher">Hasanpasha Abdulov</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.developermarketing.io/content/images/size/w1200/2023/10/drew-beamer-3SIXZisims4-unsplash--1-.jpeg" alt=""></div></a></figure><p></p><hr><h3 id="retention-rate"><strong>Retention rate</strong></h3><p>This tracks how many developers continue to use your product over time. Higher rates suggest that customers find ongoing value in your product.</p><h3 id="usage"><strong>Usage </strong></h3><p>Usage metrics include data on how frequently developers interact with your product and how frequently they use it, which can involve tracking feature usage, session length, and activity patterns.</p><h3 id="net-promoter-score-nps"><strong>Net Promoter Score (NPS)</strong></h3><p>This metric gauges the likelihood of developers recommending your product to others; you can use surveys for this by asking a simple question: “How likely are you to recommend your product to a friend or colleague?”</p><p>Developers then rate it on a scale of 0 to 10, with 0 being ‘not at all likely’ and 10 being ‘extremely likely’. Their responses are grouped into:</p><ul><li>Promoters (score 9-10): developers who are enthusiastic about your product and likely to recommend it to others.</li><li>Passives (score 7-8): developers who are satisfied but not particularly loyal or enthusiastic about your product.</li><li>Detractors (score 0-6): customers who are unhappy with your product and may even speak badly about it to others.</li></ul><p>The formula to calculate this is: % promoters - % detractors = NPS</p><p>The resulting figure can range between -100 (everyone’s a detractor) to +100 (everyone’s a promoter).</p><h3 id="issue-resolution-time"><strong>Issue resolution time</strong></h3><p>This metric is all about the average time that takes to resolve issues reported by developers, with faster resolution times helping to improve the overall developer experience.</p><h3 id="community-engagement"><strong>Community engagement</strong></h3><p>It’s also important to measure the activity and engagement within developer forums, social media, community groups, etc. Active and positive engagement often indicates a healthy experience.</p><hr><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.developermarketing.io/5-strategies-for-building-a-developer-community-2/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">5 strategies for building a developer community</div><div class="kg-bookmark-description">You’ve got something awesome that game developers should want. But how do you get them engaged, let alone build a strong developer community along the lines of Unity or Niantic?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.developermarketing.io/content/images/size/w256h256/2021/07/DMC-33_logomark_square-02-1.png" alt=""><span class="kg-bookmark-author">Developer Marketing Alliance</span><span class="kg-bookmark-publisher">Dan Butchko</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.developermarketing.io/content/images/size/w1200/2023/09/john-schnobrich-2FPjlAyMQTA-unsplash.jpeg" alt=""></div></a></figure><p></p><hr><h3 id="api-performance-metrics"><strong>API performance metrics</strong></h3><p>If you offer APIs, monitoring their uptime, response time, and error rates, for example, is essential. A good API performance is often critical to developers, and can help you provide a solid experience.</p><h3 id="documentation-quality"><strong>Documentation quality</strong></h3><p>This evaluates the effectiveness of your documentation, which can be measured through feedback surveys, usage patterns, and the frequency of updates.</p><h3 id="feature-request-implementation"><strong>Feature request implementation</strong></h3><p>You’ll also want to track how often and quickly features requested by developers are implemented—it’s important to show responsiveness to the needs of your audience, and this can help you give developers that experience.</p><h3 id="customer-support"><strong>Customer support</strong></h3><p>Customer support metrics measure how effective your support team is in assisting developers. You can track things like first response time, satisfaction with interactions, and resolution rate.</p><h3 id="churn-rate"><strong>Churn rate</strong></h3><p>This is the rate at which developers stop using your product. A lower churn rate indicates higher satisfaction levels and loyalty.</p><hr><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.developermarketing.io/the-customer-health-score-how-to-master-this-metric/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The customer health score: How to master this metric</div><div class="kg-bookmark-description">When analyzing your accounts (your customers), the customer health score offers you the ability to predict the longevity of this business relationship.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.developermarketing.io/content/images/size/w256h256/2021/07/DMC-33_logomark_square-02-1.png" alt=""><span class="kg-bookmark-author">Developer Marketing Alliance</span><span class="kg-bookmark-publisher">Grace Gupta</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.developermarketing.io/content/images/size/w1200/2023/01/edward-howell-VlTJdP8ZY1c-unsplash.jpg" alt=""></div></a></figure><p></p><hr><h2 id="creating-a-developer-experience-team"><strong>Creating a developer experience team</strong></h2><p>Having a developer experience team is a key step for orgs wanting to make sure developers have a positive and efficient experience with their software, tools, and platforms.</p><p>A DevEx team usually consists of a cross-functional group of people who bring a variety of skills and expertise to the table.</p><p>Some roles you can have in your team include:</p><ul><li>Product managers</li><li>User experience designers</li><li>Technical writers</li><li>Developer advocates</li><li>Support team</li><li>Quality assurance specialists</li></ul><h2 id="in-short"><strong>In short</strong></h2><p>You’ll want to create the best possible experience for your developer audience, from content to a smooth onboarding process, in order for them to stay satisfied with your offerings and company.</p><p>We can help you ensure a solid experience—check out our membership options (both <a href="https://www.developermarketing.io/pro-membership/"><u>Pro</u></a> and <a href="https://www.developermarketing.io/pro-plus-membership/"><u>Pro+</u></a>) and what we’re offering, which you can use to apply in your day-to-day, such as access to courses, a free ticket to our in-person summit, exclusive content, hours of ondemand video, and so much more.</p><p>You can also join our <a href="https://www.developermarketing.io/join-the-developer-marketing-alliance-community/">Slack community</a> to network with other marketers and developers, discuss topics like DevEx, and stay up to date with the latest trends in developer marketing.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.developermarketing.io/join-the-developer-marketing-alliance-community/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Join the community | Developer Marketing Alliance</div><div class="kg-bookmark-description">The Developer Marketing Alliance Slack community is the perfect place to connect with like-minded marketers across the globe. You’ll be able to learn and grow alongside your peers, ask questions, find job opportunities, see the latest content, and much more.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.developermarketing.io/content/images/size/w256h256/2021/07/DMC-33_logomark_square-02-1.png" alt=""><span class="kg-bookmark-author">Developer Marketing Alliance</span><span class="kg-bookmark-publisher">Developer Marketing Alliance</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.developermarketing.io/content/images/size/w1200/2022/01/DMC_Meta_Landing_Pages_5.jpg" alt=""></div></a></figure><p></p><p></p><p></p> </div> <aside class="post-upgrade-cta hidden-upgrade"> <div class="post-upgrade-cta-content"> <img src="/content/images/2024/07/android-chrome-192x192--2-.png" alt="Developer Marketing Alliance icon" class="site-logo" /> <h2>Like what you see? Then check out tonnes more.</h2> <p class="post-upgrade-cta-desc"> From exclusive content by industry experts and an ever-increasing bank of templates, to 100s of hours’ worth of presentations and mentors, our membership plans are packed with awesome developer marketing resources. </p> <div class="post-upgrade-buttons-wrapper"> <a class="button large primary" href="/signup/">Subscribe now</a> </div> </div> </aside> <aside class="post-upgrade-cta get-cert-cta" style="display:none;"> <div class="post-upgrade-cta-content"> <img src="/content/images/2024/07/android-chrome-192x192--2-.png" alt="Developer Marketing Alliance icon" class="site-logo" /> <h2>Get product marketing certified.</h2> <p class="post-upgrade-cta-desc"> PMMC™ unleashes product marketers’ potential. Lauded by leading lights like Facebook and HubSpot, it offers expert insights, priceless tuition, and awesome resources. No topic missed. No page unturned. </p> <div class="post-upgrade-buttons-wrapper"> <a class="button large primary" href="https://certified.productmarketingalliance.com/p/product-marketing-certified-core" target="_blank">Get certified</a> </div> </div> </aside> <section class="post-full-authors post-full-authors-with-bio"> <section class="author-card"> <div class="post-full-authors-content"> <p>Written by: </p> </div> <a href="/author/teresa/"> <img class="author-profile-image" src="/content/images/size/w300/2022/04/1549900816180.jpeg" alt="Teresa Garanhel" /> <section class="author-card-content"> <h4 class="author-card-name">Teresa Garanhel</h4> <p>Teresa is the editorial lead for Developer Marketing Alliance. She's authored countless articles on developer marketing and keeps a finger on the pulse of the B2D community.</p> <div class="post-full-footer-right"> <div class="author-card-button">Read More</div> </div> </section> </a> </section> </section> </section> <section class="subscribe-form"> <p>Get industry insights</p> <form data-members-form="subscribe"> <input data-members-email type="email" required="true" placeholder="youremail@example.com" /> <br> <button type="submit">Join</button> </form> </section> <aside class="read-next"> <aside class="read-more-wrap outer"> <header class="read-next-card-header"> <h3><span>More in</span> <a href="/tag/guides/">Guides</a></h3> </header> <div class="read-more inner"> <article class="post-card"> <a class="post-card-image-link" href="/the-complete-guide-to-developer-personas/"> <img class="post-card-image" src="/content/images/size/w800/2024/10/What-are-developer-personas--Your-complete-guide.png" alt="What are developer personas? Your complete guide" /> </a> <div class="post-card-content"> <div class="post-visibility-public" href="/signin">Members-only</div> <a class="post-card-content-link" href="/the-complete-guide-to-developer-personas/"> <header class="post-card-header"> <h2 class="post-card-title">What are developer personas? Your complete guide</h2> </header> <section class="post-card-excerpt"> <p>Learn how to create and use developer personas to build better products. Includes practical examples, templates, and expert tips for understanding your technical audience....</p> </section> </a> <footer class="post-card-meta"> <ul class="author-list"> </ul> <span class="reading-time">20 min read</span> </footer> </div> </article> <article class="post-card"> <a class="post-card-image-link" href="/everything-you-need-to-know-about-developer-communities/"> <img class="post-card-image" src="/content/images/size/w800/2024/07/DMA_Framework_Tiles_community-2.jpg" alt="Everything you need to know about developer communities" /> </a> <div class="post-card-content"> <div class="post-visibility-public" href="/signin">Members-only</div> <a class="post-card-content-link" href="/everything-you-need-to-know-about-developer-communities/"> <header class="post-card-header"> <h2 class="post-card-title">Everything you need to know about developer communities</h2> </header> <section class="post-card-excerpt"> <p>Whether you’re building a developer community from scratch or joining an existing, active one, you’ll find that investing time and effort into a dev community offers many benefits to both developers and marketers. We’re taking a look at them in this article....</p> </section> </a> <footer class="post-card-meta"> <ul class="author-list"> </ul> <span class="reading-time">20 min read</span> </footer> </div> </article> <article class="post-card"> <a class="post-card-image-link" href="/what-is-saas-marketing/"> <img class="post-card-image" src="/content/images/size/w800/2023/03/DMA_Meta_product_SaaS.png" alt="What is SaaS marketing?" /> </a> <div class="post-card-content"> <div class="post-visibility-public" href="/signin">Members-only</div> <a class="post-card-content-link" href="/what-is-saas-marketing/"> <header class="post-card-header"> <h2 class="post-card-title">What is SaaS marketing?</h2> </header> <section class="post-card-excerpt"> <p>With so many SaaS companies in the market, you may find it challenging to attract new customers, reach your target audience, boost your brand awareness, and drive sales. This is where SaaS marketing comes in....</p> </section> </a> <footer class="post-card-meta"> <ul class="author-list"> </ul> <span class="reading-time">32 min read</span> </footer> </div> </article> </div> </aside> </aside> </article> </div> </main> <div class="floating-header"> <div class="floating-header-logo"> <a href="https://www.developermarketing.io"> <img src="/content/images/size/w100/2024/07/android-chrome-192x192--2-.png" alt="Developer Marketing Alliance icon" /> <span>Developer Marketing Alliance</span> </a> </div> <span class="floating-header-divider">—</span> <div class="floating-header-title">What is developer experience (DevEx)?</div> <div class="floating-header-share"> <a class="floating-header-share-tw" href="https://twitter.com/share?text=What%20is%20developer%20experience%20(DevEx)%3F&url=https://www.developermarketing.io/what-is-developer-experience-devex/" onclick="window.open(this.href, 'share-twitter', 'width=550,height=235');return false;"> <?xml version="1.0" encoding="iso-8859-1"?> <svg viewBox="0 0 24 24" aria-hidden="true" class="r-18jsvk2 r-4qtqp9 r-yyyyoo r-16y2uox r-8kz0gk r-dnmrzs r-bnwqim r-1plcrui r-lrvibr r-lrsllp"> <g> <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"> </path> </g> </svg> </a> <a class="floating-header-share-fb" href="https://www.facebook.com/sharer/sharer.php?u=https://www.developermarketing.io/what-is-developer-experience-devex/" onclick="window.open(this.href, 'share-facebook','width=580,height=296');return false;"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M19 6h5V0h-5c-3.86 0-7 3.14-7 7v3H8v6h4v16h6V16h5l1-6h-6V7c0-.542.458-1 1-1z"/></svg> </a> <a class="floating-header-share-linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.developermarketing.io/what-is-developer-experience-devex/" onclick="window.open(this.href, 'share-facebook','width=580,height=496');return false;"> <?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve"> <g> <g> <path class="st0" d="M18.5,0h-17C0.7,0,0,0.6,0,1.4v17.1C0,19.4,0.7,20,1.5,20h17c0.8,0,1.5-0.6,1.5-1.4V1.4C20,0.6,19.3,0,18.5,0 z M5.9,17H3V7.5h3V17z M4.4,6.2c-1,0-1.7-0.8-1.7-1.7c0-0.9,0.8-1.7,1.7-1.7c0.9,0,1.7,0.8,1.7,1.7C6.2,5.4,5.4,6.2,4.4,6.2z M17,17h-3v-4.6c0-1.1,0-2.5-1.5-2.5c-1.5,0-1.8,1.2-1.8,2.5V17h-3V7.5h2.8v1.3h0c0.4-0.8,1.4-1.5,2.8-1.5c3,0,3.6,2,3.6,4.5V17z" /> </g> </g> </svg> </a> </div> <progress id="reading-progress" class="progress" value="0"> <div class="progress-container"> <span class="progress-bar"></span> </div> </progress> </div> <!-- link tag --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.12.3/tocbot.css" /> <!-- script tag --> <script src="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.12.3/tocbot.min.js"></script> <script> if (window.isTOCenabled) { document.querySelector('.toc-container').innerHTML = '<div class="toc"></div>'; tocbot.init({ tocSelector: '.toc', contentSelector: '.post-content' }); } </script> <div class="footer"> <div class="footer-wrapper"> <div class="site-footer-content"> <div class="site-footer-content-logo"> <a href="/"> <img src="https://www.developermarketing.io/assets/img/sales/DMA%20FULL%20LOGO%20WHITE.svg?v=3ccf9f31c8" /> </a> </div> <div class="site-footer-content-title"> The only dedicated and community resource specific to developer marketing. All the resources you need, all the expert insights you want. </div> </div> <div class="site-footer-social social-links"> <a href="https://www.linkedin.com/company/developer-marketing-alliance/" target="_blank" rel="noopener"><?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve"> <g> <g> <path class="st0" d="M18.5,0h-17C0.7,0,0,0.6,0,1.4v17.1C0,19.4,0.7,20,1.5,20h17c0.8,0,1.5-0.6,1.5-1.4V1.4C20,0.6,19.3,0,18.5,0 z M5.9,17H3V7.5h3V17z M4.4,6.2c-1,0-1.7-0.8-1.7-1.7c0-0.9,0.8-1.7,1.7-1.7c0.9,0,1.7,0.8,1.7,1.7C6.2,5.4,5.4,6.2,4.4,6.2z M17,17h-3v-4.6c0-1.1,0-2.5-1.5-2.5c-1.5,0-1.8,1.2-1.8,2.5V17h-3V7.5h2.8v1.3h0c0.4-0.8,1.4-1.5,2.8-1.5c3,0,3.6,2,3.6,4.5V17z" /> </g> </g> </svg> </a> <a href="https://twitter.com/DevMarAlliance" target="_blank" rel="noopener"><?xml version="1.0" encoding="iso-8859-1"?> <svg viewBox="0 0 24 24" aria-hidden="true" class="r-18jsvk2 r-4qtqp9 r-yyyyoo r-16y2uox r-8kz0gk r-dnmrzs r-bnwqim r-1plcrui r-lrvibr r-lrsllp"> <g> <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"> </path> </g> </svg></a> <a href="https://www.facebook.com/Developer-Marketing-Community-104156045444631/"><?xml version="1.0" encoding="iso-8859-1"?> <!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 10.385 20" style="enable-background:new 0 0 10.385 20;" xml:space="preserve"> <g> <path id="f_1_" d="M6.742,20v-9.122h3.061l0.459-3.556h-3.52v-2.27c0-1.029,0.285-1.731,1.762-1.731 l1.882-0.001V0.139C10.06,0.097,8.943,0,7.643,0C4.928,0,3.07,1.657,3.07,4.699v2.622H0v3.556h3.07V20H6.742z"/> </g> </svg> </a> <a href="https://www.instagram.com/developermarketingalliance/" target="_blank" rel="noopener"><?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" id="Logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <g> <path d="M256,49.47c67.27,0,75.23,0.26,101.8,1.47c24.56,1.12,37.9,5.22,46.78,8.67c11.76,4.57,20.15,10.03,28.97,18.84 c8.82,8.82,14.28,17.21,18.84,28.97c3.45,8.88,7.55,22.22,8.67,46.78c1.21,26.56,1.47,34.53,1.47,101.8s-0.26,75.23-1.47,101.8 c-1.12,24.56-5.22,37.9-8.67,46.78c-4.57,11.76-10.03,20.15-18.84,28.97c-8.82,8.82-17.21,14.28-28.97,18.84 c-8.88,3.45-22.22,7.55-46.78,8.67c-26.56,1.21-34.53,1.47-101.8,1.47s-75.24-0.26-101.8-1.47c-24.56-1.12-37.9-5.22-46.78-8.67 c-11.76-4.57-20.15-10.03-28.97-18.84c-8.82-8.82-14.28-17.21-18.84-28.97c-3.45-8.88-7.55-22.22-8.67-46.78 c-1.21-26.56-1.47-34.53-1.47-101.8s0.26-75.23,1.47-101.8c1.12-24.56,5.22-37.9,8.67-46.78c4.57-11.76,10.03-20.15,18.84-28.97 c8.82-8.82,17.21-14.28,28.97-18.84c8.88-3.45,22.22-7.55,46.78-8.67C180.77,49.73,188.73,49.47,256,49.47 M256,4.08 c-68.42,0-77,0.29-103.87,1.52c-26.81,1.22-45.13,5.48-61.15,11.71c-16.57,6.44-30.62,15.05-44.62,29.06 C32.36,60.37,23.74,74.42,17.3,90.98c-6.23,16.02-10.49,34.34-11.71,61.15C4.37,179,4.08,187.58,4.08,256 c0,68.42,0.29,77,1.52,103.87c1.22,26.81,5.48,45.13,11.71,61.15c6.44,16.57,15.05,30.62,29.06,44.62 c14.01,14.01,28.05,22.62,44.62,29.06c16.02,6.23,34.34,10.49,61.15,11.71c26.87,1.23,35.45,1.52,103.87,1.52s77-0.29,103.87-1.52 c26.81-1.22,45.13-5.48,61.15-11.71c16.57-6.44,30.62-15.05,44.62-29.06c14.01-14.01,22.62-28.05,29.06-44.62 c6.23-16.02,10.49-34.34,11.71-61.15c1.23-26.87,1.52-35.45,1.52-103.87s-0.29-77-1.52-103.87c-1.22-26.81-5.48-45.13-11.71-61.15 c-6.44-16.57-15.05-30.62-29.06-44.62c-14.01-14.01-28.05-22.62-44.62-29.06c-16.02-6.23-34.34-10.49-61.15-11.71 C333,4.37,324.42,4.08,256,4.08L256,4.08z"/> <path d="M256,126.64c-71.45,0-129.36,57.92-129.36,129.36S184.55,385.36,256,385.36S385.36,327.45,385.36,256 S327.45,126.64,256,126.64z M256,339.97c-46.38,0-83.97-37.6-83.97-83.97s37.6-83.97,83.97-83.97c46.38,0,83.97,37.6,83.97,83.97 S302.38,339.97,256,339.97z"/> <circle cx="390.48" cy="121.52" r="30.23"/> </g> </svg> </a> <a href="https://dev-mar-com.slack.com/join/shared_invite/zt-10ogsse5h-HzlGgf8ln_ButCSJzwJRcw#/shared-invite/email" target="_blank" rel="noopener"><?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.8 122.8" style="enable-background:new 0 0 122.8 122.8;" xml:space="preserve"> <g> <g> <path class="st0" d="M25.8,77.6c0,7.1-5.8,12.9-12.9,12.9S0,84.7,0,77.6c0-7.1,5.8-12.9,12.9-12.9h12.9V77.6z"/> <path class="st0" d="M32.3,77.6c0-7.1,5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v32.3c0,7.1-5.8,12.9-12.9,12.9s-12.9-5.8-12.9-12.9 C32.3,109.9,32.3,77.6,32.3,77.6z"/> </g> <g> <path class="st0" d="M45.2,25.8c-7.1,0-12.9-5.8-12.9-12.9S38.1,0,45.2,0s12.9,5.8,12.9,12.9v12.9H45.2z"/> <path class="st0" d="M45.2,32.3c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9H12.9C5.8,58.1,0,52.3,0,45.2s5.8-12.9,12.9-12.9 C12.9,32.3,45.2,32.3,45.2,32.3z"/> </g> <g> <path class="st0" d="M97,45.2c0-7.1,5.8-12.9,12.9-12.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9H97V45.2z"/> <path class="st0" d="M90.5,45.2c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9V12.9C64.7,5.8,70.5,0,77.6,0 c7.1,0,12.9,5.8,12.9,12.9V45.2z"/> </g> <g> <path class="st0" d="M77.6,97c7.1,0,12.9,5.8,12.9,12.9c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9V97H77.6z"/> <path class="st0" d="M77.6,90.5c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h32.3c7.1,0,12.9,5.8,12.9,12.9 c0,7.1-5.8,12.9-12.9,12.9H77.6z"/> </g> </g> </svg> </a> <a href="https://www.youtube.com/@developermarketingalliance/videos" target="_blank" rel="noopener"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 176 124"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="M180.32,53.36A22.12,22.12,0,0,0,164.76,37.7C151,34,96,34,96,34s-55,0-68.76,3.7A22.12,22.12,0,0,0,11.68,53.36C8,67.18,8,96,8,96s0,28.82,3.68,42.64A22.12,22.12,0,0,0,27.24,154.3C41,158,96,158,96,158s55,0,68.76-3.7a22.12,22.12,0,0,0,15.56-15.66C184,124.82,184,96,184,96S184,67.18,180.32,53.36ZM78,122.17V69.83L124,96Z" transform="translate(-8 -34)"/></svg> </a> <a href="https://www.tiktok.com/@dm_alliance" target="_blank" rel="noopener"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-tiktok" viewBox="0 0 16 16"> <path d="M9 0h1.98c.144.715.54 1.617 1.235 2.512C12.895 3.389 13.797 4 15 4v2c-1.753 0-3.07-.814-4-1.829V11a5 5 0 1 1-5-5v2a3 3 0 1 0 3 3z"/> </svg></a> </div> <div class="site-footer-links"> <div class="site-footer-links-title"> ABOUT </div> <ul role="menu"> <li class="nav-home nav-current" role="menuitem"><a href="/create-contribute/">Contribute</a></li> <li class="nav-tag" role="menuitem"><a href="/partner-with-us">Media Guide</a></li> <li class="nav-advisory-board" role="menuitem"><a href="/about-developer-marketing-alliance/">Mission</a></li> <li class="nav-advisory-board" role="menuitem"><a href="/privacy-policy">Privacy Policy</a></li> <li class="nav-advisory-board" role="menuitem"><a href="/terms-and-conditions">Terms of Service</a></li> </ul> </div> <div class="site-footer-links"> <div class="site-footer-links-title"> RESOURCES </div> <ul role="menu"> <li class="nav-tag" role="menuitem"><a href="/articles">Articles</a></li> <li class="nav-tag" role="menuitem"><a href="/newsletter/">Newsletter</a></li> <li class="nav-home nav-current" role="menuitem"><a href="#">Podcasts</a></li> <li class="nav-tag" role="menuitem"><a href="#">Reports</a></li> </ul> </div> <div class="site-footer-links"> <div class="site-footer-links-title"> GENERAL </div> <ul role="menu"> <li class="nav-tag" role="menuitem"><a href="https://events.developermarketing.io/" target="_blank">Events</a></li> <li class="nav-advisory-board" role="menuitem"><a href="#">Membership</a></li> <li class="nav-advisory-board" role="menuitem"><a href="/join-the-developer-marketing-alliance-community/">Community</a></li> </ul> </div> <div class="site-footer-categories"> <div class="site-footer-categories-title"> Learn </div> <a href="/tag/developer-marketing">Developer Marketing</a> <a href="/tag/developer-relations">Developer Relations</a> <a href="/tag/product-adoption-and-customer-success">Product Adoption</a> <a href="/tag/business-to-developer">Business-to-Developer</a> <a href="/tag/developer-communities/">Developer Communities</a> </div> </div> </div> </div> <!-- --> <script> var images = document.querySelectorAll('.kg-gallery-image img'); images.forEach(function (image) { var container = image.closest('.kg-gallery-image'); var width = image.attributes.width.value; var height = image.attributes.height.value; var ratio = width / height; container.style.flex = ratio + ' 1 0%'; }) </script> <script> var beamer_config = { product_id : 'UzGVPWEz44788', //DO NOT CHANGE: This is your product code on Beamer selector : '.nav-whats-new' }; </script> <script type="text/javascript" src="https://app.getbeamer.com/js/beamer-embed.js" defer="defer"></script> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PCKTC3B" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <script> const myTimeout = setTimeout(myStopFunction, 1500); function myStopFunction() { var bannerElement = document.getElementById('hs-web-interactives-top-push-anchor'); if (bannerElement) { var navItemWrapper = document.querySelectorAll('.modular-navigation-item-wrapper'); if (navItemWrapper) { console.log("running"); navItemWrapper.forEach(item => { item.style.top = '75px'; }) } } } </script> <script type="text/javascript" src="https://www.developermarketing.io/assets/built/jquery.js?v=3ccf9f31c8" ></script> <script type="text/javascript" src="https://www.developermarketing.io/assets/built/jquery.fitvids.js?v=3ccf9f31c8" ></script> <script type="text/javascript" src="https://www.developermarketing.io/assets/built/ghost-lunr.js?v=3ccf9f31c8" defer></script> <script type="text/javascript" src="https://www.developermarketing.io/assets/built/search.js?v=3ccf9f31c8" defer></script> <script type="text/javascript" src="https://www.developermarketing.io/assets/js/events-calendar.js?v=3ccf9f31c8" defer></script> <script type="text/javascript" src="https://www.developermarketing.io/assets/%20built/jquery.fitvids.js?v=3ccf9f31c8"></script> <script> // NOTE: Scroll performance is poor in Safari // - this appears to be due to the events firing much more slowly in Safari. // Dropping the scroll event and using only a raf loop results in smoother // scrolling but continuous processing even when not scrolling $(document).ready(function () { // Start fitVids var $postContent = $(".post-full-content"); $postContent.fitVids(); // End fitVids var progressBar = document.querySelector('#reading-progress'); var header = document.querySelector('.floating-header'); var title = document.querySelector('.post-full-title'); var lastScrollY = window.scrollY; var lastWindowHeight = window.innerHeight; var lastDocumentHeight = $(document).height(); var ticking = false; function onScroll() { lastScrollY = window.scrollY; requestTick(); } function onResize() { lastWindowHeight = window.innerHeight; lastDocumentHeight = $(document).height(); requestTick(); } function requestTick() { if (!ticking) { requestAnimationFrame(update); } ticking = true; } function update() { var trigger = title.getBoundingClientRect().top + window.scrollY; var triggerOffset = title.offsetHeight + 35; var progressMax = lastDocumentHeight - lastWindowHeight; // show/hide floating header if (lastScrollY >= trigger + triggerOffset) { header.classList.add('floating-active'); } else { header.classList.remove('floating-active'); } progressBar.setAttribute('max', progressMax); progressBar.setAttribute('value', lastScrollY); ticking = false; } window.addEventListener('scroll', onScroll, { passive: true }); window.addEventListener('resize', onResize, false); update(); var getHiddenUpgrade = document.querySelector('.hidden-upgrade'); if (getHiddenUpgrade && isHiddenUpgradeVisible) getHiddenUpgrade.style.display = 'block'; }); // window.inArticleAdList = [ // { // img: 'https://static.ghost.org/v3.0.0/images/publishing-options.png', // url: '/' // }, // { // img: 'https://static.ghost.org/v3.0.0/images/admin-settings.png', // url: '/' // } // ]; if (window.inArticleAdList && !window.inArticleAdListDisabled) { const getSelectPostContent = document.querySelector('.post-content'); const getSelectPostContentLength = parseInt(getSelectPostContent.children.length / 2); const getSelectPostContentItem = getSelectPostContent.children[getSelectPostContentLength]; const thisinPostAd = document.createElement('a'); thisinPostAd.classList.add('post-in-post-ad'); const getRandAdItem = inArticleAdList[Math.floor(Math.random() * inArticleAdList.length)]; thisinPostAd.style.backgroundImage = 'url(' + getRandAdItem.img + ')'; thisinPostAd.setAttribute('href', getRandAdItem.url); thisinPostAd.setAttribute('target', '_blank'); getSelectPostContentItem.parentNode.insertBefore(thisinPostAd, getSelectPostContentItem.nextSibling); } const getCertCta = document.querySelector('.get-cert-cta'); if (window.showGetCertCta && getCertCta) { getCertCta.style.display = 'block'; } </script> <script> window.intercomSettings = { app_id: "ihx5j8jg", user_type: "dma" }; </script> <script> (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/ihx5j8jg';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);};if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})(); </script> </body> </html>