<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Benny Powers: Web Developer</title>
  <subtitle></subtitle>
  <link href="https://bennypowers.dev/feed.xml" rel="self" />
  <link href="https://bennypowers.dev/" />
  <updated>2026-03-12T19:27:26Z</updated>
  <id>https://bennypowers.dev/</id>
  <author>
    <name>Benny Powers</name>
  </author>
  <entry>
    <title>גאולת שאגת הארי</title>
    <link href="https://bennypowers.dev/posts/geulah-shaagat-ari/" />
    <updated>2026-03-12T19:27:26Z</updated>
    <id>https://bennypowers.dev/posts/geulah-shaagat-ari/</id>
    <content type="html">Read more...</content>
  </entry>
  <entry>
    <title>גאולה לאדר תשפ&quot;ו</title>
    <link href="https://bennypowers.dev/posts/geulah-adar-5786/" />
    <updated>2026-03-03T14:24:33Z</updated>
    <id>https://bennypowers.dev/posts/geulah-adar-5786/</id>
    <content type="html">Read more...</content>
  </entry>
  <entry>
    <title>GNOME 2.20 but its Web Components</title>
    <link href="https://bennypowers.dev/posts/GNOME-2-web/" />
    <updated>2026-02-27T13:56:43Z</updated>
    <id>https://bennypowers.dev/posts/GNOME-2-web/</id>
    <content type="html">Just because we could didn&#39;t mean that we should</content>
  </entry>
  <entry>
    <title>Toucan Wireless Split Ergonomic Keyboard DIY Build</title>
    <link href="https://bennypowers.dev/posts/toucan-diy/" />
    <updated>2026-02-20T12:56:34Z</updated>
    <id>https://bennypowers.dev/posts/toucan-diy/</id>
    <content type="html">Has keyboard endgame been acheived? LOL no, but we had fun along the way.</content>
  </entry>
  <entry>
    <title>Introducing The Custom Elements Dev Server</title>
    <link href="https://bennypowers.dev/posts/custom-elements-dev-server/" />
    <updated>2025-12-04T14:04:56Z</updated>
    <id>https://bennypowers.dev/posts/custom-elements-dev-server/</id>
    <content type="html">An opinionated development server for HTML and custom elements. Like Storybook, but it&#39;s all about HTML - no framework required. Auto-generated knobs, smart reload, and manifest-driven demo discovery.
</content>
  </entry>
  <entry>
    <title>Apollo Elements v3.0.0 - GraphQL Meets Web Components</title>
    <link href="https://bennypowers.dev/posts/apollo-elements-3/" />
    <updated>2025-10-04T00:00:00Z</updated>
    <id>https://bennypowers.dev/posts/apollo-elements-3/</id>
    <content type="html">After 3+ years, Apollo Elements v3.0.0 is here with Apollo Client 4 support, Node.js 24, and a cleaner API. Build GraphQL-powered web components that work in any framework—or no framework at all.</content>
  </entry>
  <entry>
    <title>Introducing CEM Language Server</title>
    <link href="https://bennypowers.dev/posts/introducing-cem-language-server/" />
    <updated>2025-08-19T00:00:00Z</updated>
    <id>https://bennypowers.dev/posts/introducing-cem-language-server/</id>
    <content type="html">Remember wishing your editor actually *understood* your custom elements? Wish granted. The CEM Language Server is here, and it&#39;s built right. ✨ After weeks of development, the CEM Language Server is finally here! Built  from the ground up in Go with proper error handling, comprehensive testing,  and all the LSP features you&#39;d expect for working with custom elements.</content>
  </entry>
  <entry>
    <title>Fun with Ripgrep, part 1</title>
    <link href="https://bennypowers.dev/posts/fun-with-ripgrep/" />
    <updated>2025-07-15T19:08:57Z</updated>
    <id>https://bennypowers.dev/posts/fun-with-ripgrep/</id>
    <content type="html">Read more...</content>
  </entry>
  <entry>
    <title>Writing your own OS in 100 lines of YAML</title>
    <link href="https://bennypowers.dev/posts/your-own-os/" />
    <updated>2025-05-16T11:01:48Z</updated>
    <id>https://bennypowers.dev/posts/your-own-os/</id>
    <content type="html">The BlueBuild project is an easy and fun way to customize your own operating system.</content>
  </entry>
  <entry>
    <title>Introducing Design Tokens Language Server</title>
    <link href="https://bennypowers.dev/posts/introducing-design-tokens-language-server/" />
    <updated>2025-04-28T18:29:36Z</updated>
    <id>https://bennypowers.dev/posts/introducing-design-tokens-language-server/</id>
    <content type="html">Design tokens are the single source of truth for UI styling. The `design-tokens-language-server` makes working with design tokens a seamless experience in your everyday development workflow.</content>
  </entry>
  <entry>
    <title>Your Design System is Not a Solution</title>
    <link href="https://bennypowers.dev/posts/your-design-system-is-not-a-solution/" />
    <updated>2024-09-24T05:31:54Z</updated>
    <id>https://bennypowers.dev/posts/your-design-system-is-not-a-solution/</id>
    <content type="html">Design systems are tools, not solutions. They&#39;re not there to solve every problem for every team, but rather to put quality tools in the hands of skilled craftsmen.</content>
  </entry>
  <entry>
    <title>Typescript Eleventy Config</title>
    <link href="https://bennypowers.dev/posts/typescript-11ty-config/" />
    <updated>2024-09-03T15:02:14Z</updated>
    <id>https://bennypowers.dev/posts/typescript-11ty-config/</id>
    <content type="html">Node 22.6 introduced the --experimental-strip-types flag, and eleventy 3.0.0 adds support for JavaScript module configs, which means we can set up an 11ty project written in TypeScript using esm and build it without tsc.
