<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Bart Stefanski</title><description>Notes, essays &amp; the occasional rant about software engineering.</description><link>https://bstefanski.com/</link><item><title>How to fix &quot;Invalid alias name&quot; error when deploying Next.js app to Cloudflare</title><link>https://bstefanski.com/blog/cloudflare-next-invalid-alias/</link><guid isPermaLink="true">https://bstefanski.com/blog/cloudflare-next-invalid-alias/</guid><pubDate>Thu, 29 May 2025 00:00:00 GMT</pubDate></item><item><title>Dynamic GitHub Action Name</title><link>https://bstefanski.com/blog/dynamic-github-action-name/</link><guid isPermaLink="true">https://bstefanski.com/blog/dynamic-github-action-name/</guid><description>How to dynamically name a GitHub Action</description><pubDate>Wed, 21 May 2025 00:00:00 GMT</pubDate></item><item><title>Get text content from React children</title><link>https://bstefanski.com/blog/text-content-from-react-children/</link><guid isPermaLink="true">https://bstefanski.com/blog/text-content-from-react-children/</guid><description>How to get text content from React children</description><pubDate>Wed, 21 May 2025 00:00:00 GMT</pubDate></item><item><title>How to fix Storybook + Vite JavaScript heap out of memory error</title><link>https://bstefanski.com/blog/fixing-storybook-vite-memory-error/</link><guid isPermaLink="true">https://bstefanski.com/blog/fixing-storybook-vite-memory-error/</guid><pubDate>Wed, 26 Feb 2025 00:00:00 GMT</pubDate></item><item><title>How to Fix Recharts Displaying an Empty Chart with React 19</title><link>https://bstefanski.com/blog/recharts-empty-chart-react-19/</link><guid isPermaLink="true">https://bstefanski.com/blog/recharts-empty-chart-react-19/</guid><pubDate>Wed, 26 Feb 2025 00:00:00 GMT</pubDate></item><item><title>How to fix &quot;failed to solve: cannot copy to non-directory&quot; when using Turborepo with Docker</title><link>https://bstefanski.com/blog/turborepo-docker-cannot-copy-to-non-directory/</link><guid isPermaLink="true">https://bstefanski.com/blog/turborepo-docker-cannot-copy-to-non-directory/</guid><pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Dockerfile for Nest.js with Prisma ORM and Turborepo</title><link>https://bstefanski.com/blog/turborepo-nestjs-prisma-dockerfile/</link><guid isPermaLink="true">https://bstefanski.com/blog/turborepo-nestjs-prisma-dockerfile/</guid><pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Dockerfile for Next.js with Turborepo</title><link>https://bstefanski.com/blog/turborepo-nextjs-dockerfile/</link><guid isPermaLink="true">https://bstefanski.com/blog/turborepo-nextjs-dockerfile/</guid><pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Using .env files with Docker Swarm</title><link>https://bstefanski.com/blog/dot-env-support-for-docker-swarm/</link><guid isPermaLink="true">https://bstefanski.com/blog/dot-env-support-for-docker-swarm/</guid><pubDate>Tue, 14 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Releasing packages in Monorepos using NPM or PNPM</title><link>https://bstefanski.com/blog/releasing-packages-monorepos-using-pnpm-npm/</link><guid isPermaLink="true">https://bstefanski.com/blog/releasing-packages-monorepos-using-pnpm-npm/</guid><description>How to make pnpm version work in monorepos by creating a temporary .git directory in the package folder.</description><pubDate>Tue, 14 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Running Next.js behind AWS CloudFront</title><link>https://bstefanski.com/blog/running-nextjs-behind-aws-cloudfront/</link><guid isPermaLink="true">https://bstefanski.com/blog/running-nextjs-behind-aws-cloudfront/</guid><description>How to fix Next.js showing JSON instead of HTML when using AWS CloudFront by configuring cache policies.</description><pubDate>Mon, 13 Jan 2025 00:00:00 GMT</pubDate></item><item><title>DDoS Attacks and Tor Network</title><link>https://bstefanski.com/blog/ddos-attacks-tor-network/</link><guid isPermaLink="true">https://bstefanski.com/blog/ddos-attacks-tor-network/</guid><pubDate>Wed, 30 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Notes on HTTP Versions, OSI Model, TCP/IP</title><link>https://bstefanski.com/blog/notes-http-osi-tcp-ip/</link><guid isPermaLink="true">https://bstefanski.com/blog/notes-http-osi-tcp-ip/</guid><pubDate>Wed, 30 Oct 2024 00:00:00 GMT</pubDate></item><item><title>What Happens When You Type google.com?</title><link>https://bstefanski.com/blog/what-happens-when-you-type-google-com/</link><guid isPermaLink="true">https://bstefanski.com/blog/what-happens-when-you-type-google-com/</guid><pubDate>Wed, 30 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Fix Docker not respecting UFW Rules</title><link>https://bstefanski.com/blog/fix-docker-ignoring-ufw/</link><guid isPermaLink="true">https://bstefanski.com/blog/fix-docker-ignoring-ufw/</guid><pubDate>Sat, 28 Sep 2024 00:00:00 GMT</pubDate></item><item><title>How to Extract Files from a Docker Image</title><link>https://bstefanski.com/blog/extract-files-from-docker-image/</link><guid isPermaLink="true">https://bstefanski.com/blog/extract-files-from-docker-image/</guid><pubDate>Tue, 24 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Make Cloudflare CDN respect Cache-Control</title><link>https://bstefanski.com/blog/make-cloudflare-cdn-respect-cache-control/</link><guid isPermaLink="true">https://bstefanski.com/blog/make-cloudflare-cdn-respect-cache-control/</guid><pubDate>Tue, 24 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Grafana dashboard for Dockerized Node.js</title><link>https://bstefanski.com/blog/grafana-dashboard-for-dockerized-nodejs/</link><guid isPermaLink="true">https://bstefanski.com/blog/grafana-dashboard-for-dockerized-nodejs/</guid><pubDate>Sat, 14 Sep 2024 00:00:00 GMT</pubDate></item><item><title>How to reload Prometheus configuration</title><link>https://bstefanski.com/blog/how-to-reload-prometheus-configuration/</link><guid isPermaLink="true">https://bstefanski.com/blog/how-to-reload-prometheus-configuration/</guid><pubDate>Fri, 13 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Enable function keys (F5, F6) on Keychron keyboards on macOS for VSCode and IntelliJ</title><link>https://bstefanski.com/blog/keychron-macos-f5-f6-function-keys-vscode-intellij/</link><guid isPermaLink="true">https://bstefanski.com/blog/keychron-macos-f5-f6-function-keys-vscode-intellij/</guid><description>Learn how to enable function keys (F5, F6) on Keychron keyboards for better compatibility with VSCode and IntelliJ on macOS.</description><pubDate>Fri, 13 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Simple Introduction to Docker Swarm</title><link>https://bstefanski.com/blog/docker-swarm-simple-introduction/</link><guid isPermaLink="true">https://bstefanski.com/blog/docker-swarm-simple-introduction/</guid><description>My notes on Docker Swarm and why it&apos;s my favorite orchestration tool that automagically scales and manages your services with just a few commands.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate></item><item><title>Copy Git branch name from task in Jira</title><link>https://bstefanski.com/blog/jira-copy-branch-name-from-task/</link><guid isPermaLink="true">https://bstefanski.com/blog/jira-copy-branch-name-from-task/</guid><pubDate>Sat, 03 Aug 2024 00:00:00 GMT</pubDate></item><item><title>How to fix &quot;Cannot install with &apos;frozen-lockfile&apos; because pnpm-lock.yaml is absent&quot; in pnpm</title><link>https://bstefanski.com/blog/how-to-fix-cannot-install-with-frozen-lockfile-because-pnpm-lockyaml-is-absent-in-pnpm/</link><guid isPermaLink="true">https://bstefanski.com/blog/how-to-fix-cannot-install-with-frozen-lockfile-because-pnpm-lockyaml-is-absent-in-pnpm/</guid><description>Resolving pnpm&apos;s frozen-lockfile error in CI/CD pipelines</description><pubDate>Fri, 02 Aug 2024 00:00:00 GMT</pubDate></item><item><title>How to update pnpm version on macOS</title><link>https://bstefanski.com/blog/how-to-update-pnpm-version/</link><guid isPermaLink="true">https://bstefanski.com/blog/how-to-update-pnpm-version/</guid><pubDate>Fri, 02 Aug 2024 00:00:00 GMT</pubDate></item><item><title>Playwright - &quot;Host system is missing dependencies to run browsers.&quot;</title><link>https://bstefanski.com/blog/playwright-missing-dependencies/</link><guid isPermaLink="true">https://bstefanski.com/blog/playwright-missing-dependencies/</guid><pubDate>Fri, 02 Aug 2024 00:00:00 GMT</pubDate></item><item><title>How to check server&apos;s HTTP version</title><link>https://bstefanski.com/blog/how-to-check-http-version/</link><guid isPermaLink="true">https://bstefanski.com/blog/how-to-check-http-version/</guid><description>This article explains practical methods to check a server&apos;s HTTP version, showing how to use curl and Chrome DevTools for quick checks.</description><pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate></item><item><title>HTTP/1.1 and HTTP/2 Streaming Techniques</title><link>https://bstefanski.com/blog/http11-and-http2-streaming-techniques/</link><guid isPermaLink="true">https://bstefanski.com/blog/http11-and-http2-streaming-techniques/</guid><description>An overview of web streaming technologies, from HTTP/1.1 to modern approaches like HTTP/2 Streams API and Shadow DOM.</description><pubDate>Tue, 30 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Noisy/Grainy backgrounds and gradients in CSS</title><link>https://bstefanski.com/blog/noisygrainy-backgrounds-and-gradients-in-css/</link><guid isPermaLink="true">https://bstefanski.com/blog/noisygrainy-backgrounds-and-gradients-in-css/</guid><description>A quick guide on how to create a noisy background and gradient in CSS.</description><pubDate>Sat, 06 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Accessing FireStore from client-side app</title><link>https://bstefanski.com/blog/accessing-firestore-from-client-side/</link><guid isPermaLink="true">https://bstefanski.com/blog/accessing-firestore-from-client-side/</guid><description>Working with Google&apos;s services such as Firebase, Google Analytics, or Google Cloud Platform can often be a source of frustration for me. The primary issue is their documentation, which tends to be unclear or difficult to comprehend.</description><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Easiest way to generate Shopify admin access token</title><link>https://bstefanski.com/blog/easiest-way-to-generate-shopify-admin-access-token/</link><guid isPermaLink="true">https://bstefanski.com/blog/easiest-way-to-generate-shopify-admin-access-token/</guid><description>Discover how to access Shopify&apos;s Admin GraphQL API by creating a custom app, with a focus on generating API keys and setting specific access scopes. This guide walks you through the admin panel, app creation, and securing the necessary access token.</description><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate></item><item><title>What makes you a great software developer</title><link>https://bstefanski.com/blog/what-makes-you-great-software-developer/</link><guid isPermaLink="true">https://bstefanski.com/blog/what-makes-you-great-software-developer/</guid><description>Dive into a practical perspective on software engineering, challenging the overuse of complex techniques in simple projects and advocating for a product-focused approach.</description><pubDate>Sun, 14 Jan 2024 00:00:00 GMT</pubDate></item><item><title>How to get downloadable URLs for all files in a Google Drive directory</title><link>https://bstefanski.com/blog/generate-downloadable-urls-for-google-drive-files/</link><guid isPermaLink="true">https://bstefanski.com/blog/generate-downloadable-urls-for-google-drive-files/</guid><description>This blog post guides readers through a simple yet effective method to generate downloadable URLs for files in Google Drive, utilizing Google Sheets and a custom script</description><pubDate>Sun, 31 Dec 2023 00:00:00 GMT</pubDate></item><item><title>How to use custom theme in Vim</title><link>https://bstefanski.com/blog/how-to-use-custom-theme-in-vim/</link><guid isPermaLink="true">https://bstefanski.com/blog/how-to-use-custom-theme-in-vim/</guid><description>A guide on how to install a custom theme in Vim using VimPlug</description><pubDate>Tue, 21 Nov 2023 00:00:00 GMT</pubDate></item><item><title>How to resolve Git fatal: the remote end hung up unexpectedly</title><link>https://bstefanski.com/blog/how-to-resolve-git-fatal-the-remote-end-hung-up-unexpectedly/</link><guid isPermaLink="true">https://bstefanski.com/blog/how-to-resolve-git-fatal-the-remote-end-hung-up-unexpectedly/</guid><description>A guide on how to increase the size limit of a Git commit to avoid this error.</description><pubDate>Tue, 07 Nov 2023 00:00:00 GMT</pubDate></item><item><title>The Ultimate Resource Compilation for Mastering Frontend Development</title><link>https://bstefanski.com/blog/ultimate-resources-mastering-frontend-development/</link><guid isPermaLink="true">https://bstefanski.com/blog/ultimate-resources-mastering-frontend-development/</guid><description>Discover a variety of courses and tutorials on JavaScript, React, and TypeScript. A straightforward guide to enhance your coding expertise</description><pubDate>Wed, 14 Jun 2023 00:00:00 GMT</pubDate></item><item><title>Crafting the Ideal Portfolio for a Junior Frontend Developer</title><link>https://bstefanski.com/blog/crafting-ideal-junior-frontend-dev-portfolio/</link><guid isPermaLink="true">https://bstefanski.com/blog/crafting-ideal-junior-frontend-dev-portfolio/</guid><description>Learn how to create an impressive portfolio that sets you apart as a junior frontend developer. This article shares key insights into building a portfolio that showcases a mix of CRUD applications and marketing pages, all designed to highlight your readiness to contribute from day one in a professional setting.</description><pubDate>Sun, 11 Jun 2023 00:00:00 GMT</pubDate></item><item><title>Ideal Github Profile for a Junior Developer</title><link>https://bstefanski.com/blog/ideal-github-profile-for-new-developers/</link><guid isPermaLink="true">https://bstefanski.com/blog/ideal-github-profile-for-new-developers/</guid><description>Discover essential tips to create an impressive Github profile that increases your chances of landing a junior developer job</description><pubDate>Thu, 01 Jun 2023 00:00:00 GMT</pubDate></item><item><title>Setting Up E2E Tests with GitLab CI and Playwright Made Easy</title><link>https://bstefanski.com/blog/gitlab-ci-playwright-e2e-tests/</link><guid isPermaLink="true">https://bstefanski.com/blog/gitlab-ci-playwright-e2e-tests/</guid><description>Discover how to configure GitLab CI and Playwright to run E2E tests automatically for merge requests, streamlining quality control and enhancing your development workflow.</description><pubDate>Tue, 25 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Automate React Component Smoke Testing with Storybook</title><link>https://bstefanski.com/blog/automate-smoke-testing-storybook/</link><guid isPermaLink="true">https://bstefanski.com/blog/automate-smoke-testing-storybook/</guid><description>Discover how to use Storybook to automate smoke testing for your React components, eliminating the need for manual testing and streamlining your development process.</description><pubDate>Mon, 24 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Using the &apos;mock&apos; Prefix to Resolve Jest Initialization Issues</title><link>https://bstefanski.com/blog/mock-prefix-jest-initialization-fix/</link><guid isPermaLink="true">https://bstefanski.com/blog/mock-prefix-jest-initialization-fix/</guid><description>Learn how the &apos;mock&apos; prefix can help solve variable initialization challenges in Jest tests by bypassing hoisting issues within custom factory functions.</description><pubDate>Sun, 23 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Bringing Back Gitk on macOS</title><link>https://bstefanski.com/blog/gitk-on-macos/</link><guid isPermaLink="true">https://bstefanski.com/blog/gitk-on-macos/</guid><description>Discover how to reinstall the Gitk GUI tool on newer versions of macOS for a more enjoyable Git tree browsing experience.</description><pubDate>Tue, 28 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Installing Pip on macOS</title><link>https://bstefanski.com/blog/installing-pip-macos/</link><guid isPermaLink="true">https://bstefanski.com/blog/installing-pip-macos/</guid><description>Learn how to install pip for Python on modern macOS and maintain compatibility with other tools.</description><pubDate>Mon, 27 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Resolving a JSON Import Issue with Linaria</title><link>https://bstefanski.com/blog/resolving-json-import-issue-linaria-library/</link><guid isPermaLink="true">https://bstefanski.com/blog/resolving-json-import-issue-linaria-library/</guid><description>Discover how to fix a bug that occurs when importing JSON files in a component with the Linaria library, by making a simple adjustment to the configuration order.</description><pubDate>Sun, 26 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Unlocking Next.js Benefits: No SSR? No Problem!</title><link>https://bstefanski.com/blog/nextjs-advantages-without-ssr/</link><guid isPermaLink="true">https://bstefanski.com/blog/nextjs-advantages-without-ssr/</guid><description>Explore the benefits of using Next.js for app development, even if you don&apos;t require Server Side Rendering. Learn how its features enhance performance, speed up development, and maintain flexibility while simplifying the development process.</description><pubDate>Wed, 22 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Fixing Kubernetes OpenLens Blank Screen Issue</title><link>https://bstefanski.com/blog/openlens-blank-screen-fix-kubectl/</link><guid isPermaLink="true">https://bstefanski.com/blog/openlens-blank-screen-fix-kubectl/</guid><description>Discover a simple fix for the blank screen issue in OpenLens when working with kubectl by using a quick refresh command to reveal the clusters view.</description><pubDate>Wed, 22 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Opening New Tabs on Mobile Devices with JavaScript, Safari-Friendly</title><link>https://bstefanski.com/blog/javascript-open-new-tab-mobile-safari-fix/</link><guid isPermaLink="true">https://bstefanski.com/blog/javascript-open-new-tab-mobile-safari-fix/</guid><description>Learn a simple workaround for opening new tabs on mobile devices using JavaScript that is compatible with Safari&apos;s security policies.</description><pubDate>Tue, 21 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Quickly Launch VSCode from Terminal as Admin (2023)</title><link>https://bstefanski.com/blog/running-vscode-as-an-administrator/</link><guid isPermaLink="true">https://bstefanski.com/blog/running-vscode-as-an-administrator/</guid><description>Easily open VSCode in a desired directory using the terminal by running it as an administrator with this simple solution.</description><pubDate>Tue, 21 Mar 2023 00:00:00 GMT</pubDate></item><item><title>How to prettify your cat command</title><link>https://bstefanski.com/blog/how-to-prettify-your-cat-unix-command/</link><guid isPermaLink="true">https://bstefanski.com/blog/how-to-prettify-your-cat-unix-command/</guid><description>A guide on how to make your old black and white cat command pretty and more legible</description><pubDate>Fri, 24 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Prevent Chrome from redirecting your HTTP localhost to HTTPS</title><link>https://bstefanski.com/blog/prevent-chrome-from-redirecting-your-http-localhost-to-https/</link><guid isPermaLink="true">https://bstefanski.com/blog/prevent-chrome-from-redirecting-your-http-localhost-to-https/</guid><description>How to prevent chroem from redirecting your local service from http to https</description><pubDate>Tue, 21 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Generating and applying git patches</title><link>https://bstefanski.com/blog/generating-and-applying-git-patches/</link><guid isPermaLink="true">https://bstefanski.com/blog/generating-and-applying-git-patches/</guid><description>A quick guide on how to generate multiple or one squashed patch/patches and apply it/them.</description><pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Quickly scrape tweets without API or headless browser</title><link>https://bstefanski.com/blog/quickly-scrape-tweets-without-api-or-headless-browser/</link><guid isPermaLink="true">https://bstefanski.com/blog/quickly-scrape-tweets-without-api-or-headless-browser/</guid><description>A quick way to scrape unlimited amount of tweets without API or headless browser.</description><pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Open ID Connect vs OAuth2</title><link>https://bstefanski.com/blog/oidc-vs-oauth2/</link><guid isPermaLink="true">https://bstefanski.com/blog/oidc-vs-oauth2/</guid><description>A comparison between Open ID Connect and OAuth2 protocols. Learn about the differences between authentication and authorization and why you shouldn&apos;t use OAuth2 for authentication or identity management</description><pubDate>Mon, 12 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Upgrading one dependency causes the whole yarn.lock to change - fix</title><link>https://bstefanski.com/blog/upgrading-one-dependency-causes-whole-yarnlock-change-fix/</link><guid isPermaLink="true">https://bstefanski.com/blog/upgrading-one-dependency-causes-whole-yarnlock-change-fix/</guid><description>Installing or updating a dependency with yarn can cause a whole lock file to change. In reality, it doesn&apos;t bump versions of the packages you wouldn&apos;t suspect, but it does change the formatting and the order of everything.</description><pubDate>Mon, 05 Dec 2022 00:00:00 GMT</pubDate></item><item><title>How to use multiple GitHub accounts on one machine</title><link>https://bstefanski.com/blog/use-multiple-github-accounts-one-machine/</link><guid isPermaLink="true">https://bstefanski.com/blog/use-multiple-github-accounts-one-machine/</guid><description>Quick tutorial on how to use multiple GitHub accounts on one machine with SSH keys</description><pubDate>Sat, 23 Jul 2022 00:00:00 GMT</pubDate></item><item><title>How to ban imports with ESLint</title><link>https://bstefanski.com/blog/ban-imports-eslint/</link><guid isPermaLink="true">https://bstefanski.com/blog/ban-imports-eslint/</guid><description>Sometimes you don&apos;t want to use some modules from a library or other part of your code. Or you want to prevent your colleagues from using them. This post gives you a ready-to-use solution for banning imports with ESLint.</description><pubDate>Fri, 22 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Can SVG Symbols affect web performance?</title><link>https://bstefanski.com/blog/can-svg-symbols-affect-web-performance/</link><guid isPermaLink="true">https://bstefanski.com/blog/can-svg-symbols-affect-web-performance/</guid><description>When it comes to repeatable SVGs, most people would create a component and reuse it anywhere they want. There&apos;s a high chance, that you would be missing some performance freebies. If you&apos;re striving for that bang-for-the-buck kind of performance, this article might be interesting for you.</description><pubDate>Sun, 17 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Simple, pragmatic and performant i18n solution for JavaScript applications</title><link>https://bstefanski.com/blog/simple-pragmatic-and-performant-i18n-for-javascript/</link><guid isPermaLink="true">https://bstefanski.com/blog/simple-pragmatic-and-performant-i18n-for-javascript/</guid><description>A copy-paste snippet for pragmatic i18n implementation for any modern JavaScript application. Supports dotted paths &amp; TypeScript.</description><pubDate>Sat, 16 Jul 2022 00:00:00 GMT</pubDate></item><item><title>How to assign ref in forwardRef component</title><link>https://bstefanski.com/blog/assign-ref-forwardref-component/</link><guid isPermaLink="true">https://bstefanski.com/blog/assign-ref-forwardref-component/</guid><description>How to assign multiple refs to a react component wrapped with forwardRef. Copy-paste solution.</description><pubDate>Thu, 16 Jun 2022 00:00:00 GMT</pubDate></item><item><title>How to implement horizontal media scroller component in React with CSS only</title><link>https://bstefanski.com/blog/implement-horizontal-media-scroller-component-react-css/</link><guid isPermaLink="true">https://bstefanski.com/blog/implement-horizontal-media-scroller-component-react-css/</guid><description>A copy-paste snippet for implementing a swipeable carousel or so called media scroller component. Built with almost no-JS.</description><pubDate>Mon, 16 May 2022 00:00:00 GMT</pubDate></item><item><title>One rule for optimizing images on the web</title><link>https://bstefanski.com/blog/one-rule-optimizing-images-web/</link><guid isPermaLink="true">https://bstefanski.com/blog/one-rule-optimizing-images-web/</guid><description>The only rule you need to serve well-optimized images on the web</description><pubDate>Sat, 30 Apr 2022 00:00:00 GMT</pubDate></item><item><title>How to use wildcard domains with Next.js Image component</title><link>https://bstefanski.com/blog/use-wildcard-domains-nextjs-image-component/</link><guid isPermaLink="true">https://bstefanski.com/blog/use-wildcard-domains-nextjs-image-component/</guid><description>A guide on how to use next/image component with wildcard subdomains. Useful when integrating with external providers, like Facebook or Instagram.</description><pubDate>Sat, 05 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Auto-fixable import sorting rules for ESLint</title><link>https://bstefanski.com/blog/auto-fixable-import-sorting-rules-eslint/</link><guid isPermaLink="true">https://bstefanski.com/blog/auto-fixable-import-sorting-rules-eslint/</guid><description>ESLint config snippet for sorting imports automatically on file save. Works well with Next.js</description><pubDate>Fri, 26 Nov 2021 00:00:00 GMT</pubDate></item><item><title>Reusing SVG elements in HTML without copy-pasting it</title><link>https://bstefanski.com/blog/reusing-svg-elements-html-without-copy-pasting/</link><guid isPermaLink="true">https://bstefanski.com/blog/reusing-svg-elements-html-without-copy-pasting/</guid><description>Snippet for reusing SVG elements in HTML without copy-pasting it. Example made in React.js</description><pubDate>Tue, 23 Nov 2021 00:00:00 GMT</pubDate></item><item><title>Creating accessible and non-flickering dark mode with Next.js</title><link>https://bstefanski.com/blog/creating-accessible-non-flickering-dark-mode-nextjs/</link><guid isPermaLink="true">https://bstefanski.com/blog/creating-accessible-non-flickering-dark-mode-nextjs/</guid><description>A tutorial on how to create accessible and non-flickering dark mode with Next.js for both SSR and SSG.</description><pubDate>Sat, 11 Sep 2021 00:00:00 GMT</pubDate></item><item><title>Creating scalable sitemaps with Next.js</title><link>https://bstefanski.com/blog/creating-scalable-sitemaps-nextjs/</link><guid isPermaLink="true">https://bstefanski.com/blog/creating-scalable-sitemaps-nextjs/</guid><description>A go-to solution for creating scalable sitemaps using Next.js with minimal effort and costs</description><pubDate>Sat, 14 Aug 2021 00:00:00 GMT</pubDate></item><item><title>NextJS custom image loader with WebP support and polyfill</title><link>https://bstefanski.com/blog/nextjs-custom-image-loader-webp-support-polyfill/</link><guid isPermaLink="true">https://bstefanski.com/blog/nextjs-custom-image-loader-webp-support-polyfill/</guid><description>Using next/image component with custom loader that supports both webp and jpeg polyfill in Safari. Three possible solutions and example with Contentful API.</description><pubDate>Sat, 31 Jul 2021 00:00:00 GMT</pubDate></item></channel></rss>