CodePen Radio

CodePen Radio

By CodePen BlogTechnology
Download on the App Store

CodePen Radio episodes

  • 422: Supporting Packages

    Alex and Chris talk about how the 2.0 Editor supports packages from npm. The trick is both simple and complex. The idea is simple. We detect the packages you want to use, list them in an (editable) package.json file, then turn that into a

    30 min
  • 421: View Control of the 2.0 Editor

    Stephen & Chris look at the UI of the 2.0 Editor and show all the control you have over what you're looking at. Way more control than the Classic editor! We share some of the thinking behind it. Don't miss the Omnibar!

    Time Jumps
    Links
    • Circle Round
    • Story Pirates Podcast
    • Who Moved My Cheese?
    • The freeCodeCamp Podcast
    • 35 min
    • 420: What are Blocks?

      With CodePen 2.0, we've got a new word we're using: Blocks. A way to think about Blocks is anything that processes code. They are added as steps to the CodePen Compiler as needed. For example, TypeScript is a block, because it processes files in the TypeScript syntax into JavaScript files. But something like Lodash is not a block. Lodash is a package from npm (which we also handle, but that's a topic for another podcast). Lodash doesn't process code, it's just a library that is linked up or bundled.

      Time Jumps

      29 min
    • 419: Why 2.0?

      CodePen 2.0 was the most ambitious project that we've ever taken on in our lives. Why would we do such a thing? Chris and Alex explain the thinking behind it. We've been around a long time, know what our customers want, and are developers ourselves, so we know how this industry moves. We thought we could serve both in a powerful and flexible way, taking us into the future.

      Time Jumps

      29 min
    • 418: CodeMirror 6

      Chris Coyier and Stephen Shaw discuss the transition from CodeMirror 5 to CodeMirror 6, highlighting the significant improvements in accessibility, performance, and user experience. They delve into architectural changes, integration with modern JavaScript frameworks such as Next.js, and the new theming options available in the editor.

      Time Jumps

      29 min
    • 417: Iframe Allow Attribute Saga

      There was a day not long ago where a Google Chrome browser update left any page with a CodePen Embed on it throwing a whole big pile of red JavaScript errors in the console. Not ideal, obviously.

      The change was related to how the browser handles allow attributes on iframes (i.e. ). CodePen was calculating the appropriate values inside an iframe for a <em>nested</em> iframe. That must have been a security issue of sorts, as now those values need to be present on the <em>outside</em> iframe as well.</p>

      <p class="wp-block-paragraph"><a href="https://blog.codepen.io/2025/10/20/google-chrome-iframe-allow-permissions-problems/">We documented all this in a blog post</a> so hopefully we could get some attention from Chrome on this, and for other browser makers as well since it affects all of us. </p>
      <p class="wp-block-paragraph">And I posted it on the ol' social media:</p>
      <p class="wp-block-paragraph">Huge thanks to Bramus Van Damme who saw this, triaged it at Chrome, and had a resolution within a day:</p>
      <p class="wp-block-paragraph">I think <a href="https://chromium-review.googlesource.com/c/chromium/src/+/7074672">the patch</a> is a great change so hats off to everyone involved for getting it done so quickly. It's already in Canary and don't really know when it'll get the stable but that sure will be good. It follows how Safari is doing things where values that aren't understood are just ignored (which we think is fine and inline with how HTML normally works). </p>
      <p class="wp-block-paragraph">Fortunately we were able to mitigate the problem <em>a little</em> until then. For <em>most</em> Embedded Pens, a <script> is loaded on the page embedding it, and we dynamically create the <iframe> for you. This is just nice as it makes making an accessible fallback easier and gives you access to API-ish features for the embeds. We were able to augment that script to do a little browser user-agent sniffing and apply the correct set of allow attributes on the iframe, as to avoid those JavaScript errors we were seeing.</p>
      <p class="wp-block-paragraph">But there's the rub: we'd rather not do any user-agent sniffing at all. </p>
      <p class="wp-block-paragraph">If we could just put <em>all</em> the possible allow attributes we want on there, and not be terribly concerned if any particular browser didn't support any particular value, that would be ideal. We just can't have the scary console errors, out of concern for our users who may not understand them. </p>
      <p class="wp-block-paragraph">Where we're at in the saga now is that:</p>
      <ol class="wp-block-list">
      <li>We're waiting for the change to Chrome to get to stable.</li>
      <li>We're hoping Safari stays the way it is.</li>
      <li>OH HI FIREFOX.</li>
      </ol>
      <p class="wp-block-paragraph">On that last point, if we put all the allow attributes we would want to on an <iframe> in Firefox, we also get console-bombed. This time not with red-errors but with yellow-warnings. </p>
      <p class="wp-block-paragraph">So yes, hi Firefox, if you could also not display these warnings (unless a reporting URL is set up) that would be great. We'd be one less website out there relying on user-agent sniffing. </p>

      39 min
    • 416: Upgrading Next.js & React

      Shaw and Chris are on the show to talk about the thinking and challenges behind upgrading these rather important bits of technology in our stack. We definitely think of React version upgrades and Next.js version upgrades as different things. Sometimes they are prerequisites. The Next.js ones are a bit more important as 1) the docs for the most recent version tend to be the best and 2) it involves server side code which is important for security reasons. Never has any of it been trivially easy.

      Time Jumps

      39 min
    • 415: Babel Choices

      Robert and Chris hop on the show to talk about choices we've had to make around Babel.

      Probably the best way to use Babel is to just use the @babel/preset-env plugin so you get modern JavaScript features processed down to a level of browser support you find comfortable. But Babel supports all sorts of plugins, and in our Classic Editor, all you do is select "Babel" from a dropdown menu and that's it. You don't see the config nor can you change it, and that config we use does not use preset env.

      So we're in an interesting position with the 2.0 editor. We want to give new Pens, which do support editable configs, a good modern config, and we want all converted Classic Pens a config that doesn't break anything. There is some ultra-old cruft in that old config, and supporting all of it felt kinda silly. We could support a "legacy" Babel block that does support all of it, but so far, we've decided to just provide a config that handles the vast majority of old stuff, while using the same Babel block that everyone will get on day one.

      We're still in the midst of working on our conversion code an verifying the output of loads of Classic Pens, so we'll see how it goes!

      Time Jumps

      0 min
    • 414: Apollo (and the Almighty Cache)

      Rachel and Chris jump on the show to talk about a bit of client-side technology we use: Apollo. We use it because we have a GraphQL API and Apollo helps us write queries and mutations that go through that API. It slots in quite nicely with our React front-end, providing hooks we use to do the data work we need to do when we need to do it. Plus we get typed data all the way through.

      Chris gets to learn that the Apollo Cache isn't some bonus feature that just helps makes things faster, but an inevitable and deeply integrated feature into how this whole thing works.

      Time Jumps

      33 min
    • 413: Still indie after all these years

      We're over 13 years old as a company now. We decide that we're not a startup anymore (we're a "small business" with big dreams) but we are still indie. We've seen trends come and go. We just do what we do, knowing the tradeoffs, and plan to keep getting better as long as we can.

      Links
      • Timeline – Chris Coyier
      • 115: Adam Argyle on Cracking the 2025 Web Dev Interview | Front-End Fire
      • Time Jumps

        32 min

      About CodePen Radio

      From the publisher's feed

      The CodePen team talk about the ins and outs of running a web software business.

      More shows like CodePen Radio

      The Joe Rogan Experience by Joe Rogan

      The Joe Rogan Experience

      227,498 Listeners

      Pivot by New York Magazine

      Pivot

      9,619 Listeners

      Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

      Syntax - Tasty Web Development Treats

      985 Listeners

      Darknet Diaries by Jack Rhysider

      Darknet Diaries

      8,059 Listeners

      Prof G Markets by Vox Media Podcast Network

      Prof G Markets

      1,450 Listeners