</content>
  </entry>
  <entry>
    <title>Hosting Firefish on a Raspberry Pi</title>
    <link href="https://bennypowers.dev/posts/selfhosting-firefish/" />
    <updated>2024-07-08T11:20:30Z</updated>
    <id>https://bennypowers.dev/posts/selfhosting-firefish/</id>
    <content type="html">Self-hosting the firefish fediverse microblogging app isn&#39;t as hard as you might think. Using Gentoo Linux and Podman on a Raspberry Pi, initial setup is almost entirely straightforward
</content>
  </entry>
  <entry>
    <title>Server Rendering Lit Web Components with Drupal</title>
    <link href="https://bennypowers.dev/posts/drupal-lit-ssr/" />
    <updated>2024-08-06T13:14:41Z</updated>
    <id>https://bennypowers.dev/posts/drupal-lit-ssr/</id>
    <content type="html">Server-rendered web components require no javascript up front. Declarative
Shadow DOM let&#39;s you render your components&#39; shadow roots before the page 
finishes loading. While the Lit framework&#39;s utilities for SSR are still
experimental, we can write a proof-of-concept to integrate with Drupal.
</content>
  </entry>
  <entry>
    <title>Import Maps for Cross-team Collaboration</title>
    <link href="https://bennypowers.dev/posts/import-maps-cross-team-collaboration/" />
    <updated>2024-05-12T14:28:42Z</updated>
    <id>https://bennypowers.dev/posts/import-maps-cross-team-collaboration/</id>
    <content type="html">In large organizations, it takes many inputs across multiple teams to produce a single web page. Import maps aid in reducing the potential friction between teams by abstracting package names over resource URLs.</content>
  </entry>
  <entry>
    <title>Leaving Mastodon</title>
    <link href="https://bennypowers.dev/posts/leaving-mastodon/" />
    <updated>2023-12-03T15:19:32Z</updated>
    <id>https://bennypowers.dev/posts/leaving-mastodon/</id>
    <content type="html">Mastodon is probably a great idea, but is extremely hostile to Jews, so I&#39;m out
</content>
  </entry>
  <entry>
    <title>We are Abraham smashing the idols</title>
    <link href="https://bennypowers.dev/posts/we-are/" />
    <updated>2023-10-23T00:00:00Z</updated>
    <id>https://bennypowers.dev/posts/we-are/</id>
    <content type="html">Read more...</content>
  </entry>
  <entry>
    <title>Am Yisrael Chai</title>
    <link href="https://bennypowers.dev/posts/am-yisrael-hai/" />
    <updated>2025-08-20T20:46:21Z</updated>
    <id>https://bennypowers.dev/posts/am-yisrael-hai/</id>
    <content type="html">The Jewish people are fighting for their lives. Stand with them. Put this Web
