CINXE.COM

The marketer’s guide to building a developer program

<!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>The marketer’s guide to building a developer program</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="Dinesh Chandrasekhar"> <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 = "Dinesh Chandrasekhar"; primary_tag = "Business to Developer"; authors.push("Dinesh Chandrasekhar") tags.push("Business to Developer") 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="Dinesh Chandrasekhar, Head of Product Marketing at Cloudera, shares his insights and experiences about building a developer program."> <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/the-marketers-guide-to-building-a-developer-program/"> <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="The marketer’s guide to building a developer program"> <meta property="og:description" content="Dinesh Chandrasekhar, Head of Product Marketing at Cloudera, shares his insights and experiences about building a developer program."> <meta property="og:url" content="https://www.developermarketing.io/the-marketers-guide-to-building-a-developer-program/"> <meta property="og:image" content="https://www.developermarketing.io/content/images/size/w1200/2022/05/patrick-perkins-ETRPjvb0KM0-unsplash.jpg"> <meta property="article:published_time" content="2022-05-11T10:41:51.000Z"> <meta property="article:modified_time" content="2022-05-11T10:53:58.000Z"> <meta property="article:tag" content="Business to Developer"> <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="The marketer’s guide to building a developer program"> <meta name="twitter:description" content="Dinesh Chandrasekhar, Head of Product Marketing at Cloudera, shares his insights and experiences about building a developer program."> <meta name="twitter:url" content="https://www.developermarketing.io/the-marketers-guide-to-building-a-developer-program/"> <meta name="twitter:image" content="https://www.developermarketing.io/content/images/size/w1200/2022/05/patrick-perkins-ETRPjvb0KM0-unsplash.jpg"> <meta name="twitter:label1" content="Written by"> <meta name="twitter:data1" content="Dinesh Chandrasekhar"> <meta name="twitter:label2" content="Filed under"> <meta name="twitter:data2" content="Business to Developer"> <meta name="twitter:site" content="@DevMarCom"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="800"> <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": "Dinesh Chandrasekhar", "image": { "@type": "ImageObject", "url": "https://www.developermarketing.io/content/images/2022/05/dinesh.jpeg", "width": 200, "height": 200 }, "url": "https://www.developermarketing.io/author/dinesh/", "sameAs": [] }, "headline": "The marketer’s guide to building a developer program", "url": "https://www.developermarketing.io/the-marketers-guide-to-building-a-developer-program/", "datePublished": "2022-05-11T10:41:51.000Z", "dateModified": "2022-05-11T10:53:58.000Z", "image": { "@type": "ImageObject", "url": "https://www.developermarketing.io/content/images/size/w1200/2022/05/patrick-perkins-ETRPjvb0KM0-unsplash.jpg", "width": 1200, "height": 800 }, "keywords": "Business to Developer", "description": "My name is Dinesh Chandrasekhar and, at the time this article was written, I ran\nproduct marketing for the data and motion product line at Cloudera. I&#x27;ve worn\nmany different hats over the years. As a developer, as an architect, I myself\nhave been a developer evangelist at a couple of companies.\n\nToday, as a product marketer, I have a very unique perspective of what it takes\nto build a developer program at various companies. In this article, I&#x27;ll share\nmy insights and my own experiences with you.", "mainEntityOfPage": "https://www.developermarketing.io/the-marketers-guide-to-building-a-developer-program/" } </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-business-to-developer"> <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-business-to-developer featured "> <section class="post-full-content Business to Developer"> <header class="post-full-header"> <div class="post-full-header-wrapper"> <section class="post-full-meta"> <time class="post-full-meta-date" datetime=" 2022-05-11">11 May 2022</time> <span class="reading-time">11 min read</span> </section> <h1 class="post-full-title">The marketer’s guide to building a developer program</h1> <section class="post-full-meta"> <a href="/tag/business-to-developer/">Business to Developer</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/dinesh/"> <img class="author-profile-image" src="/content/images/size/w300/2022/05/dinesh.jpeg" alt="Dinesh Chandrasekhar" /> <section class="author-card-content"> <h4 class="author-card-name">Dinesh Chandrasekhar</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/2022/05/patrick-perkins-ETRPjvb0KM0-unsplash.jpg);"> </div> </header> <div class="post-content"> <aside class="toc-container"> </aside> <p>My name is Dinesh Chandrasekhar and, at the time this article was written, I ran product marketing for the data and motion product line at Cloudera. I've worn many different hats over the years. As a developer, as an architect, I myself have been a developer evangelist at a couple of companies.</p><p>Today, as a product marketer, I have a very unique perspective of what it takes to build a developer program at various companies. In this article, I'll share my insights and my own experiences with you.<br></p><p><strong>Here’s a breakdown of our main talking points:</strong></p><ul><li><a href="https://www.developermarketing.io/the-marketers-guide-to-building-a-developer-program/#developer-marketing-paradox">Developer marketing = paradox</a></li><li><a href="https://www.developermarketing.io/the-marketers-guide-to-building-a-developer-program/#the-developer-program">The developer program</a></li><li><a href="https://www.developermarketing.io/the-marketers-guide-to-building-a-developer-program/#where-does-one-start-to-build-a-developer-program">Where does one start to build a developer program?</a></li><li><a href="https://www.developermarketing.io/the-marketers-guide-to-building-a-developer-program/#measuring-the-success-of-your-developer-program">How to measure the success of your developer program</a></li></ul><p>Let’s dive straight in. 👇<br></p><h2 id="developer-marketing-paradox"><strong>Developer marketing = paradox</strong></h2><p>Let's first define the phrase “developer marketing” and call it out as a paradox. There is no such thing as marketing to a developer. Developers are the best when it comes to sniffing out marketing messages and they'll clearly call them out.</p><p>You have to have a clear strategy, a different strategy than your traditional marketing means to connect with your developer community.</p><h3 id="enable-empower-and-embrace-developers"><strong>Enable, empower and embrace developers</strong></h3><p>How does it work, if you are to enable, empower and embrace developers? This is very important to devs. The fundamental philosophy is, <strong>never market to them</strong>!</p><p>How do you even connect with a breed of personas that detest marketing language? How do you embrace and empower them when they are trying to learn, try, and adopt your product, but, at the same time, you're not supposed to use any kind of flowery marketing language?</p><p>Developers are excited about new tech; they love new technology but, to them, time is currency, which means they need whatever they need right then and there. They can’t go through sign-up processes, long processes of engaging with sales teams, and so forth – if they want an API, they need it yesterday.</p><p>The important thing I also want to emphasize is they love being part of a larger community. This is where they get to share best practices, code samples, and so forth. For you to be successful in engaging with developers, you need to give them that platform and sense of community to build trust with them.</p><h3 id="developers-developers-developers"><strong>Developers! Developers!! Developers!!!</strong></h3><p>There are 27 million developers across the world today and we’re talking about over $40 billion worth of products being consumed, influenced, or purchased by developers. We're looking at a growth of over a trillion APIs by 2035, at least. This is truly a massive market opportunity for us to tap into as marketers but, at the same time, we have to acknowledge that <a href="https://www.developermarketing.io/how-developer-champions-can-help-with-product-adoption/">product adoption </a>starts with them.</p><p>The buyer's journey starts with them. They tend to use our products, they acknowledge they like it, and then they become the champions. They evangelize it, talk about it with their companies, and make it work for us.</p><h2 id="the-developer-program"><strong>The developer program</strong></h2><p>To be successful with a bottom-up approach, you need to make sure you are giving them enough to trust you and try out the products, so they can become champions. To do so, you need a developer program.</p><p>Let’s take a look at what a developer program is, and what it takes to build one.</p><figure class="kg-card kg-image-card"><img src="https://www.developermarketing.io/content/images/2022/05/build-a-dev-program.png" class="kg-image" alt="examples of how to build a developer program" loading="lazy" width="512" height="427"></figure><p></p><h3 id="what-is-the-developer-program"><strong>What is the developer program?</strong></h3><p>What is a developer program and why do you need one? If we agree that nothing considered traditional marketing works for developers, how else are we supposed to connect with them? How are we supposed to embrace and empower them?</p><p>You need a specialist team, which I’ll refer to as the Dev Rel team (or the <a href="https://www.developermarketing.io/developer-relations-and-developer-marketing-they-arent-the-same-thing/">developer relations </a>team). That team, and the resources you offer to this development community, are critical.</p><p>To <a href="https://www.developermarketing.io/what-product-marketers-need-to-know-about-engaging-developer-audiences/">engage with the developers</a>, there needs to be constant care in building, nurturing, and enriching this developer community so you can gain their trust. It’s important to build and preserve this trust as well – you must have an ongoing focus on whatever you do and on how you communicate and engage with these developers.</p><p>This is what a developer program offers: the framework within these specialist teams and the resources that can work with them.</p><h3 id="developer-experience-dx"><strong>Developer experience (DX)</strong></h3><p>Developer experience is another term you may have heard when looking for alternatives for developer programs. A developer experience is a richer and broader way to define what a developer program is. It includes the people, the tools they use to communicate and engage or connect with the developers, and the processes you adopt.</p><p>Again, remember, developers don't like elaborate processes, even though they’re critical for measuring the success of a developer program. The content you offer to the developers, whether it’s rich technical content, documentation, or API docs, needs to also resonate as a part of this experience.</p><p>The events, the platform you offer, the community with which they can exchange various best practices, the thoughts and inputs (and having those discussions in an open forum); all that factors into this thing we call “developer experience”.</p><h3 id="when-would-you-need-a-developer-program"><strong>When would you need a developer program?</strong></h3><p>When would you need to develop a program? What are the types of offerings that you will typically have to warrant a developer program?</p><p>Not all products require one, so let's distinguish and identify which ones do:</p><p><strong>PaaS type platforms like salesforce.com / marketplace</strong></p><p>They've been phenomenal at offering a platform where other companies and other developers can build their own applications. Marketplace offerings like the Apple app store also allow developers to build applications that can help other customers. Providing that kind of platform is a great way to nurture a developer program.</p><p><strong>Interoperable products</strong></p><p>If you have a product offering with APIs that you want developers to consume, you need a developer program.</p><p><strong>Developer / DevOps tools</strong></p><p>Something like Microsoft Visual Studio, for example, allows developers to build all different types of applications using a variety of programming languages. This, in a sense, is what we term a classic example of where you would need a developer program.</p><p><strong>Open source products</strong></p><p>I deal with this day in and day out. Over the last four years, I’ve talked to open source communities and I engage with them. I offer content, mechanisms, events, you name it – the whole developer program that is needed to engage with this community. Open source equals developers.</p><p><strong>If your product's primary end-users are developers</strong></p><p>Your developers are instrumental in building programs that enable other users and users within the platform as well. </p><figure class="kg-card kg-image-card"><img src="https://www.developermarketing.io/content/images/2022/05/pexels-christina-morillo-1181263.jpg" class="kg-image" alt="Two developers talking and pointing at laptop with code on screen" loading="lazy" width="2000" height="1335" srcset="https://www.developermarketing.io/content/images/size/w600/2022/05/pexels-christina-morillo-1181263.jpg 600w, https://www.developermarketing.io/content/images/size/w1000/2022/05/pexels-christina-morillo-1181263.jpg 1000w, https://www.developermarketing.io/content/images/size/w1600/2022/05/pexels-christina-morillo-1181263.jpg 1600w, https://www.developermarketing.io/content/images/size/w2400/2022/05/pexels-christina-morillo-1181263.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p></p><h2 id="where-does-one-start-to-build-a-developer-program"><strong>Where does one start to build a developer program?</strong></h2><h3 id="why-is-this-a-marketer%E2%80%99s-guide"><strong>Why is this a marketer’s guide?</strong></h3><p>A marketer is in the nexus of what’s happening within a company, particularly a product marketer like me. I engage with engineering, product management, sales leadership, and so many different teams cross-functionally.</p><p>I’m right at the crux of all this action happening. I'm also the liaison between all these different teams and I've been doing this in the last several companies I've been working with.</p><p>One of these was CA Technologies. Going back six, seven years ago, when I was tasked with launching a mobile back end as a service product, which was primarily a software development kit (SDK), I realized CA didn’t have a developer-facing front end.</p><p>No developer portal, per se, to connect or communicate with developers; they've never done that because they never had a developer product until that point.</p><p>I ended up launching developer.ca.com for the first time and what I learned from that experience is what I'm sharing with you in this article.</p><h3 id="process-to-kick-off-a-developer-program"><strong>Process to kick off a developer program</strong></h3><p>These are the best practices I learned when I built that developer program at CA. <br></p><p>👍 <strong>Executive sponsorship</strong>: You need to do this because a developer program isn’t done overnight and you aren’t going to see the fruits of your labor right then and there. It takes time to build, meaning there’s a lot of engagement, as you need to build a community from the ground up, and so forth.</p><p>You're looking at 12 to 18 months in terms of seeing actual results from your developer program so you need to have executive buy-in to stay focused on your program and have the backing behind you.<br></p><p>🐯 <strong>Tiger team</strong>: Get all the stakeholders lined up for you; this would be across product management, engineering, sales, etc. Make sure everybody understands what you're doing and why you’re doing it. <br></p><p>📚 <strong>Educate everyone</strong>: If you're starting anew, you need to educate everyone. First, you need to make sure you tell them what a developer program is. I did this by hiring a third-party agency and coaching all of us in one single room. Go get all the stakeholders, the tiger team, in one room, and have the third-party agency train them on what a developer program is and set goals.<br></p><p>📊 <strong>Success metrics</strong>: It's not easy when it comes to developer programs. I guarantee you're going to have multiple opinions from multiple people on what we should be measuring, but the reality is you should stay focused on what is practical and what you should be measuring for a developer program. <br></p><p>🗓 <strong>Project plan/dates</strong>: Have a project plan clearly defined so you have short-term timelines of when certain deliverables will be achieved, as well as long-term of when certain things might happen. This is critical for all the stakeholders to be in sync with the developer program; keep them updated on status and progress as well.<br></p><p>💻 <strong>Developer portal</strong>: This is one of the first things that you will see internally, as well as externally, as the face of the developer program. It’s the façade through which the developers interface with your company and products – you can also offer various types of content to the developers through this.</p><p>Companies that have developer products will have a developer portal through which they offer API docs, technical documentation, and so on.<br></p><p>🤝 <strong>First DevRel hire</strong>: Your first hire might be a developer advocate or a developer evangelist and you want to make sure that person starts on the right foot using the portal as a mechanism. And not just the portal, but also social media and other channels.</p><p>You want a <a href="https://www.developermarketing.io/beyond-stack-overflow-reaching-your-audience/">multi-channel approach for engaging with the developers</a> and the dev community. While you may start with just one evangelist and one advocate, as you grow you will see the need for a community manager, a DevRel director, and a team of developer evangelists.</p><p>You will have more people on the team and start seeing the program expand and the need for more content arises.</p><h3 id="dos-and-donts-of-a-developer-program"><strong>Dos and Don'ts of a developer program</strong><br></h3><h3 id="%F0%9F%91%8D-dos">👍 Dos</h3><ul><li>Internally, facilitate interactions between the various teams (DevRel, engineering, PM, marketing, and others) and primarily use this developer program as a way to interact and interface with all these cross-functional teams. <br></li><li>Externally, you're allowing the developers to easily and quickly access the resources they're looking for. Quick is the keyword here, so make sure they can access these resources instantly and immediately without having to jump through hoops and various processes. <br></li><li>Encourage the community to share best practices, code samples, and conversations. They can do it through Slack, on StackOverflow, and various channels, but the idea is to encourage them. You can also offer your own types of interfacing meetups, hackathons, <a href="https://www.developermarketing.io/join-the-developer-marketing-alliance-community/">Slack channels</a>, developer events, and more.<br><br></li></ul><h3 id="%F0%9F%91%8E-don%E2%80%99ts">👎 Don’ts</h3><ul><li>Don't use marketing lingo because developers can sniff that out very easily.<br></li><li>Don't expect leads from engagement and sales revenues from all this; eventually, it will happen, but don't expect them.<br></li><li>Don't send too many emails for lead nurturing, which is also a big turnoff for developers. It's okay to send emails but the emails should be more of a newsletter type that includes technical content and product updates and asks them for input.<br></li><li>Don't invite developers to marketing events, they don't like it. <br></li></ul><figure class="kg-card kg-image-card"><img src="https://www.developermarketing.io/content/images/2022/05/pexels-lukas-574071.jpg" class="kg-image" alt="person working on laptop with code on screen" loading="lazy" width="2000" height="1325" srcset="https://www.developermarketing.io/content/images/size/w600/2022/05/pexels-lukas-574071.jpg 600w, https://www.developermarketing.io/content/images/size/w1000/2022/05/pexels-lukas-574071.jpg 1000w, https://www.developermarketing.io/content/images/size/w1600/2022/05/pexels-lukas-574071.jpg 1600w, https://www.developermarketing.io/content/images/size/w2400/2022/05/pexels-lukas-574071.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p></p><h2 id="measuring-the-success-of-your-developer-program"><strong>Measuring the success of your developer program</strong></h2><p>This is what measuring the success of your developer program boils down to.</p><h3 id="product-metrics"><strong>Product metrics</strong></h3><p>Product metrics are primarily about the number of calls made to your API; as I just explained, the number of downloads of your trial or your SDK.</p><p>More importantly, the number of product feedback inputs that you get from the community is truly telling of your engagement skills within the community. The more you engage with the community, the more trust you build.</p><p>They're gonna give you more input about your product, what works and what doesn't work, how it could be better, etc.</p><h3 id="community-metrics"><strong>Community metrics</strong></h3><p>As marketers, we all tend to understand communities to a fair degree. We can measure the number of community members and the monthly growth – it’s pretty standard because you can look at social media metrics, likes, followers, etc.</p><p>If you are looking at having a separate social media account for your channel for your dev program, then that would be different, because now you are tracking specifically for that particular channel and the engagements that occur with that.</p><p>You might even need a specialized social media manager for your own digital team but, again, it depends on your company and your corporate strategy. You may choose to have the same channel for one or both but it's important to track the engagement from those levels.</p><h3 id="experience-metrics"><strong>Experience metrics</strong></h3><p>The experience metrics are very critical for us. They’re essential to understanding the number of users and signups to the site across several channels.</p><p>What is most important and interesting, and even harder to measure, is the developer satisfaction scores. The more you engage with them, their trust in you (if they feel happy with the overall developer experience that you offer as a company and as a product) starts to kick in.</p><p>That's where you begin realizing the developers and the community actually love your product, your company, the way you present it to them, and the way you engage with them.</p><p>Gamification metrics are also fantastic ways to engage your developer community. Microsoft mastered this years ago when they created the MVP program. They had different types of honors and badges and many companies have adopted similar types of models.</p><p>I’d encourage you to think about that because that's how you grow champions beyond your company. You can hire a few people who can speak for you about your product but it’s paid engagements or your own employees talking about it.</p><p>However, unsolicited championing on their own is something that you will not be able to get unless you are doing a great job at developer engagement with this developer program. When truly great, awesome products are delivered to developers the right way, developers become the champions for you as they start talking about it within their own companies.</p><p>That's where the whole ‘land and expand’ opportunities come into play. Once a developer loves and starts talking about it to the larger developer community within that company, your product automatically gets adopted within that company. That's how you grow.<br></p><h2 id="to-wrap-up"><strong>To wrap up</strong></h2><p>I'll leave you with this last thought: <em><strong>the amount of time that it takes a developer program to be successful, from baseline to growth, is measured in years, not months or quarters.</strong></em> I cannot emphasize this more.</p><p>As you embark on this journey to build a development program within your company, you will realize many stakeholders are going to ask you, “hey, what are you guys doing? I know you have your DevRel team, is there talking to developers and all that? Where do I see any metrics or measurable, quantifiable metrics that say that you guys are doing a good job?”.<br></p><p>Time is a currency for developers but it's an investment for us as well. You need to invest the time in your developer community, nurture them and build that trust; that's most important. You have to come across as credible to win their trust and that's when they become the champions.</p><p>Then, you start seeing the fruits of your labor come into play. You start seeing your pipeline automatically grow and more inbound conversations coming in – for example, “we would like to have your company come in and do XYZ deal”, or they’ll have an opportunity, a conversation, engagement, or even a request for proposal.<br></p><hr><p><em>Want more articles like this? Get fresh content in your inbox by </em><a href="https://www.developermarketing.io/newsletter/"><em>signing up for our newsletter</em></a><em>.</em></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.developermarketing.io/newsletter/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Newsletter | Developer Marketing Alliance</div><div class="kg-bookmark-description">Get developer marketing news straight to your inbox every month and enjoy talking points, updates, and much more - like cheeky sneak-peeks of what’s to come.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.developermarketing.io/favicon.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/2022/01/DMC_Meta_Landing_Pages_8.jpg" alt=""></div></a></figure> </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/dinesh/"> <img class="author-profile-image" src="/content/images/size/w300/2022/05/dinesh.jpeg" alt="Dinesh Chandrasekhar" /> <section class="author-card-content"> <h4 class="author-card-name">Dinesh Chandrasekhar</h4> <p>Marketing Executive | Public Speaker | Photographer | Filmmaker | Forbes Communications Council Member</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/business-to-developer/">Business to Developer</a></h3> </header> <div class="read-more inner"> <article class="post-card"> <a class="post-card-image-link" href="/the-role-of-product-marketers-in-achieving-product-market-fit/"> <img class="post-card-image" src="/content/images/size/w800/2024/06/ashkan-forouzani-m0l9NBCivuk-unsplash.jpeg" alt="The role of product marketers in achieving product-market fit" /> </a> <div class="post-card-content"> <div class="post-visibility-public" href="/signin">Members-only</div> <a class="post-card-content-link" href="/the-role-of-product-marketers-in-achieving-product-market-fit/"> <header class="post-card-header"> <h2 class="post-card-title">The role of product marketers in achieving product-market fit</h2> </header> <section class="post-card-excerpt"> <p>While founders traditionally lead the charge towards PMF, there&#39;s a growing conversation about the potential role of product marketers (PMMs) in this early-stage process....</p> </section> </a> <footer class="post-card-meta"> <ul class="author-list"> </ul> <span class="reading-time">4 min read</span> </footer> </div> </article> <article class="post-card"> <a class="post-card-image-link" href="/how-to-create-awesome-product-tours-your-customers-will-love-2/"> <img class="post-card-image" src="/content/images/size/w800/2024/05/jametlene-reskp-3Dtu6_XfqIk-unsplash.jpeg" alt="How to create awesome product tours your customers will love" /> </a> <div class="post-card-content"> <div class="post-visibility-public" href="/signin">Members-only</div> <a class="post-card-content-link" href="/how-to-create-awesome-product-tours-your-customers-will-love-2/"> <header class="post-card-header"> <h2 class="post-card-title">How to create awesome product tours your customers will love</h2> </header> <section class="post-card-excerpt"> <p>No one wants their customers to feel alienated and lost. Luckily, there’s a simple solution that can make your users feel right at home from the get-go, and they’re called product tours....</p> </section> </a> <footer class="post-card-meta"> <ul class="author-list"> </ul> <span class="reading-time">9 min read</span> </footer> </div> </article> <article class="post-card"> <a class="post-card-image-link" href="/what-is-product-messaging/"> <img class="post-card-image" src="/content/images/size/w800/2024/07/DMA_Framework_Tiles_messaging.jpg" alt="What is product messaging?" /> </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-product-messaging/"> <header class="post-card-header"> <h2 class="post-card-title">What is product messaging?</h2> </header> <section class="post-card-excerpt"> <p>Without great positioning and messaging, your product may never reach your intended audience. But how can we define messaging?...</p> </section> </a> <footer class="post-card-meta"> <ul class="author-list"> </ul> <span class="reading-time">5 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">&mdash;</span> <div class="floating-header-title">The marketer’s guide to building a developer program</div> <div class="floating-header-share"> <a class="floating-header-share-tw" href="https://twitter.com/share?text=The%20marketer%E2%80%99s%20guide%20to%20building%20a%20developer%20program&amp;url=https://www.developermarketing.io/the-marketers-guide-to-building-a-developer-program/" 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/the-marketers-guide-to-building-a-developer-program/" 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/the-marketers-guide-to-building-a-developer-program/" 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>

Pages: 1 2 3 4 5 6 7 8 9 10