CINXE.COM

Marketing Against The Grain

<!DOCTYPE html> <html> <head> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'> <meta content='width=device-width, initial-scale=1.0' name='viewport'> <meta content='noindex' name='robots'> <title>Marketing Against The Grain</title> <meta name="description" content="Kipp Bodnar (HubSpot’s CMO) and Kieran Flanagan (Zapier’s CMO), lead you down the rabbit hole of marketing trends, growth tactics and innovation. On the way you’ll pick up undiscovered strategies to give you that slight edge for success. These are not your typical twitter thread regurgitated"> <meta property="og:title" content="Marketing Against The Grain"> <meta property="og:description" content="Kipp Bodnar (HubSpot’s CMO) and Kieran Flanagan (Zapier’s CMO), lead you down the rabbit hole of marketing trends, growth tactics and innovation. On the way you’ll pick up undiscovered strategies to give you that slight edge for success. These are not your typical twitter thread regurgitated"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@ChartableDotCom"> <meta name="twitter:title" content="Marketing Against The Grain"> <meta name="twitter:description" content="Kipp Bodnar (HubSpot’s CMO) and Kieran Flanagan (Zapier’s CMO), lead you down the rabbit hole of marketing trends, growth tactics and innovation. On the way you’ll pick up undiscovered strategies to give you that slight edge for success. These are not your typical twitter thread regurgitated marketing tactics that everyone is doing. These are new methods, with unfiltered examination of successful fresh ideas."> <link rel="shortcut icon" type="image/x-icon" href="/assets/chartable-favicon-147fa2a780e77ea3bc97719e343e8d733b2e8487f7c8a78b3d496aae5555dd05.png" /> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="TsK5Mxinxtkmjp79Qo6FKez0UhKtQ3NjfbCBW6k8uVxiMw7YtgQBA1X/GvfEK03yUmTSMsJobTHHUhCxhUcmVg==" /> <link rel="stylesheet" media="all" href="/assets/application-e6e1be4b0c45d8370f449baa0ce082ab5ebb54dca77b6f98a462fff73a0e4037.css" /> <link href='https://fonts.gstatic.com' rel='preconnect'> <script src="/assets/application-e14f81bc94951128bb2d2dc4f233fd48cdc83e337ef2a6de694aeb11401a7c70.js"></script> <link href='//cdnjs.cloudflare.com/ajax/libs/tachyons/4.11.1/tachyons.min.css' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Cabin:500|Open+Sans&amp;display=swap' rel='stylesheet'><link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&amp;display=swap' rel='stylesheet'><script src='https://unpkg.com/axios@1.0.0/dist/axios.min.js'></script> </head> <body style='background: #FFFFFF'> <div class='w-100 flex justify-center' style='background: #FFFFFF'> <div class='content-container inline-flex w7' style='gap: 2rem;'> <div> <img class="br4 cover-art" src="https://megaphone.imgix.net/podcasts/6a1c6e3c-af7c-11ec-a955-fb60e2a1bf27/image/MAT_-_Show_Tile_3000x3000.png?ixlib=rails-4.3.1&amp;max-w=3000&amp;max-h=3000&amp;fit=crop&amp;auto=format,compress" /> <div class='tc h2 mb2 current-episode-title ph2 mt4 f3 b' style='color: #333333; width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis'> - </div> <div class='webview-audio-player-controls'> <div class='mt3 relative'> <div class='progress-bar pointer'> <div class='w-100 bg-moon-gray br3 o-50' style='height: 6px'></div> <div class='percent-complete pointer absolute top-0 br3 bg-dark-gray' style='height: 6px;'></div> </div> <div class='flex justify-between w-100 mt2'> <div class='f6 current-time' style='color: #333333'> 0:00 </div> <div class='f6 total-duration' style='color: #333333'> -:-- </div> </div> </div> <div class='flex flex-row items-center mt2 justify-around'> <img class="dim pointer skip-back" style="height: 2.75rem; width: 2.75rem;" src="/assets/back15-dark-b158f49dddc83bc68d2c14ab3d7b42385c6daa4b734144f47713fe9448e8d454.svg" /> <img class="dim pointer play-pause-button" style="height: 3rem; width: 3rem" src="/assets/play-dark-56667b8f98046775503abb0472cd646104248c49d9dd4d8ab6389d63b8faadca.svg" /> <img class="dim pointer skip-forward" style="height: 2.75rem; width: 2.75rem;" src="/assets/forward30-dark-8b3e55d318fbad3cdb2985e11b65e725b1613b4fb73bf81bc142d7411968667d.svg" /> </div> </div> <audio id='player' preload='none'></audio> </div> <div class='w-100' style='flex: 1'> <div class='fw-700 lh-title title ph4' style='color: #333333; font-family: Inter, sans-serif;'>Marketing Against The Grain</div> <div class='content flex'> <div class='pt4 links'> <div class='f6 fw-700 o-80 lh-title mb3 tl-ns ph4 ttu tracked link-header' style='color: #333333; font-family: Inter'>Listen now on</div> <div class='flex flex-wrap player-list'> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=itunes'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/itunes-73427b4e2f5057e639ad354810c97669b18463e9fef23d6a96e6b0760d853069.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Apple Podcasts </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=spotify'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/spotify-ec5bca5b8fbca78b5b0acb04314c079a40240c9b57370518f83ac1e56302c933.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Spotify </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=google_podcasts'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/google_podcasts-73950d24121a87af14f1dafd8e89dd61ba0ded991e0b9d4807a9a135b70b0548.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Google Podcasts </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=overcast'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/overcast-a72bc55e75006c4efbd9bc3562f3891a896c93373c671e8f2f72f0a76215837e.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Overcast </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=castbox'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/castbox-92db9a5111905ddce5a40cc77185ec56f2acb50b623cb0e8dd91131c725c908f.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Castbox </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=pocket_casts'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/pocket_casts-a6bbed9f96f0781fec812463802e5a727d13a73dd216d3452dfeb97f0709ca0b.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Pocket Casts </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=podcast_addict'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/podcast_addict-a23951e6e490baab0a32a5221de08fe668daa9ef2159f300fc5d4aecc119b77c.png" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Podcast Addict </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=radio_public'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/radio_public-d9fd5d9abdea96007143dece5fd1153c9a445d2995a06025e238d4a1558c520b.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> RadioPublic </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=breaker'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/breaker-79c73c4e126f43f554361a74ebf12fd6889f6ef98681fea3cba9164f354e66a2.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Breaker </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=rss'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/rss-5d61fa90548266c6296cb95aa758ef418ccf45deb59d2610a7d52cb4b4835c4f.svg" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> RSS feed </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=amazon_music'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/amazon_music-c2fe6e0a34919c5d9ecb7cf6df43de6d6f9408a02120fb16d31d1ed5ffb7e19f.png" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> Amazon Music </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> <a class='no-underline player-list-item flex flex-row items-center' href='https://link.chtbl.com/5Mfokbsx?id=5Mfokbsx&amp;platform=youtube'> <div class='relative flex items-center justify-center' style='height: 60px; width: 60px; padding: 4px;'> <div class='br4 absolute bg-white top-0 right-0 left-0 bottom-0' style='opacity: 0.15;'></div> <img class="relative grow-large" src="/assets/youtube-9a58dcc30fc964d41e194a8f165e90702fd74da2cacc47452e7180e637c4587c.png" /> </div> <div class='hidden-player-content flex-row items-center justify-between ml3' style='flex: 1; font-family: Inter'> <div class='dark-gray o-80 fw-600'> YouTube </div> <div class='ph3 pv2 br2 ba fw-700' style='border-color: #282828'> <div class='mid-gray o-80'>Play</div> </div> </div> </a> </div> </div> <div class='mt4 ph4'> <div class='lh-copy mb4 w-100' style='color: #333333; font-weight: 400; font-family: Inter, sans-serif;'> <span class='description'> Kipp Bodnar (HubSpot’s CMO) and Kieran Flanagan (Zapier’s CMO), lead you down the rabbit hole of marketing trends, growth tactics and innovation. On the way you’ll pick up undiscovered strategies to give you that slight edge for success. These are not your typical twitter thread regurgitated marketing tactics that everyone is doing. These are new methods, with unfiltered examination of successful fresh ideas. </span> <span class='link pointer dn no-underline text-button o-70' style='color: #333333'>Show more</span> <div class='mt5 f6 fw-700 o-80 lh-title tl-ns ttu tracked link-header web' style='color: #333333; font-family: Inter'>Episodes</div> <div class='episode-feed-container web' style='color: #333333'></div> </div> </div> </div> </div> </div> </div> <div class='f7 tc w-100 o-70 mt5 out-links pb5' style='color: #333333'> <div class='pb4'> Powered by <a class="link underline" style="color: inherit" href="https://chartable.com/smartlinks?utm_source=smartlink">Chartable SmartLinks</a> &middot; <a class="link" style="color: inherit" href="https://chartable.com/privacy?utm_source=smartlink">Privacy &amp; Terms</a> </div> </div> <div class='w-100 fixed bottom-0 mobile-player'> <div class='maximized-content' style='display: none;'> <div class='w-100 flex justify-center pt2 pointer minimize-button' style='height: 60px'> <div class='bg-moon-gray w2 br3' style='width: 40px; height: 5px'></div> </div> <div class='h-100 w-100 center tc' style='max-width: 550px'> <img class="w-70 br4" style="max-width: 270px; box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;" src="https://megaphone.imgix.net/podcasts/6a1c6e3c-af7c-11ec-a955-fb60e2a1bf27/image/MAT_-_Show_Tile_3000x3000.png?ixlib=rails-4.3.1&amp;max-w=3000&amp;max-h=3000&amp;fit=crop&amp;auto=format,compress" /> <p class='ph4 mt4 f3 b dark-gray current-episode-title-2' style='width: 100%; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; font-family: Inter;'> </p> <div class='mobile-audio-player-controls ph4'> <div class='mt3 relative'> <div class='progress-bar-2 pointer'> <div class='w-100 bg-moon-gray br3 o-50' style='height: 6px'></div> <div class='percent-complete-2 bg-dark-gray pointer absolute top-0 br3' style='height: 6px;'></div> </div> <div class='flex justify-between w-100 mt2'> <div class='f6 current-time-2 dark-gray'> 0:00 </div> <div class='f6 total-duration-2 dark-gray'> </div> </div> </div> <div class='flex flex-row items-center justify-around w-60 center mt2'> <img class="dim pointer skip-back-2" style="height: 2.75rem; width: 2.75rem;" src="/assets/back15-dark-b158f49dddc83bc68d2c14ab3d7b42385c6daa4b734144f47713fe9448e8d454.svg" /> <img class="dim pointer play-pause-button-3" style="height: 2.85rem; width: 2.75rem" src="/assets/play-dark-56667b8f98046775503abb0472cd646104248c49d9dd4d8ab6389d63b8faadca.svg" /> <img class="dim pointer skip-forward-2" style="height: 2.75rem; width: 2.75rem;" src="/assets/forward30-dark-8b3e55d318fbad3cdb2985e11b65e725b1613b4fb73bf81bc142d7411968667d.svg" /> </div> <div class='description-container mt5'> <div class='f5 fw-700 o-80 lh-title mb2 tl-ns ttu tracked link-header dark-gray' style='font-family: Inter'> Description </div> <div class='f6 mid-gray tl lh-copy current-episode-description' style='font-family: Inter'> - </div> </div> <div class='mt5 f6 fw-700 o-80 lh-title tl-ns ttu tracked link-header mobile dark-gray' style='font-family: Inter'>Episodes</div> <div class='episode-feed-container mobile' style='color: #333; font-family: Inter;'></div> </div> </div> </div> <div class='pointer minimized-content relative' style='height: 55px;'> <div class='flex flex-row justify-between w-100 fade-display items-center blurred-content'> <div class='w3 pa2'> <img class="" style="width: 100%;" src="https://megaphone.imgix.net/podcasts/6a1c6e3c-af7c-11ec-a955-fb60e2a1bf27/image/MAT_-_Show_Tile_3000x3000.png?ixlib=rails-4.3.1&amp;max-w=3000&amp;max-h=3000&amp;fit=crop&amp;auto=format,compress" /> </div> <div class='w-100 f5 dark-gray current-episode-title-3' style='flex: 1; text-overflow: ellipsis; font-family: Inter; overflow: hidden; white-space: nowrap;'> </div> <img class="dim ph2 pv2 pointer play-pause-button-2" style="height: 1.5rem; width: 1.5rem;" src="/assets/play-dark-56667b8f98046775503abb0472cd646104248c49d9dd4d8ab6389d63b8faadca.svg" /> <img class="dim ph2 pv2 pointer skip-forward-3" style="height: 1.8rem; width: 1.8rem;" src="/assets/forward30-dark-8b3e55d318fbad3cdb2985e11b65e725b1613b4fb73bf81bc142d7411968667d.svg" /> </div> <div class='absolute top-0 bottom-0 left-0 right-0 o-40 bg-white' style='z-index: -1;'></div> <div class='maximize-button absolute left-0 bottom-0 top-0' style='width: calc(100% - 5.5rem);'></div> </div> </div> <noscript> <a href="">Click here if you are not automatically redirected</a> </noscript> </body> <script> var mobilePlayerIsShowing = false; let loadingIndicator = document.createElement("div"); loadingIndicator.classList = "lds-ellipsis"; for (let i = 0; i < 4; i++) { loadingIndicator.appendChild(document.createElement("div")); } let playDarkImagePath = "/assets/play-dark-56667b8f98046775503abb0472cd646104248c49d9dd4d8ab6389d63b8faadca.svg"; let playLightImagePath = "/assets/play-light-44e957ca417b16db805a9b7a569bf6a9baf0864fda92660c48999eadb06a21b7.svg"; let pauseDarkImagePath = "/assets/pause-dark-2b02da7a704af33108488e4b734d012a19b77f0bf542639284667225e353e59c.svg"; let pauseLightImagePath = "/assets/pause-light-5f6c22366e0556614d5ba30a0531b92b569fd9b8bd83146c384ff77c81c55855.svg"; let lightMode = true; if (!lightMode) { loadingIndicator.classList += " dark-mode"; } // MARKER - Description Text toggle let descriptionTextLimit = 150; let description = document.querySelector('.description'); let descriptionText = description.innerText; let button = document.querySelector('.text-button'); var textIsHidden = true; function hideDescription() { let truncatedText = descriptionText.substr(0, descriptionTextLimit) + '...'; description.innerText = truncatedText; } function toggleText() { if (textIsHidden) { button.innerHTML = 'Show Less'; description.innerText = descriptionText; } else { button.innerHTML = 'Show More'; hideDescription(); } textIsHidden = !textIsHidden; } if (descriptionText.length > descriptionTextLimit) { button.style.display = "inline"; button.addEventListener('click', toggleText); hideDescription(); } let player = document.getElementById('player'); let source = document.getElementById('source'); // MARKER - Audio controls var playPauseButton = document.querySelector('.play-pause-button'); var playPauseButton2 = document.querySelector('.play-pause-button-2'); var playPauseButton3 = document.querySelector('.play-pause-button-3'); var isPlaying = false; function togglePlayPause() { if (!currentEpisode) { return; } if (isPlaying) { player.pause(); playPauseButton.src = lightMode ? playDarkImagePath : playLightImagePath; playPauseButton2.src = playDarkImagePath; playPauseButton3.src = playDarkImagePath; } else { player.play(); playPauseButton.src = lightMode ? pauseDarkImagePath : pauseLightImagePath; playPauseButton2.src = pauseDarkImagePath; playPauseButton3.src = pauseDarkImagePath; } isPlaying = !isPlaying; renderEpisodeFeed(); } // MARKER - Audio time management let totalDuration = document.querySelector('.total-duration'); let currentTime = document.querySelector('.current-time'); let totalDuration2 = document.querySelector('.total-duration-2'); let currentTime2 = document.querySelector('.current-time-2'); let percentComplete = document.querySelector('.percent-complete'); let percentComplete2 = document.querySelector('.percent-complete-2'); let progressBar = document.querySelector('.progress-bar'); let progressBar2 = document.querySelector('.progress-bar-2'); let skipBack = document.querySelector('.skip-back'); let skipBack2 = document.querySelector('.skip-back-2'); let skipForward = document.querySelector('.skip-forward'); let skipForward2 = document.querySelector('.skip-forward-2'); let skipForward3 = document.querySelector('.skip-forward-3'); function secondsToHHMMSS(s) { var h = Math.floor(s / 3600); var m = Math.floor(s % 3600 / 60); var s = Math.floor(s % 3600 % 60); var hours = h > 0 ? `${h}:` : ""; var minutes = h > 0 && m > 9 ? `0${m}` : `${m}`; var seconds = s > 9 ? `${s}` : `0${s}`; return `${hours}${minutes}:${seconds}`; } function percentAudioComplete(curr) { return (curr / player.duration) * 100; } function onTimeUpdate(e) { curr = player.currentTime; currentTime.innerHTML = secondsToHHMMSS(curr); currentTime2.innerHTML = secondsToHHMMSS(curr); percentComplete.style.width = `${percentAudioComplete(curr)}%`; percentComplete2.style.width = `${percentAudioComplete(curr)}%`; } function seek(e) { var percent = e.offsetX / this.offsetWidth; var time = percent * player.duration; currentTime.innerHTML = secondsToHHMMSS(time); currentTime2.innerHTML = secondsToHHMMSS(time); percentComplete.style.width = `${percent * 100}%`; percentComplete2.style.width = `${percent * 100}%`; player.currentTime = time; } function handleSkipBack() { player.currentTime -= 15; } function handleSkipForward() { player.currentTime += 30; } // MARKER - Bottom player let mobilePlayer = document.querySelector('.mobile-player'); let minimizedContent = document.querySelector('.minimized-content'); let maximizedContent = document.querySelector('.maximized-content'); let maximizeButton = document.querySelector('.maximize-button'); let minimizeButton = document.querySelector('.minimize-button'); function showMobilePlayer() { mobilePlayerIsShowing = true; mobilePlayer.classList.add("maximized"); minimizedContent.classList.add("maximized"); maximizedContent.style.display = "block"; document.querySelector('body').style.overflow = "hidden"; renderEpisodeFeed(); loadingIndicator.classList.remove("dark-mode"); } function hideMobilePlayer() { mobilePlayerIsShowing = false; mobilePlayer.classList.remove("maximized"); minimizedContent.classList.remove("maximized"); maximizedContent.style.display = "none"; document.querySelector('body').style.overflow = "auto"; if (!lightMode) { loadingIndicator.classList += " dark-mode"; } } // Setting Episode var currentEpisode = null; if (JSON.stringify({"cid":"9db4da6e-e68e-4330-826a-b156e878c804","id":203219288,"title":"GROK 3 vs GPT-4: The AI War Just Got Real [First Look]","description":"Ep. 303\nWhat if everyone had access to human-level intelligence for free?\n\nKipp and Kieran dive into the groundbreaking implications of Grok 3's launch and its impact on the AI landscape. Learn more about why Grok 3 is outperforming AI giants like OpenAI and Google, how Elon Musk's access to vast resources gives him a competitive edge in this AI war, and the profound implications of democratizing intelligence in both consumer and enterprise sectors.\n\nMentions\n\nGrok https://x.ai/grok\n\n\nGemini https://gemini.google.com/\n\n\nNvidia https://www.nvidia.com/en-us/\n\n\nDeepSeek https://www.deepseek.com/\n\n\n\nCheck out this episode on YouTube: https://www.youtube.com/watch?v=8ClvfsG4vpw\n\nGet our guide to build your own Custom GPT: https://clickhubspot.com/customgpt\n\nWe’re creating our next round of content and want to ensure it tackles the challenges you’re facing at work or in your business.\nTo understand your biggest challenges we’ve put together a survey and we’d love to hear from you! https://bit.ly/matg-research\n\nResource\n[Free] Steal our favorite AI Prompts featured on the show! Grab them here: https://clickhubspot.com/aip\n\n\nWe’re on Social Media! Follow us for everyday marketing wisdom straight to your feed\nYouTube: ​​https://www.youtube.com/channel/UCGtXqPiNV8YC0GMUzY-EUFg \nTwitter: https://twitter.com/matgpod \nTikTok: https://www.tiktok.com/@matgpod \n\nJoin our community https://landing.connect.com/matg\n\nThank you for tuning into Marketing Against The Grain!\n\nDon’t forget to hit subscribe and follow us on Apple Podcasts (so you never miss an episode)! https://podcasts.apple.com/us/podcast/marketing-against-the-grain/id1616700934  \n\nIf you love this show, please leave us a 5-Star Review https://link.chtbl.com/h9_sjBKH and share your favorite episodes with friends.\n\nWe really appreciate your support.\n\nHost Links:\nKipp Bodnar, https://twitter.com/kippbodnar  \nKieran Flanagan, https://twitter.com/searchbrat \n\n‘Marketing Against The Grain’ is a HubSpot Original Podcast // Brought to you by The HubSpot Podcast Network // Produced by Darren Clarke.","url":"https://pdst.fm/e/chrt.fm/track/28555/pdrl.fm/592ccd/tracking.swap.fm/track/AwSmAF8PeQlxyS7Q0R8T/traffic.megaphone.fm/HS7831222121.mp3?updated=1740047352","published_at":"2025-02-20T06:00:00.000Z"}) !== JSON.stringify({})) { currentEpisode = {"cid":"9db4da6e-e68e-4330-826a-b156e878c804","id":203219288,"title":"GROK 3 vs GPT-4: The AI War Just Got Real [First Look]","description":"Ep. 303\nWhat if everyone had access to human-level intelligence for free?\n\nKipp and Kieran dive into the groundbreaking implications of Grok 3's launch and its impact on the AI landscape. Learn more about why Grok 3 is outperforming AI giants like OpenAI and Google, how Elon Musk's access to vast resources gives him a competitive edge in this AI war, and the profound implications of democratizing intelligence in both consumer and enterprise sectors.\n\nMentions\n\nGrok https://x.ai/grok\n\n\nGemini https://gemini.google.com/\n\n\nNvidia https://www.nvidia.com/en-us/\n\n\nDeepSeek https://www.deepseek.com/\n\n\n\nCheck out this episode on YouTube: https://www.youtube.com/watch?v=8ClvfsG4vpw\n\nGet our guide to build your own Custom GPT: https://clickhubspot.com/customgpt\n\nWe’re creating our next round of content and want to ensure it tackles the challenges you’re facing at work or in your business.\nTo understand your biggest challenges we’ve put together a survey and we’d love to hear from you! https://bit.ly/matg-research\n\nResource\n[Free] Steal our favorite AI Prompts featured on the show! Grab them here: https://clickhubspot.com/aip\n\n\nWe’re on Social Media! Follow us for everyday marketing wisdom straight to your feed\nYouTube: ​​https://www.youtube.com/channel/UCGtXqPiNV8YC0GMUzY-EUFg \nTwitter: https://twitter.com/matgpod \nTikTok: https://www.tiktok.com/@matgpod \n\nJoin our community https://landing.connect.com/matg\n\nThank you for tuning into Marketing Against The Grain!\n\nDon’t forget to hit subscribe and follow us on Apple Podcasts (so you never miss an episode)! https://podcasts.apple.com/us/podcast/marketing-against-the-grain/id1616700934  \n\nIf you love this show, please leave us a 5-Star Review https://link.chtbl.com/h9_sjBKH and share your favorite episodes with friends.\n\nWe really appreciate your support.\n\nHost Links:\nKipp Bodnar, https://twitter.com/kippbodnar  \nKieran Flanagan, https://twitter.com/searchbrat \n\n‘Marketing Against The Grain’ is a HubSpot Original Podcast // Brought to you by The HubSpot Podcast Network // Produced by Darren Clarke.","url":"https://pdst.fm/e/chrt.fm/track/28555/pdrl.fm/592ccd/tracking.swap.fm/track/AwSmAF8PeQlxyS7Q0R8T/traffic.megaphone.fm/HS7831222121.mp3?updated=1740047352","published_at":"2025-02-20T06:00:00.000Z"}; } let currentEpisodeTitleLabel = document.querySelector('.current-episode-title'); let currentEpisodeTitleLabel2 = document.querySelector('.current-episode-title-2'); let currentEpisodeTitleLabel3 = document.querySelector('.current-episode-title-3'); let currentEpisodeDescriptionLabel = document.querySelector('.current-episode-description'); let descriptionContainer = document.querySelector('.description-container'); function setEpisode(newEpisode) { if (newEpisode) { currentEpisodeTitleLabel.innerText = newEpisode.title; currentEpisodeTitleLabel2.innerText = newEpisode.title; currentEpisodeTitleLabel3.innerText = newEpisode.title; if (newEpisode.description) { descriptionContainer.style.display = "block"; currentEpisodeDescriptionLabel.innerText = newEpisode.description; } else { descriptionContainer.style.display = "none"; } player.src = encodeURI(newEpisode.url); currentEpisode = newEpisode; } } // MARK - Episode feed var loadMoreButton = document.createElement("div"); loadMoreButton.classList = `br2 pa2 f5 ba tc pointer dim mw4 mt4 center ${lightMode ? 'b--dark-gray' : 'bg--white'}`; loadMoreButton.addEventListener('click', getEpisodes); var mobileLoadMoreButton = document.createElement("div"); mobileLoadMoreButton.classList = "br2 pa2 f5 ba tc pointer dim mw4 mt4 center b--dark-gray" mobileLoadMoreButton.addEventListener('click', getEpisodes); var episodeFeedContainer = document.querySelector('.episode-feed-container.web'); var mobileEpisodeFeedContainer = document.querySelector('.episode-feed-container.mobile'); var page = 1; var episodes = []; var requestInProgress = false; function handleEpisodeFeedShowMoreClick(i) { episodes[i].expanded = !episodes[i].expanded; renderEpisodeFeed(); } function handleEpisodeFeedPlayClick(i) { if (!!currentEpisode && currentEpisode.url === episodes[i].url) { togglePlayPause(); } else { currentTime.innerHTML = secondsToHHMMSS(0); currentTime2.innerHTML = secondsToHHMMSS(0); percentComplete.style.width = `${percentAudioComplete(0)}%`; percentComplete2.style.width = `${percentAudioComplete(0)}%`; setEpisode(episodes[i]); if (!isPlaying) { togglePlayPause(); } else { player.play(); renderEpisodeFeed(); } } } function generateEpisodeDiv(episode, index, isMobile) { if (!episode.url || !episode.title) { return null; } var episodeDiv = document.createElement("div"); episodeDiv.classList = "flex flex-row pv4 bb b--light-gray items-start"; let pauseImage = isMobile || lightMode ? pauseDarkImagePath : pauseLightImagePath; let playImage = isMobile || lightMode ? playDarkImagePath : playLightImagePath; var imageTag = document.createElement("img"); imageTag.src = !!currentEpisode && episode.url === currentEpisode.url && isPlaying ? pauseImage : playImage; imageTag.style.width = "1.5rem"; imageTag.classList = "mr3 pointer dim"; imageTag.addEventListener('click', function() { handleEpisodeFeedPlayClick(index); }); var titleDiv = document.createElement("div"); titleDiv.classList = "f5 b mb1 tl"; titleDiv.innerText = episode.title; var textContainerDiv = document.createElement("div"); var descriptionDiv = document.createElement("div"); var showMoreSpan = document.createElement("div"); if (episode.description) { descriptionDiv.classList = "f5 lh-copy tl"; descriptionDiv.innerText = !episode.expanded && episode.description.length > descriptionTextLimit ? episode.description.substr(0, descriptionTextLimit) + '...' : episode.description; showMoreSpan.classList = `${episode.description.length > descriptionTextLimit ? '' : 'dn'} tl no-underline text-button o-70 pointer mt1`; showMoreSpan.innerHTML = `Show ${episode.expanded ? 'less' : 'more'}`; showMoreSpan.addEventListener("click", function() { handleEpisodeFeedShowMoreClick(index); }); } textContainerDiv.appendChild(titleDiv); textContainerDiv.appendChild(descriptionDiv); textContainerDiv.appendChild(showMoreSpan); episodeDiv.appendChild(imageTag); episodeDiv.appendChild(textContainerDiv); return episodeDiv; } function getEpisodes() { if (requestInProgress) { return; } requestInProgress = true; loadMoreButton.innerHTML = ""; loadMoreButton.appendChild(loadingIndicator); mobileLoadMoreButton.innerHTML = loadMoreButton.innerHTML; let host = "https://chartable.com"; axios(`${host}/api/episodes/feed?podcast_id=marketing-against-the-grain&page=${page}&token=ab5d92470d76c4d03776`) .then(res => { res.data.forEach(episode => { episode.expanded = false; episodes.push(episode); }); loadMoreButton.innerHTML = "Load more"; mobileLoadMoreButton.innerHTML = loadMoreButton.innerHTML page += 1; renderEpisodeFeed(); }) .catch(err => { loadMoreButton.innerHTML = "Retry" mobileLoadMoreButton.innerHTML = loadMoreButton.innerHTML }) .finally(() => requestInProgress = false); } function renderEpisodeFeed() { episodeFeedContainer.innerHTML = ''; mobileEpisodeFeedContainer.innerHTML = ''; for (let i = 0; i < episodes.length; i++) { let episodeDiv = generateEpisodeDiv(episodes[i], i, false); if (episodeDiv) { episodeFeedContainer.appendChild(episodeDiv); } if (mobilePlayerIsShowing && episodeDiv) { mobileEpisodeFeedContainer.appendChild(generateEpisodeDiv(episodes[i], i, true)); } } loadMoreButton.innerHTML = "Load more"; mobileLoadMoreButton.innerHTML = loadMoreButton.innerHTML; episodeFeedContainer.appendChild(loadMoreButton); mobileEpisodeFeedContainer.appendChild(mobileLoadMoreButton) } if (true) { minimizeButton.addEventListener("click", hideMobilePlayer); maximizeButton.addEventListener("click", showMobilePlayer); player.addEventListener('timeupdate', onTimeUpdate); progressBar.addEventListener("click", seek); progressBar2.addEventListener("click", seek); skipBack.addEventListener("click", handleSkipBack); skipBack2.addEventListener("click", handleSkipBack); skipForward.addEventListener("click", handleSkipForward); skipForward2.addEventListener("click", handleSkipForward); skipForward3.addEventListener("click", handleSkipForward); playPauseButton.addEventListener('click', togglePlayPause); playPauseButton2.addEventListener('click', togglePlayPause); playPauseButton3.addEventListener('click', togglePlayPause); player.onloadedmetadata = function() { let time = player.duration; totalDuration.innerHTML = secondsToHHMMSS(time); totalDuration2.innerHTML = secondsToHHMMSS(time); } if (currentEpisode) { setEpisode(currentEpisode); } episodeFeedContainer.classList += lightMode ? " dark-gray" : " white"; renderEpisodeFeed(); } getEpisodes(); </script> </html>

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