component on your web site to direct visitors to donate to Israeli causes
</content>
  </entry>
  <entry>
    <title>Another way React Breaks HTML</title>
    <link href="https://bennypowers.dev/posts/another-way-react-breaks-html/" />
    <updated>2023-08-02T15:43:01Z</updated>
    <id>https://bennypowers.dev/posts/another-way-react-breaks-html/</id>
    <content type="html">Unsuspecting #react users may come to believe that #WebComponents break
react, but the truth is - as usual - exactly the opposite. Despite the
superficial similarity to #HTML, react&#39;s JSX language breaks the web
platform&#39;s powerful native slot element.
</content>
  </entry>
  <entry>
    <title>Sorting and Dating 11ty Posts by Name</title>
    <link href="https://bennypowers.dev/posts/sort-and-date-11ty-posts-by-name/" />
    <updated>2023-07-28T08:25:31Z</updated>
    <id>https://bennypowers.dev/posts/sort-and-date-11ty-posts-by-name/</id>
    <content type="html">Organize and automate your 11ty blog&#39;s post structure with ISO dates and
some quick JavaScript.
</content>
  </entry>
  <entry>
    <title>WebC Declarative Shadow DOM Slot Workarounds</title>
    <link href="https://bennypowers.dev/posts/webc-dsd-slot-workaround/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/webc-dsd-slot-workaround/</id>
    <content type="html">A cheeky hack to make &amp;lt;slot&gt; elements work as expected in
11ty&#39;s WebC framework.
</content>
  </entry>
  <entry>
    <title>Debugging GNOME Extensions with dbus-run-session</title>
    <link href="https://bennypowers.dev/posts/debugging-gnome-extensions-dbus-run-session/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/debugging-gnome-extensions-dbus-run-session/</id>
    <content type="html">How to run a nested gnome session (wayland) so you can test out  changes to a GNOME extension without having to log out.
</content>
  </entry>
  <entry>
    <title>Toggle Markdown Image Syntax with Treesitter</title>
    <link href="https://bennypowers.dev/posts/markdown-images-treesitter/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/markdown-images-treesitter/</id>
    <content type="html">Use #Neovim&#39;s #treesitter and #lua APIs to script a function that toggles
between #HTML and #markdown image synax
</content>
  </entry>
  <entry>
    <title>Building a static storage import-map CDN</title>
    <link href="https://bennypowers.dev/posts/import-map-cdn/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/import-map-cdn/</id>
    <content type="html">Import maps, the new browser standard, open up a world of possibilities for  factoring and optimizing web pages and experiences. In this post, we explore  one of them briefly: developing a static import-map-based #CDN to serve your  #NPM packages.
</content>
  </entry>
  <entry>
    <title>מקלדת עדעלמן הארגונומי</title>
    <link href="https://bennypowers.dev/posts/adelman/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/adelman/</id>
    <content type="html">מקלדת נוחה וארגונומית לעברית שמבוסס על המקלדת הלטינית דבוראק</content>
  </entry>
  <entry>
    <title>webc.nvim</title>
    <link href="https://bennypowers.dev/posts/webc-nvim/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/webc-nvim/</id>
    <content type="html">New Neovim Plugin - Basic support for WebC files</content>
  </entry>
  <entry>
    <title>ספירה ואיסרו חג</title>
    <link href="https://bennypowers.dev/posts/sefira-isru-hag-pesah/" />
    <updated>2025-08-20T20:46:21Z</updated>
    <id>https://bennypowers.dev/posts/sefira-isru-hag-pesah/</id>
    <content type="html">דרשה על ספירת העומר ואיסרו חג שניתנה בבית הכנסת שערי רחמים ושמחה בירושלים</content>
  </entry>
  <entry>
    <title>ELI5 What are Web Components</title>
    <link href="https://bennypowers.dev/posts/eli5-web-components/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/eli5-web-components/</id>
    <content type="html">#eli5 (explain to me like I&#39;m 5-years-old) what #WebComponents are and how  they&#39;re different from #javascript-heavy #frameworks
