<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Marco Heine’s Blog</title><description>Writing about everything I learn about the web and its technologies</description><link>https://marcoheine.com/</link><item><title>Do not disable buttons</title><link>https://marcoheine.com/blog/do-not-disable-buttons/</link><guid isPermaLink="true">https://marcoheine.com/blog/do-not-disable-buttons/</guid><description>Today I learned that disabling buttons is a bad idea. There is a better solution to that.</description><pubDate>Mon, 22 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Hightlight text on scroll</title><link>https://marcoheine.com/blog/highlight-text-on-scroll/</link><guid isPermaLink="true">https://marcoheine.com/blog/highlight-text-on-scroll/</guid><description>Chris Coyier shared a technqiue to highlight text on scroll using the upcoming scroll-driven animations.</description><pubDate>Thu, 01 Feb 2024 00:00:00 GMT</pubDate></item><item><title>fit-content</title><link>https://marcoheine.com/blog/fit-content/</link><guid isPermaLink="true">https://marcoheine.com/blog/fit-content/</guid><description>The property fit-content is super useful if you want to shrink wrap an element to its contents.</description><pubDate>Thu, 25 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Why external links should always open in the same tab</title><link>https://marcoheine.com/blog/open-external-links-in-same-tab/</link><guid isPermaLink="true">https://marcoheine.com/blog/open-external-links-in-same-tab/</guid><description>Today I learned that external links should always open in the same tab.</description><pubDate>Thu, 18 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Width and Height in CSS</title><link>https://marcoheine.com/blog/width-and-height-in-css/</link><guid isPermaLink="true">https://marcoheine.com/blog/width-and-height-in-css/</guid><description>Width and height in CSS are easy to use but height if often misunderstood.</description><pubDate>Tue, 05 Dec 2023 00:00:00 GMT</pubDate></item><item><title>Browsing with assistive technology</title><link>https://marcoheine.com/blog/browsing-with-assistive-technology/</link><guid isPermaLink="true">https://marcoheine.com/blog/browsing-with-assistive-technology/</guid><description>Today I learned a lot about browsing the web with assistive technology by watching the videos from Tetralogical.</description><pubDate>Wed, 25 Oct 2023 00:00:00 GMT</pubDate></item><item><title>The HTML Search Element</title><link>https://marcoheine.com/blog/the-html-search-element/</link><guid isPermaLink="true">https://marcoheine.com/blog/the-html-search-element/</guid><description>The HTML Search Element is a new semantic element that can be used as a container for the parts of the document related to performing a search or filtering operation.</description><pubDate>Mon, 16 Oct 2023 00:00:00 GMT</pubDate></item><item><title>Web Sustainability Guidelines</title><link>https://marcoheine.com/blog/web-sustainability-guidelines/</link><guid isPermaLink="true">https://marcoheine.com/blog/web-sustainability-guidelines/</guid><description>The Sustainability Web Design Community Group announced the Web Sustainability Guidelines. It’s all about “how to design and implement digital products and services that put people and the planet first.”</description><pubDate>Wed, 20 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Developer Diaries 15</title><link>https://marcoheine.com/blog/developer-diaries-15/</link><guid isPermaLink="true">https://marcoheine.com/blog/developer-diaries-15/</guid><description>Developer Diaries 15 is about building an E-Commerce website with Shopify Hydrogen V2 and Sanity, reducing client-side JavaScript, and more.</description><pubDate>Thu, 07 Sep 2023 00:00:00 GMT</pubDate></item><item><title>View Transitions are coming (Astro 3.0)</title><link>https://marcoheine.com/blog/view-transitions-are-coming/</link><guid isPermaLink="true">https://marcoheine.com/blog/view-transitions-are-coming/</guid><description>View Transitions will soon be available in all major browsers and Astro is the first framework to support them.</description><pubDate>Wed, 06 Sep 2023 00:00:00 GMT</pubDate></item><item><title>CSS Selectors Visual Guide</title><link>https://marcoheine.com/blog/css-selectors-visual-guide/</link><guid isPermaLink="true">https://marcoheine.com/blog/css-selectors-visual-guide/</guid><description>Today I learned about this visual guide to all CSS selectors</description><pubDate>Thu, 31 Aug 2023 00:00:00 GMT</pubDate></item><item><title>How to build an E-Commerce website with Shopify Hydrogen V2 and Sanity</title><link>https://marcoheine.com/blog/e-commerce-website-with-shopify-hydrogen/</link><guid isPermaLink="true">https://marcoheine.com/blog/e-commerce-website-with-shopify-hydrogen/</guid><description>In this blog post I share how I built an E-Commerce website with Shopify Hydrogen V2 and Sanity.</description><pubDate>Thu, 31 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Learn HTML</title><link>https://marcoheine.com/blog/learn-html/</link><guid isPermaLink="true">https://marcoheine.com/blog/learn-html/</guid><description>Learn HTML! It is still the foundation of the web and the most important language to learn.</description><pubDate>Wed, 16 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Developer Diaries 14</title><link>https://marcoheine.com/blog/developer-diaries-14/</link><guid isPermaLink="true">https://marcoheine.com/blog/developer-diaries-14/</guid><description>Developer Diaries 14 is about shifting priorities, working with friends, and traveling to the UK.</description><pubDate>Mon, 14 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Have you used Web Components?</title><link>https://marcoheine.com/blog/have-you-used-web-components/</link><guid isPermaLink="true">https://marcoheine.com/blog/have-you-used-web-components/</guid><description>Have you used Web Components? I have not and I wondered why. Dave Rupert has a lot on opinions why Web Components have not succeeded yet and in this post I summarize his blog post.</description><pubDate>Wed, 09 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Developer Diaries 13</title><link>https://marcoheine.com/blog/developer-diaries-13/</link><guid isPermaLink="true">https://marcoheine.com/blog/developer-diaries-13/</guid><description>Developer Diaries 13 is about a lot of public holidays, fernweh, the new zelda game and sommer.</description><pubDate>Fri, 16 Jun 2023 00:00:00 GMT</pubDate></item><item><title>The best tech stack for web development in 2023</title><link>https://marcoheine.com/blog/best-tech-stack-for-web-development-in-2023/</link><guid isPermaLink="true">https://marcoheine.com/blog/best-tech-stack-for-web-development-in-2023/</guid><description>In this blog post I will share my thoughts on what&apos;s the best tech stack for web development in 2023 that will help you to build great web applications.</description><pubDate>Mon, 12 Jun 2023 00:00:00 GMT</pubDate></item><item><title>The popover API</title><link>https://marcoheine.com/blog/popover-api/</link><guid isPermaLink="true">https://marcoheine.com/blog/popover-api/</guid><description>The popover API is a new HTML attribute that makes it easy to integrate popovers into websites without the need for JavaScript.</description><pubDate>Wed, 31 May 2023 00:00:00 GMT</pubDate></item><item><title>Scrum vs. Kanban</title><link>https://marcoheine.com/blog/scrum-vs-kanban/</link><guid isPermaLink="true">https://marcoheine.com/blog/scrum-vs-kanban/</guid><description>Scrum vs Kanban is an ever ongoing discussion on what agile framwork is superior. In this blog post I&apos;ll explain why Kanban works best for me.</description><pubDate>Thu, 25 May 2023 00:00:00 GMT</pubDate></item><item><title>The problem with sticky menus</title><link>https://marcoheine.com/blog/the-problem-with-sticky-menus/</link><guid isPermaLink="true">https://marcoheine.com/blog/the-problem-with-sticky-menus/</guid><description>Sticky menus are used widely on the web but come with some serious issues. In this post I learned about the problems they cause and what to do instead.</description><pubDate>Wed, 24 May 2023 00:00:00 GMT</pubDate></item><item><title>Developer Diaries 12</title><link>https://marcoheine.com/blog/developer-diaries-12/</link><guid isPermaLink="true">https://marcoheine.com/blog/developer-diaries-12/</guid><description>Developer Diaries 12 is about &quot;boring&quot; work, a short holiday, pausing working out and finding great joy in a new video game.</description><pubDate>Thu, 11 May 2023 00:00:00 GMT</pubDate></item><item><title>CSS Nesting</title><link>https://marcoheine.com/blog/css-nesting/</link><guid isPermaLink="true">https://marcoheine.com/blog/css-nesting/</guid><description>CSS Nesting is finally built into the language. No need for a preprocessor anymore! In this post, I&apos;ll look at the spec and valid selectors.</description><pubDate>Wed, 10 May 2023 00:00:00 GMT</pubDate></item><item><title>Rich Harris: Hot takes on the web</title><link>https://marcoheine.com/blog/rich-harris-hot-takes-on-the-web/</link><guid isPermaLink="true">https://marcoheine.com/blog/rich-harris-hot-takes-on-the-web/</guid><description>This blog post summarizes my thoughts on Rich Harris talk about the current state of web development and his opinions on frameworks, the web and the edge.</description><pubDate>Mon, 08 May 2023 00:00:00 GMT</pubDate></item><item><title>Image Carbon</title><link>https://marcoheine.com/blog/image-carbon/</link><guid isPermaLink="true">https://marcoheine.com/blog/image-carbon/</guid><description>Image Carbon is a tool that helps you to calculate the carbon footprint of your websites images</description><pubDate>Thu, 04 May 2023 00:00:00 GMT</pubDate></item><item><title>Vercel Storage</title><link>https://marcoheine.com/blog/vercel-storage/</link><guid isPermaLink="true">https://marcoheine.com/blog/vercel-storage/</guid><description>Vercel recently introduced storage. A suite of serverless storage solutions like KV, Postgres and Blob.</description><pubDate>Wed, 03 May 2023 00:00:00 GMT</pubDate></item><item><title>Text-wrap: balance</title><link>https://marcoheine.com/blog/text-wrap-balance/</link><guid isPermaLink="true">https://marcoheine.com/blog/text-wrap-balance/</guid><description>Text-wrap balance is a new way to specify with CSS how lines of text are balanced.</description><pubDate>Wed, 26 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Developer Diaries 11</title><link>https://marcoheine.com/blog/developer-diaries-11/</link><guid isPermaLink="true">https://marcoheine.com/blog/developer-diaries-11/</guid><description>Developer Diaries 11 is about a lot of thoughts about AI, having a diversified work month and the joy of weekend getaways.</description><pubDate>Tue, 11 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Building accessible modal dialogs</title><link>https://marcoheine.com/blog/building-accessible-modal-dialogs/</link><guid isPermaLink="true">https://marcoheine.com/blog/building-accessible-modal-dialogs/</guid><description>Today I learned how to make modal dialogs accessible so that they can be used by people who use assistive technologies to navigate the web.</description><pubDate>Wed, 05 Apr 2023 00:00:00 GMT</pubDate></item><item><title>What is prop drilling and how to avoid it</title><link>https://marcoheine.com/blog/what-is-prop-drilling-and-how-to-avoid-it/</link><guid isPermaLink="true">https://marcoheine.com/blog/what-is-prop-drilling-and-how-to-avoid-it/</guid><description>Prop Drilling is a concept in React that is sometimes unavoidable but, in most cases, should not be applied. In This article, I will discuss what it is and how to avoid it.</description><pubDate>Thu, 30 Mar 2023 00:00:00 GMT</pubDate></item><item><title>AI will make our jobs easier and not replace them</title><link>https://marcoheine.com/blog/ai-will-make-our-jobs-easier-not-replace-them/</link><guid isPermaLink="true">https://marcoheine.com/blog/ai-will-make-our-jobs-easier-not-replace-them/</guid><description>I believe that AI will make our jobs easier and not replace them. This blog post is about the fear and uncertainty around AI and how it will change our jobs.</description><pubDate>Thu, 23 Mar 2023 00:00:00 GMT</pubDate></item><item><title>React Server Components</title><link>https://marcoheine.com/blog/react-server-components/</link><guid isPermaLink="true">https://marcoheine.com/blog/react-server-components/</guid><description>Today I learned about React Server Components, what they are and how they will be useful.</description><pubDate>Thu, 16 Mar 2023 00:00:00 GMT</pubDate></item><item><title>CSS Scroll Snap</title><link>https://marcoheine.com/blog/scroll-snap/</link><guid isPermaLink="true">https://marcoheine.com/blog/scroll-snap/</guid><description>Today I learned about how you create a scroll snap effect in CSS with the scroll snap properties.</description><pubDate>Thu, 16 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Developer Diaries 10</title><link>https://marcoheine.com/blog/developer-diaries-10/</link><guid isPermaLink="true">https://marcoheine.com/blog/developer-diaries-10/</guid><description>Developer Diaries 10 is about my freelancing career turning one year old, a lot of talks with possible future clients, and a lot of fun writing blog posts.</description><pubDate>Thu, 09 Mar 2023 00:00:00 GMT</pubDate></item><item><title>SVG Drawing Animation</title><link>https://marcoheine.com/blog/svg-drawing-animation/</link><guid isPermaLink="true">https://marcoheine.com/blog/svg-drawing-animation/</guid><description>Today I learned how to animate SVG drawings using CSS.</description><pubDate>Wed, 08 Mar 2023 00:00:00 GMT</pubDate></item><item><title>The Web needs Improvement</title><link>https://marcoheine.com/blog/the-web-needs-improvement/</link><guid isPermaLink="true">https://marcoheine.com/blog/the-web-needs-improvement/</guid><description>Recently, I had a few experiences that shocked me. I wanted to accomplish some small tasks on several websites. And I struggled with all of them.</description><pubDate>Mon, 06 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Vercel Cron Jobs</title><link>https://marcoheine.com/blog/vercel-cron-jobs/</link><guid isPermaLink="true">https://marcoheine.com/blog/vercel-cron-jobs/</guid><description>Today I learned that Vercel introduced Cron Jobs recently. So now you can automate repetetive tasks in a serverless Environment like on Vercel.</description><pubDate>Wed, 01 Mar 2023 00:00:00 GMT</pubDate></item><item><title>WordPress vs. headless CMS</title><link>https://marcoheine.com/blog/wordpress-vs-headless-cms/</link><guid isPermaLink="true">https://marcoheine.com/blog/wordpress-vs-headless-cms/</guid><description>In this blog post, I will take a closer look at headless CMS and share the advantages over a traditional monolith CMS like Wordpress.</description><pubDate>Thu, 23 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Input Attributes for better Forms</title><link>https://marcoheine.com/blog/input-attributes-for-better-forms/</link><guid isPermaLink="true">https://marcoheine.com/blog/input-attributes-for-better-forms/</guid><description>Filling Forms on website can be an unnecessary pain. Recently I&apos;ve learned about some simple steps to make Forms more user friendly.</description><pubDate>Wed, 22 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Migrating from Gatsby to Next.js</title><link>https://marcoheine.com/blog/migrating-from-gatsby-to-nextjs/</link><guid isPermaLink="true">https://marcoheine.com/blog/migrating-from-gatsby-to-nextjs/</guid><description>In this blog post I&apos;ll document everything about my process of migrating from Gatsby to Next.js and what I&apos;ve struggled with.</description><pubDate>Thu, 16 Feb 2023 00:00:00 GMT</pubDate></item><item><title>What&apos;s new in Lighthouse 10</title><link>https://marcoheine.com/blog/whats-new-in-lighthouse-10/</link><guid isPermaLink="true">https://marcoheine.com/blog/whats-new-in-lighthouse-10/</guid><description>Lighthouse 10 was released recently and included some significant new features. In this Today-I-learned Post will have a look at everything new.</description><pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Developer Diaries 09</title><link>https://marcoheine.com/blog/developer-diaries-09/</link><guid isPermaLink="true">https://marcoheine.com/blog/developer-diaries-09/</guid><description>In episode 09 of the Developer Diaries I reflect on a quiet January, lot of motivation to write and a new category: Life.</description><pubDate>Fri, 10 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Don&apos;t use return types in TypeScript</title><link>https://marcoheine.com/blog/dont-use-return-types-in-typescript/</link><guid isPermaLink="true">https://marcoheine.com/blog/dont-use-return-types-in-typescript/</guid><description>Today I learned about the discussion if return types are necessary in TypeScript or not.</description><pubDate>Wed, 08 Feb 2023 00:00:00 GMT</pubDate></item><item><title>New CSS features in 2023</title><link>https://marcoheine.com/blog/new-css-features-in-2023/</link><guid isPermaLink="true">https://marcoheine.com/blog/new-css-features-in-2023/</guid><description>A lot of new CSS features gained major browser support recently or will gain it soon. In this blog post, I will explain all the new CSS features you can start to use in 2023.</description><pubDate>Thu, 26 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Removing YouTube Shorts with CSS</title><link>https://marcoheine.com/blog/removing-youtube-shorts-with-css/</link><guid isPermaLink="true">https://marcoheine.com/blog/removing-youtube-shorts-with-css/</guid><description>Today I learned how you can remove YouTube Shorts from your subscription feed with CSS!</description><pubDate>Wed, 25 Jan 2023 00:00:00 GMT</pubDate></item><item><title>TypeScript Type Guards</title><link>https://marcoheine.com/blog/typescript-type-guards/</link><guid isPermaLink="true">https://marcoheine.com/blog/typescript-type-guards/</guid><description>TypeScript Type Guards are used when you only want to allow a specific type in a function. Learn how to write a great Type Guard with examples.</description><pubDate>Thu, 19 Jan 2023 00:00:00 GMT</pubDate></item><item><title>State of Usability in 2023</title><link>https://marcoheine.com/blog/state-of-usability-in-2023/</link><guid isPermaLink="true">https://marcoheine.com/blog/state-of-usability-in-2023/</guid><description>Today I learned about the State of Usability in 2023</description><pubDate>Wed, 18 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Developer Diaries 08</title><link>https://marcoheine.com/blog/developer-diaries-08/</link><guid isPermaLink="true">https://marcoheine.com/blog/developer-diaries-08/</guid><description>Number 8 of my developer diaries series is about a chaotic month with the release of one of the biggest projects, context-switching and illness</description><pubDate>Thu, 12 Jan 2023 00:00:00 GMT</pubDate></item><item><title>CSS Gradient Text</title><link>https://marcoheine.com/blog/css-gradient-text/</link><guid isPermaLink="true">https://marcoheine.com/blog/css-gradient-text/</guid><description>Today I learned how to create beautiful text gradients with CSS</description><pubDate>Wed, 11 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Developer Diaries 07</title><link>https://marcoheine.com/blog/developer-diaries-07/</link><guid isPermaLink="true">https://marcoheine.com/blog/developer-diaries-07/</guid><description>Number 7 of my web developer diary series is about able to choose with whom I work and great teamwork</description><pubDate>Tue, 06 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Clamp CSS function</title><link>https://marcoheine.com/blog/clamp-css-function/</link><guid isPermaLink="true">https://marcoheine.com/blog/clamp-css-function/</guid><description>Today I learned about the clamp CSS function which enables fluid typography based on the viewport size without the need for media queries</description><pubDate>Thu, 01 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Never use px for font-size</title><link>https://marcoheine.com/blog/never-use-px-for-font-size/</link><guid isPermaLink="true">https://marcoheine.com/blog/never-use-px-for-font-size/</guid><description>Today I learned about the website TechPays which aims to remove the taboo on tech compensation in Europe</description><pubDate>Wed, 30 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Tech Pays in Europe</title><link>https://marcoheine.com/blog/tech-pays-in-europe/</link><guid isPermaLink="true">https://marcoheine.com/blog/tech-pays-in-europe/</guid><description>Today I learned about the website TechPays which aims to remove the taboo on tech compensation in Europe</description><pubDate>Tue, 29 Nov 2022 00:00:00 GMT</pubDate></item><item><title>What&apos;s new in Next.js 13?</title><link>https://marcoheine.com/blog/whats-new-in-nextjs-13/</link><guid isPermaLink="true">https://marcoheine.com/blog/whats-new-in-nextjs-13/</guid><description>At the end of October, Next.js released a new big update - Next.js 13. This blog post will look into all the new features and discuss the changes and improvements.</description><pubDate>Wed, 23 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Web Developer Diary 06</title><link>https://marcoheine.com/blog/web-developer-diary-06/</link><guid isPermaLink="true">https://marcoheine.com/blog/web-developer-diary-06/</guid><description>Number 6 of my web developer diary series is about working coming back to germany, feeling healthy and new opportunities.</description><pubDate>Fri, 11 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Workation</title><link>https://marcoheine.com/blog/workation/</link><guid isPermaLink="true">https://marcoheine.com/blog/workation/</guid><description>I&apos;ve always wanted to try the concept of workation. But working at my desk, taking a break, stepping outside in the sun, and looking at the beach seemed like a ridiculous dream. But, with Covid enabling more remote work and me being a freelancer, deciding for myself where to work, workation seemed possible!</description><pubDate>Fri, 28 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Secure JavaScript URL validation</title><link>https://marcoheine.com/blog/secure-javascript-url-validation/</link><guid isPermaLink="true">https://marcoheine.com/blog/secure-javascript-url-validation/</guid><description>Today I learned about a secure way to validate URLs in JavaScript</description><pubDate>Wed, 26 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Fixing my SEO mistakes</title><link>https://marcoheine.com/blog/fixing-my-seo-mistakes/</link><guid isPermaLink="true">https://marcoheine.com/blog/fixing-my-seo-mistakes/</guid><description>I had a lot of simple SEO mistakes on my own website that I didn&apos;t even know about. In this blog post I share how I fixed them.</description><pubDate>Fri, 21 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Worlds highest website</title><link>https://marcoheine.com/blog/worlds-highest-website/</link><guid isPermaLink="true">https://marcoheine.com/blog/worlds-highest-website/</guid><description>Today I learned about the worlds highest website</description><pubDate>Thu, 20 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Learnings from my last job</title><link>https://marcoheine.com/blog/learnings-from-my-last-job/</link><guid isPermaLink="true">https://marcoheine.com/blog/learnings-from-my-last-job/</guid><description>In this blog post I share all my learnings from my last job as a permanent employed software developer.</description><pubDate>Thu, 13 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Squoosh App</title><link>https://marcoheine.com/blog/squoosh-app/</link><guid isPermaLink="true">https://marcoheine.com/blog/squoosh-app/</guid><description>The Squoosh App is a web app that allows you to compress images in a variety of formats.</description><pubDate>Sat, 08 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Web Developer Diary 05</title><link>https://marcoheine.com/blog/web-developer-diary-05/</link><guid isPermaLink="true">https://marcoheine.com/blog/web-developer-diary-05/</guid><description>Number 5 of my web developer diary series is about working from anywhere in the world (still mostly europe) in september 2022, holidays and reading a lot.</description><pubDate>Fri, 07 Oct 2022 00:00:00 GMT</pubDate></item><item><title>TypeScript tooling in Prismic</title><link>https://marcoheine.com/blog/typescript-tooling-in-prismic/</link><guid isPermaLink="true">https://marcoheine.com/blog/typescript-tooling-in-prismic/</guid><description>Prismic launched some new features aroung TypeScript tooling. In this blog post I will take a look at what they are and how to use them.</description><pubDate>Thu, 29 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Web Vitals Element</title><link>https://marcoheine.com/blog/web-vitals-element/</link><guid isPermaLink="true">https://marcoheine.com/blog/web-vitals-element/</guid><description>Web Vitals Element ist a component that displays the Core Web Vitals metrics of your website.</description><pubDate>Wed, 28 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Web Developer Diary 04</title><link>https://marcoheine.com/blog/web-developer-diary-04/</link><guid isPermaLink="true">https://marcoheine.com/blog/web-developer-diary-04/</guid><description>In number 4 of my web developer diary series I write about everything that happened in august. New Projects, new opportunities, new learnings.</description><pubDate>Wed, 07 Sep 2022 00:00:00 GMT</pubDate></item><item><title>The a11y project</title><link>https://marcoheine.com/blog/the-a11y-project/</link><guid isPermaLink="true">https://marcoheine.com/blog/the-a11y-project/</guid><description>a11y stands for accessibility - the a11y project is a community-driven effort to make digital accesibility easier</description><pubDate>Fri, 02 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Incomplete list of CSS mistakes</title><link>https://marcoheine.com/blog/incomplete-list-of-css-mistakes/</link><guid isPermaLink="true">https://marcoheine.com/blog/incomplete-list-of-css-mistakes/</guid><description>There exists a list with mistakes made in the design of CSS, that can&apos;t be corrected because it would break the internet</description><pubDate>Wed, 24 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Setting a theme color without JavaScript</title><link>https://marcoheine.com/blog/setting-theme-without-javascript/</link><guid isPermaLink="true">https://marcoheine.com/blog/setting-theme-without-javascript/</guid><description>It&apos;s possible to set the theme color of your application without JavaScript. It just works with plain CSS.</description><pubDate>Wed, 17 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Faster page loads with early hints</title><link>https://marcoheine.com/blog/faster-page-loads-with-early-hints/</link><guid isPermaLink="true">https://marcoheine.com/blog/faster-page-loads-with-early-hints/</guid><description>Eary hints is a status code (103 Early Hints) that can help improve the performance of a website, because it allows the server to sent hints to the browser about critial sub-resources.</description><pubDate>Wed, 10 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Web Developer Diary 03</title><link>https://marcoheine.com/blog/web-developer-diary-03/</link><guid isPermaLink="true">https://marcoheine.com/blog/web-developer-diary-03/</guid><description>In number 3 of my web developer series I write about quieter times, producing content for my website, SEO and other projects.</description><pubDate>Fri, 05 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Just hit publish</title><link>https://marcoheine.com/blog/just-hit-publish/</link><guid isPermaLink="true">https://marcoheine.com/blog/just-hit-publish/</guid><description>We often try to make things perfect before publishing them, which leads to not making things at all. We just need to hit publish.</description><pubDate>Mon, 01 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Array Sort modifies the original array</title><link>https://marcoheine.com/blog/array-sort-modifies-original-array/</link><guid isPermaLink="true">https://marcoheine.com/blog/array-sort-modifies-original-array/</guid><description>Today I learned, that when using the JavaScript sort() function on an array, it does not return a new array, but rather modifies the original one.</description><pubDate>Mon, 25 Jul 2022 00:00:00 GMT</pubDate></item><item><title>HTML Sanitizer API</title><link>https://marcoheine.com/blog/html-sanitizer-api/</link><guid isPermaLink="true">https://marcoheine.com/blog/html-sanitizer-api/</guid><description>Today I learned, that there is a new HTML Sanitizer API which makes it easy to sanitize HTML to prevent cross-site-scripting.</description><pubDate>Thu, 21 Jul 2022 00:00:00 GMT</pubDate></item><item><title>The mistakes I made using React</title><link>https://marcoheine.com/blog/the-mistakes-i-made-using-react/</link><guid isPermaLink="true">https://marcoheine.com/blog/the-mistakes-i-made-using-react/</guid><description>In this blog post I’m gonna share all the mistakes I made, using React.</description><pubDate>Thu, 14 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Efficiently load third-party JavaScript</title><link>https://marcoheine.com/blog/efficiently-load-third-party-js/</link><guid isPermaLink="true">https://marcoheine.com/blog/efficiently-load-third-party-js/</guid><description>Today I learned, how to efficiently load third-party JavaScript and share it on this post</description><pubDate>Wed, 13 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Data fetching in React 18</title><link>https://marcoheine.com/blog/data-fetching-in-react-18/</link><guid isPermaLink="true">https://marcoheine.com/blog/data-fetching-in-react-18/</guid><description>Today I learned, about the best way to handle data fetching in React 18.</description><pubDate>Thu, 07 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Web Developer Diary 02</title><link>https://marcoheine.com/blog/web-developer-diary-02/</link><guid isPermaLink="true">https://marcoheine.com/blog/web-developer-diary-02/</guid><description>In number 2 of my web developer series I write about finishing big projects, celebrating our marriage, having covid and starting new projects.</description><pubDate>Thu, 07 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Website Starter Kit</title><link>https://marcoheine.com/blog/website-starter-kit/</link><guid isPermaLink="true">https://marcoheine.com/blog/website-starter-kit/</guid><description>In this blog post I&apos;m going to explain my website starter kit, which I use to kickstart every new client project.</description><pubDate>Fri, 24 Jun 2022 00:00:00 GMT</pubDate></item><item><title>How to write great alt text</title><link>https://marcoheine.com/blog/write-great-alt-text/</link><guid isPermaLink="true">https://marcoheine.com/blog/write-great-alt-text/</guid><description>In this post, I&apos;ll show how to write great alt text, according to Jake Archibald.</description><pubDate>Thu, 16 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Automatic ER diagrams</title><link>https://marcoheine.com/blog/automatic-er-diagrams/</link><guid isPermaLink="true">https://marcoheine.com/blog/automatic-er-diagrams/</guid><description>Today I learned that there is an automatic ER diagram generator for prisma</description><pubDate>Fri, 10 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Missusing useEffect</title><link>https://marcoheine.com/blog/missusing-use-effect/</link><guid isPermaLink="true">https://marcoheine.com/blog/missusing-use-effect/</guid><description>Today I learned that Reacts useEffect is not meant for data fetching and is not a state setter either!</description><pubDate>Tue, 07 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Web Developer Diary 01</title><link>https://marcoheine.com/blog/web-developer-diary-01/</link><guid isPermaLink="true">https://marcoheine.com/blog/web-developer-diary-01/</guid><pubDate>Sun, 05 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Most common accessibility issues</title><link>https://marcoheine.com/blog/most-common-accessibility-issues/</link><guid isPermaLink="true">https://marcoheine.com/blog/most-common-accessibility-issues/</guid><pubDate>Mon, 23 May 2022 00:00:00 GMT</pubDate></item><item><title>Confetti</title><link>https://marcoheine.com/blog/confetti/</link><guid isPermaLink="true">https://marcoheine.com/blog/confetti/</guid><pubDate>Thu, 19 May 2022 00:00:00 GMT</pubDate></item><item><title>POST vs. PUT</title><link>https://marcoheine.com/blog/post-vs-put/</link><guid isPermaLink="true">https://marcoheine.com/blog/post-vs-put/</guid><pubDate>Sat, 07 May 2022 00:00:00 GMT</pubDate></item><item><title>Headless Wordpress</title><link>https://marcoheine.com/blog/headless-wordpress/</link><guid isPermaLink="true">https://marcoheine.com/blog/headless-wordpress/</guid><pubDate>Tue, 03 May 2022 00:00:00 GMT</pubDate></item><item><title>GitHub Copilot is not stealing our jobs</title><link>https://marcoheine.com/blog/github-copilot/</link><guid isPermaLink="true">https://marcoheine.com/blog/github-copilot/</guid><pubDate>Fri, 20 Aug 2021 00:00:00 GMT</pubDate></item><item><title>Encoding POST request body</title><link>https://marcoheine.com/blog/encoding-post-request-body/</link><guid isPermaLink="true">https://marcoheine.com/blog/encoding-post-request-body/</guid><pubDate>Fri, 23 Jul 2021 00:00:00 GMT</pubDate></item><item><title>The most important things I learned from my former colleagues - part 2</title><link>https://marcoheine.com/blog/most-important-things-i-learned-from-my-former-colleagues-part-2/</link><guid isPermaLink="true">https://marcoheine.com/blog/most-important-things-i-learned-from-my-former-colleagues-part-2/</guid><pubDate>Sat, 08 May 2021 00:00:00 GMT</pubDate></item><item><title>The most important things I learned from my former colleagues - part 1</title><link>https://marcoheine.com/blog/most-important-things-i-learned-from-my-former-colleagues-part-1/</link><guid isPermaLink="true">https://marcoheine.com/blog/most-important-things-i-learned-from-my-former-colleagues-part-1/</guid><pubDate>Mon, 08 Mar 2021 00:00:00 GMT</pubDate></item><item><title>CSS container queries</title><link>https://marcoheine.com/blog/css-container-queries/</link><guid isPermaLink="true">https://marcoheine.com/blog/css-container-queries/</guid><pubDate>Wed, 24 Feb 2021 00:00:00 GMT</pubDate></item><item><title>Getting started with golang</title><link>https://marcoheine.com/blog/getting-started-with-golang/</link><guid isPermaLink="true">https://marcoheine.com/blog/getting-started-with-golang/</guid><description>In this blog post I share all the things you need to know to get started with golang.</description><pubDate>Mon, 22 Feb 2021 00:00:00 GMT</pubDate></item><item><title>Improving SEO with Gatsby Gitinfo</title><link>https://marcoheine.com/blog/improving-seo-with-gatsby-gitinfo/</link><guid isPermaLink="true">https://marcoheine.com/blog/improving-seo-with-gatsby-gitinfo/</guid><pubDate>Mon, 22 Feb 2021 00:00:00 GMT</pubDate></item><item><title>The Set Object</title><link>https://marcoheine.com/blog/set/</link><guid isPermaLink="true">https://marcoheine.com/blog/set/</guid><pubDate>Fri, 19 Feb 2021 00:00:00 GMT</pubDate></item><item><title>🚀 React performance quick wins 🚀 - 7 easy ways to improve your React performance - part 2</title><link>https://marcoheine.com/blog/7-easy-ways-to-improve-your-react-performance-part-2/</link><guid isPermaLink="true">https://marcoheine.com/blog/7-easy-ways-to-improve-your-react-performance-part-2/</guid><description>In part 2 of this series, we&apos;ll look at another four ways to improve your React performance.</description><pubDate>Mon, 18 Jan 2021 00:00:00 GMT</pubDate></item><item><title>🚀 React performance quick wins 🚀 - 7 easy ways to improve your React performance - part 1</title><link>https://marcoheine.com/blog/7-easy-ways-to-improve-your-react-performance-part-1/</link><guid isPermaLink="true">https://marcoheine.com/blog/7-easy-ways-to-improve-your-react-performance-part-1/</guid><description>In part 1 of this series, we&apos;ll look some easy way to improve your React performance.</description><pubDate>Tue, 10 Nov 2020 00:00:00 GMT</pubDate></item><item><title>React Suspense Lazy Loading Components</title><link>https://marcoheine.com/blog/react-suspense-lazy-loading/</link><guid isPermaLink="true">https://marcoheine.com/blog/react-suspense-lazy-loading/</guid><pubDate>Thu, 29 Oct 2020 00:00:00 GMT</pubDate></item><item><title>How to overcome imposter syndrome</title><link>https://marcoheine.com/blog/how-to-overcome-imposter-syndrome/</link><guid isPermaLink="true">https://marcoheine.com/blog/how-to-overcome-imposter-syndrome/</guid><description>A lot of people suffer from imposter syndrome, myself including. In this blog post I&apos;m gonna talk about what it is and how to overcome it.</description><pubDate>Mon, 05 Oct 2020 00:00:00 GMT</pubDate></item><item><title>Fetch API response.ok</title><link>https://marcoheine.com/blog/fetch-response-ok/</link><guid isPermaLink="true">https://marcoheine.com/blog/fetch-response-ok/</guid><pubDate>Fri, 21 Aug 2020 00:00:00 GMT</pubDate></item><item><title>Decode JSON web tokes</title><link>https://marcoheine.com/blog/decode-json-web-tokens/</link><guid isPermaLink="true">https://marcoheine.com/blog/decode-json-web-tokens/</guid><description>JWT dedocer, a super cool too to help you decode them</description><pubDate>Mon, 17 Aug 2020 00:00:00 GMT</pubDate></item><item><title>JavaScript Array Mutation</title><link>https://marcoheine.com/blog/javascript-array-mutation/</link><guid isPermaLink="true">https://marcoheine.com/blog/javascript-array-mutation/</guid><pubDate>Fri, 07 Aug 2020 00:00:00 GMT</pubDate></item><item><title>No floating promises</title><link>https://marcoheine.com/blog/no-floating-promises/</link><guid isPermaLink="true">https://marcoheine.com/blog/no-floating-promises/</guid><pubDate>Thu, 06 Aug 2020 00:00:00 GMT</pubDate></item><item><title>Flex-gap</title><link>https://marcoheine.com/blog/flex-gap/</link><guid isPermaLink="true">https://marcoheine.com/blog/flex-gap/</guid><pubDate>Thu, 30 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Dividing frontend from backend is an antipattern</title><link>https://marcoheine.com/blog/dividing-frontend-backend-antipattern/</link><guid isPermaLink="true">https://marcoheine.com/blog/dividing-frontend-backend-antipattern/</guid><pubDate>Mon, 27 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Optional Chaining</title><link>https://marcoheine.com/blog/optional-chaining/</link><guid isPermaLink="true">https://marcoheine.com/blog/optional-chaining/</guid><pubDate>Wed, 08 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Estimating tickets according to reference stories</title><link>https://marcoheine.com/blog/estimating-tickets-with-referene-stories/</link><guid isPermaLink="true">https://marcoheine.com/blog/estimating-tickets-with-referene-stories/</guid><pubDate>Sat, 27 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Multiline commit messages</title><link>https://marcoheine.com/blog/multiline-commit-messages/</link><guid isPermaLink="true">https://marcoheine.com/blog/multiline-commit-messages/</guid><pubDate>Sun, 07 Jun 2020 00:00:00 GMT</pubDate></item><item><title>What the heck is the event loop anyway?</title><link>https://marcoheine.com/blog/the-js-event-loop/</link><guid isPermaLink="true">https://marcoheine.com/blog/the-js-event-loop/</guid><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>Deno</title><link>https://marcoheine.com/blog/deno/</link><guid isPermaLink="true">https://marcoheine.com/blog/deno/</guid><description>A new runtime for executing JavaScript and TypeScript outside of the web browser</description><pubDate>Wed, 13 May 2020 00:00:00 GMT</pubDate></item><item><title>Second-guessing the modern web</title><link>https://marcoheine.com/blog/second-guessing-the-modern-web/</link><guid isPermaLink="true">https://marcoheine.com/blog/second-guessing-the-modern-web/</guid><pubDate>Thu, 07 May 2020 00:00:00 GMT</pubDate></item><item><title>The cost of JavaScript frameworks</title><link>https://marcoheine.com/blog/the-cost-of-js-frameworks/</link><guid isPermaLink="true">https://marcoheine.com/blog/the-cost-of-js-frameworks/</guid><pubDate>Wed, 22 Apr 2020 00:00:00 GMT</pubDate></item><item><title>Grep App</title><link>https://marcoheine.com/blog/grep-app/</link><guid isPermaLink="true">https://marcoheine.com/blog/grep-app/</guid><pubDate>Mon, 20 Apr 2020 00:00:00 GMT</pubDate></item><item><title>Terminal Aliases</title><link>https://marcoheine.com/blog/terminal-aliases/</link><guid isPermaLink="true">https://marcoheine.com/blog/terminal-aliases/</guid><pubDate>Tue, 14 Apr 2020 00:00:00 GMT</pubDate></item><item><title>ECMAScript 2020</title><link>https://marcoheine.com/blog/ecmascript2020/</link><guid isPermaLink="true">https://marcoheine.com/blog/ecmascript2020/</guid><pubDate>Mon, 06 Apr 2020 00:00:00 GMT</pubDate></item><item><title>Replace axios with fetch</title><link>https://marcoheine.com/blog/replacing-axios-with-fetch/</link><guid isPermaLink="true">https://marcoheine.com/blog/replacing-axios-with-fetch/</guid><pubDate>Tue, 31 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Margin considered harmful</title><link>https://marcoheine.com/blog/margin-considered-harmful/</link><guid isPermaLink="true">https://marcoheine.com/blog/margin-considered-harmful/</guid><pubDate>Wed, 25 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Two good reasons to use React</title><link>https://marcoheine.com/blog/two-good-reasons-to-use-react/</link><guid isPermaLink="true">https://marcoheine.com/blog/two-good-reasons-to-use-react/</guid><pubDate>Wed, 25 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Persisting redux state with localStorage</title><link>https://marcoheine.com/blog/persisting-redux-state-with-localstorage/</link><guid isPermaLink="true">https://marcoheine.com/blog/persisting-redux-state-with-localstorage/</guid><pubDate>Thu, 27 Feb 2020 00:00:00 GMT</pubDate></item><item><title>Performance and useMemo</title><link>https://marcoheine.com/blog/performance-and-usememo/</link><guid isPermaLink="true">https://marcoheine.com/blog/performance-and-usememo/</guid><pubDate>Sun, 23 Feb 2020 00:00:00 GMT</pubDate></item><item><title>Hooks in React Router</title><link>https://marcoheine.com/blog/hooks-in-react-router/</link><guid isPermaLink="true">https://marcoheine.com/blog/hooks-in-react-router/</guid><pubDate>Sun, 16 Feb 2020 00:00:00 GMT</pubDate></item><item><title>Working with GatsbyJS and Contentful</title><link>https://marcoheine.com/blog/working-with-gatsbyjs-and-contentful/</link><guid isPermaLink="true">https://marcoheine.com/blog/working-with-gatsbyjs-and-contentful/</guid><pubDate>Thu, 13 Feb 2020 00:00:00 GMT</pubDate></item><item><title>Never forget alt tags again</title><link>https://marcoheine.com/blog/never-forget-alt-tags-again/</link><guid isPermaLink="true">https://marcoheine.com/blog/never-forget-alt-tags-again/</guid><pubDate>Mon, 03 Feb 2020 00:00:00 GMT</pubDate></item><item><title>Fun with testing</title><link>https://marcoheine.com/blog/fun-with-testing/</link><guid isPermaLink="true">https://marcoheine.com/blog/fun-with-testing/</guid><pubDate>Mon, 27 Jan 2020 00:00:00 GMT</pubDate></item><item><title>New babel version</title><link>https://marcoheine.com/blog/new-babel-version/</link><guid isPermaLink="true">https://marcoheine.com/blog/new-babel-version/</guid><pubDate>Tue, 21 Jan 2020 00:00:00 GMT</pubDate></item><item><title>JavaScript and Non-JavaScript experiences</title><link>https://marcoheine.com/blog/js-and-non-js-experiences/</link><guid isPermaLink="true">https://marcoheine.com/blog/js-and-non-js-experiences/</guid><pubDate>Mon, 20 Jan 2020 00:00:00 GMT</pubDate></item><item><title>React Performance Improvements</title><link>https://marcoheine.com/blog/react-performance-improvements/</link><guid isPermaLink="true">https://marcoheine.com/blog/react-performance-improvements/</guid><pubDate>Wed, 15 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Depending on other peoples code</title><link>https://marcoheine.com/blog/depending-on-other-peoples-code/</link><guid isPermaLink="true">https://marcoheine.com/blog/depending-on-other-peoples-code/</guid><pubDate>Sat, 11 Jan 2020 00:00:00 GMT</pubDate></item><item><title>NULL as car licence</title><link>https://marcoheine.com/blog/null-as-car-licence/</link><guid isPermaLink="true">https://marcoheine.com/blog/null-as-car-licence/</guid><pubDate>Tue, 03 Dec 2019 00:00:00 GMT</pubDate></item><item><title>HTTP desync attacks</title><link>https://marcoheine.com/blog/http-desync/</link><guid isPermaLink="true">https://marcoheine.com/blog/http-desync/</guid><pubDate>Sat, 09 Nov 2019 00:00:00 GMT</pubDate></item><item><title>React - my learning journey</title><link>https://marcoheine.com/blog/reactjs-learning-journey/</link><guid isPermaLink="true">https://marcoheine.com/blog/reactjs-learning-journey/</guid><pubDate>Thu, 15 Aug 2019 00:00:00 GMT</pubDate></item><item><title>Learning CSS Grid</title><link>https://marcoheine.com/blog/learning-css-grid/</link><guid isPermaLink="true">https://marcoheine.com/blog/learning-css-grid/</guid><description>CSS Grid changed the way how we can build modern website layouts. In this blog post, I will recap everything I&apos;ve learned about it.</description><pubDate>Fri, 23 Mar 2018 00:00:00 GMT</pubDate></item><item><title>Frontend Developer Interview Questions HTML</title><link>https://marcoheine.com/blog/frontend-developer-interview-questions/</link><guid isPermaLink="true">https://marcoheine.com/blog/frontend-developer-interview-questions/</guid><pubDate>Wed, 28 Feb 2018 00:00:00 GMT</pubDate></item><item><title>JavaScript30</title><link>https://marcoheine.com/blog/javascript30/</link><guid isPermaLink="true">https://marcoheine.com/blog/javascript30/</guid><pubDate>Sun, 05 Feb 2017 00:00:00 GMT</pubDate></item><item><title>Frontend Bookmarks</title><link>https://marcoheine.com/blog/frontend-bookmarks/</link><guid isPermaLink="true">https://marcoheine.com/blog/frontend-bookmarks/</guid><pubDate>Sun, 31 Jul 2016 00:00:00 GMT</pubDate></item><item><title>New CSS Layout with CSS Grid &amp; Flexbox</title><link>https://marcoheine.com/blog/new-css-layout/</link><guid isPermaLink="true">https://marcoheine.com/blog/new-css-layout/</guid><pubDate>Sun, 08 May 2016 00:00:00 GMT</pubDate></item><item><title>Website Performance Optimization</title><link>https://marcoheine.com/blog/website-performance-optimization/</link><guid isPermaLink="true">https://marcoheine.com/blog/website-performance-optimization/</guid><description>How to optimize your website for performance and speed</description><pubDate>Thu, 31 Mar 2016 00:00:00 GMT</pubDate></item><item><title>The Development Process of this Website</title><link>https://marcoheine.com/blog/the-development-process-of-this-website/</link><guid isPermaLink="true">https://marcoheine.com/blog/the-development-process-of-this-website/</guid><pubDate>Thu, 03 Mar 2016 00:00:00 GMT</pubDate></item><item><title>Lets do this</title><link>https://marcoheine.com/blog/lets-do-this/</link><guid isPermaLink="true">https://marcoheine.com/blog/lets-do-this/</guid><description>It&apos;s finally (a)live! My own website and my own domain are now part of this big thing called WWW.</description><pubDate>Tue, 16 Feb 2016 00:00:00 GMT</pubDate></item></channel></rss>