</content>
  </entry>
  <entry>
    <title>Wrapping Emoji in your 11ty build</title>
    <link href="https://bennypowers.dev/posts/11ty-wrap-emoji/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/11ty-wrap-emoji/</id>
    <content type="html">Wrapping emoji in element with #aria-label is an #accessibility practice  recommended by experts like Leonie Watson. This post builds on work by Kitty  Giraudel and others in automatically wrapping emoji in your #11ty/#eleventy  pages.
</content>
  </entry>
  <entry>
    <title>WebC First Impressions</title>
    <link href="https://bennypowers.dev/posts/webc-impressions/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/webc-impressions/</id>
    <content type="html">Thoughts from my first attempt at understanding the new WebC framework from 11ty</content>
  </entry>
  <entry>
    <title>Improving BBC micro:bit&#39;s Tug-of-LED Exercise Part 1: Audio</title>
    <link href="https://bennypowers.dev/posts/microbit-spruce-up-tug-of-led/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/microbit-spruce-up-tug-of-led/</id>
    <content type="html">Putting some shine on one of Makecode&#39;s built-in exercises. Add features to 
Tug-of-LED like audio, network, and fancier graphics. Students will learn 
about functions, arrays, and audio frequency while improving their gameplay.
</content>
  </entry>
  <entry>
    <title>splitjoin.nvim</title>
    <link href="https://bennypowers.dev/posts/splitjoin-nvim/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/splitjoin-nvim/</id>
    <content type="html">New Neovim Plugin - separate lists into multiple lines then glue them back together</content>
  </entry>
  <entry>
    <title>Cheaply Rebuilding an 11ty site on Netlify</title>
    <link href="https://bennypowers.dev/posts/cheap-netlify-11ty-rebuilds/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/cheap-netlify-11ty-rebuilds/</id>
    <content type="html">Save money and build minutes while rebuilding your 11ty site using GitHub  Actions and the netlify CLI
</content>
  </entry>
  <entry>
    <title>SVG Icon Sprites in Eleventy</title>
    <link href="https://bennypowers.dev/posts/11ty-svg-sprites/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/11ty-svg-sprites/</id>
    <content type="html">Use SVG icons in Eleventy and only ship the code you need.</content>
  </entry>
  <entry>
    <title>Micro:bit countdown</title>
    <link href="https://bennypowers.dev/posts/microbit-countdown/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/microbit-countdown/</id>
    <content type="html">Let&#39;s spice up the stock makecode countdown tutorial</content>
  </entry>
  <entry>
    <title>8 Nights of Web Components Tips: 5783</title>
    <link href="https://bennypowers.dev/posts/8-days-5783/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/8-days-5783/</id>
    <content type="html">Instead of one night of web components posts, we get eight crazy nights!</content>
  </entry>
  <entry>
    <title>Make a Micro Dreidle</title>
    <link href="https://bennypowers.dev/posts/micro-dreidle/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/micro-dreidle/</id>
    <content type="html">Let&#39;s use makecode to turn a micro:bit into a dreidle!</content>
  </entry>
  <entry>
    <title>Form-Associated Custom Elements</title>
    <link href="https://bennypowers.dev/posts/form-associated-custom-elements/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/form-associated-custom-elements/</id>
    <content type="html">Use the new &lt;em&gt;form-associated custom elements&lt;/em&gt; and  &lt;em&gt;&lt;code&gt;ElementInternals&lt;/code&gt;&lt;/em&gt; standards to create accessible custom  elements which behave like native HTML form controls.
</content>
  </entry>
  <entry>
    <title>Let&#39;s Write a Redux Controller for Web Components</title>
    <link href="https://bennypowers.dev/posts/lets-write-a-redux-controller-for-web-components/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/lets-write-a-redux-controller-for-web-components/</id>
    <content type="html">Using Lit-style reactive controllers, learn how to easily add redux-style 
state reducers to your web components.
</content>
  </entry>
  <entry>
    <title>8 Days of Web Components Tips</title>
    <link href="https://bennypowers.dev/posts/8-days-of-webcomponents-tips/" />
    <updated>2024-09-04T04:56:21Z</updated>
    <id>https://bennypowers.dev/posts/8-days-of-webcomponents-tips/</id>
    <content type="html">In honour of Hannukah this year, I undertook to write 8 web components tips, one for each night of the festival. Tonight is the 8th and final night of the festival. The mystics said that this night combines and contains aspects of each of the seven previous nights, so I&#39;d like to share a compilation of those tips with the dev community.</content>
  </entry>
  <entry>
    <title>Narrowing the Type of Class Accessors</title>
    <link href="https://bennypowers.dev/posts/narrowing-the-type-of-class-accessors/" />
    <updated>2024-09-04T04:56:21Z</updated>
    <id>https://bennypowers.dev/posts/narrowing-the-type-of-class-accessors/</id>
    <content type="html">Try using decorators to narrow the type of JavaScript subclass accessors</content>
  </entry>
  <entry>
    <title>What&#39;s Not new in React 18</title>
    <link href="https://bennypowers.dev/posts/whats-not-new-in-react-18/" />
    <updated>2024-09-04T04:56:21Z</updated>
    <id>https://bennypowers.dev/posts/whats-not-new-in-react-18/</id>
    <content type="html">The react team could have implemented HTML support in React 18, they could have even let others do it for them, but they didn&#39;t. It&#39;s time to reconsider a web framework which is at best negligent and at worst actively hostile to web standards.</content>
  </entry>
  <entry>
    <title>Let&#39;s Build a Colour Picker Web Component</title>
    <link href="https://bennypowers.dev/posts/lets-build-a-colour-picker-web-component/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/lets-build-a-colour-picker-web-component/</id>
    <content type="html">Build and accessible, web-native colour picker component that works in any  framework with the web components APIs.
</content>
  </entry>
  <entry>
    <title>Any Framework, One Stripe Integration</title>
    <link href="https://bennypowers.dev/posts/any-framework-one-stripe-integration/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/any-framework-one-stripe-integration/</id>
    <content type="html">Stripe Elements custom elements work across front-end frameworks and even in vanilla HTML and JS.</content>
  </entry>
  <entry>
    <title>Promise Chains are Kinda Awesome</title>
    <link href="https://bennypowers.dev/posts/promise-chains-are-kinda-awesome/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/promise-chains-are-kinda-awesome/</id>
    <content type="html">Some say that promises shouldn&#39;t be used when async await is available but that&#39;s not always true. Here&#39;s why &#39;promise chains&#39; are actually amazing.</content>
  </entry>
  <entry>
    <title>Centring Overlapping Content with CSS Grid</title>
    <link href="https://bennypowers.dev/posts/centring-overlapping-content-with-css-grid/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/centring-overlapping-content-with-css-grid/</id>
    <content type="html">How to overlay content on top of an image or other element simply using CSS Grid.</content>
  </entry>
  <entry>
    <title>Embed a Dev.to User Feed with Web Components</title>
    <link href="https://bennypowers.dev/posts/embed-a-dev-to-user-feed-with-web-components/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/embed-a-dev-to-user-feed-with-web-components/</id>
    <content type="html">Let&#39;s build a web component to embed a dev.to feed in a page.</content>
  </entry>
  <entry>
    <title>Lets Build Web Components! Part 8: MythBusters Edition</title>
    <link href="https://bennypowers.dev/posts/lets-build-web-components/part-8-mythbusters/" />
    <updated>2023-01-31T10:23:33Z</updated>
    <id>https://bennypowers.dev/posts/lets-build-web-components/part-8-mythbusters/</id>
    <content type="html">Web Components are awesome, but perhaps a little misunderstood. This post dispels many myths which have cropped up recently.</content>
  </entry>
  <entry>
    <title>Lets Build Web Components! Part 6: Gluon</title>
    <link href="https://bennypowers.dev/posts/lets-build-web-components/part-6-gluon/" />
    <updated>2022-11-09T14:31:56Z</updated>
    <id>https://bennypowers.dev/posts/lets-build-web-components/part-6-gluon/</id>
    <content type="html">Hit that sweet spot between library cruft and bare browser APIs with Gluon web components.</content>
  </entry>
  <entry>
    <title>Lets Build Web Components! Part 7: Hybrids</title>
    <link href="https://bennypowers.dev/posts/lets-build-web-components/part-7-hybrids/" />
    <updated>2022-11-09T14:31:56Z</updated>
    <id>https://bennypowers.dev/posts/lets-build-web-components/part-7-hybrids/</id>
    <content type="html">Web Components are the future, but with a little care and some helpful polyfills, they can be the present as well.</content>
  </entry>
  <entry>
    <title>Lets Build Web Components! Part 5: LitElement</title>
    <link href="https://bennypowers.dev/posts/lets-build-web-components/part-5-litelement/" />
    <updated>2022-11-09T14:31:56Z</updated>
    <id>https://bennypowers.dev/posts/lets-build-web-components/part-5-litelement/</id>
    <content type="html">Reactive Components without compiling or VDOM Overhead? Say hello to LitElement.</content>
  </entry>
  <entry>
    <title>Lets Build Web Components! Part 4: Polymer Library</title>
    <link href="https://bennypowers.dev/posts/lets-build-web-components/part-4-polymer-library/" />
    <updated>2022-11-09T14:31:56Z</updated>
    <id>https://bennypowers.dev/posts/lets-build-web-components/part-4-polymer-library/</id>
    <content type="html">Learn how to build web components and factor apps with the OG web-components library, Polymer.</content>
  </entry>
  <entry>
    <title>Solving Problems in Vue with Web Components</title>
    <link href="https://bennypowers.dev/posts/solving-problems-in-vue-with-web-components/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/solving-problems-in-vue-with-web-components/</id>
    <content type="html">You don&#39;t need to give up your frameworks to use web components. You can use them anywhere you can use HTML and JavaScript.</content>
  </entry>
  <entry>
    <title>Lets Build Web Components! Part 3: Vanilla Components</title>
    <link href="https://bennypowers.dev/posts/lets-build-web-components/part-3-vanilla-components/" />
    <updated>2022-11-09T14:31:56Z</updated>
    <id>https://bennypowers.dev/posts/lets-build-web-components/part-3-vanilla-components/</id>
    <content type="html">You don&#39;t need a fancy framework or complicated tools to design components and build apps, you just need your web browser!</content>
  </entry>
  <entry>
    <title>Lets Build Web Components! Part 2: The Polyfills</title>
    <link href="https://bennypowers.dev/posts/lets-build-web-components/part-2-the-polyfills/" />
    <updated>2022-11-09T14:31:56Z</updated>
    <id>https://bennypowers.dev/posts/lets-build-web-components/part-2-the-polyfills/</id>
    <content type="html">Web Components are the future, but with a little care and some helpful polyfills, they can be the present as well.</content>
  </entry>
  <entry>
    <title>Lets Build Web Components! Part 1: The Standards</title>
    <link href="https://bennypowers.dev/posts/lets-build-web-components/part-1-the-standards/" />
    <updated>2022-11-09T14:31:56Z</updated>
    <id>https://bennypowers.dev/posts/lets-build-web-components/part-1-the-standards/</id>
    <content type="html">A step by step guide on how to factor a modern, component-based app using web standards</content>
  </entry>
  <entry>
    <title>How I broke Dev.to on my First PR</title>
    <link href="https://bennypowers.dev/posts/how-i-broke-devto-on-my-first-pr/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/how-i-broke-devto-on-my-first-pr/</id>
    <content type="html">A tale of two face-palms</content>
  </entry>
  <entry>
    <title>You Should be Using esm</title>
    <link href="https://bennypowers.dev/posts/you-should-be-using-esm/" />
    <updated>2023-07-28T08:02:13Z</updated>
    <id>https://bennypowers.dev/posts/you-should-be-using-esm/</id>
    <content type="html">esm lets you seamlessly combine cjs and js modules with little fuss, if you&#39;re transpiling just to use import, chances are you shouldn&#39;t.</content>
  </entry>
</feed>
