https://blog.hyperknot.com/

ID de exploración:
2ef69e99-f3e7-4e79-a530-2b0e4dfc09ceFinalizado
URL enviada:
https://blog.hyperknot.com/
Informe finalizado:

Enlaces: 8 encontrados

Los enlaces salientes identificados en la página

Variables JavaScript: 19 encontradas

Las variables JavaScript globales cargadas en el objeto de ventana de una página son variables declaradas fuera de las funciones y a las que se puede acceder desde cualquier lugar del código en el ámbito actual

Mensajes de registro de la consola: 1 encontrados

Mensajes registrados en la consola web

HTML

El cuerpo HTML sin procesar de la página

<!DOCTYPE html><html lang="en" class=" has-intro-popup show-intro-popup" style="background: rgb(255, 255, 255);"><head>
        <meta charset="utf-8">
        <meta name="norton-safeweb-site-verification" content="24usqpep0ejc5w6hod3dulxwciwp0djs6c6ufp96av3t4whuxovj72wfkdjxu82yacb7430qjm8adbd5ezlt4592dq4zrvadcn9j9n-0btgdzpiojfzno16-fnsnu7xd">
        
        <link rel="preconnect" href="https://substackcdn.com">
        

        

        
        <link rel="preload" as="style" href="https://substackcdn.com/bundle/theme/welcome.21daeb50a05981f434e2.css">
        
        
        

        
            
                <link type="text/css" rel="stylesheet" href="https://substackcdn.com/bundle/assets/entry-d96d057f.css">
            
                <link type="text/css" rel="stylesheet" href="https://substackcdn.com/bundle/assets/LazyComponent-51b02764.css">
            
                <link type="text/css" rel="stylesheet" href="https://substackcdn.com/bundle/assets/index-1dba08b2.css">
            
                <link type="text/css" rel="stylesheet" href="https://substackcdn.com/bundle/assets/IntroPopup-a01e8e94.css">
            
                <link type="text/css" rel="stylesheet" href="https://substackcdn.com/bundle/assets/free_email_form-a84f1e43.css">
            
        

        
        
        
        
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0, viewport-fit=cover">
        <meta name="author" content="Zsolt Ero">
        <meta property="og:url" content="https://blog.hyperknot.com/">
        <title> Thoughts while building | Zsolt Ero | Substack</title>
        
        <link rel="canonical" href="https://blog.hyperknot.com/">

        

        

        
            
                <link rel="shortcut icon" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Ffavicon.ico">
            
        
            
                <link rel="icon" type="image/png" sizes="16x16" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Ffavicon-16x16.png">
            
        
            
                <link rel="icon" type="image/png" sizes="32x32" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Ffavicon-32x32.png">
            
        
            
                <link rel="icon" type="image/png" sizes="48x48" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Ffavicon-48x48.png">
            
        
            
                <link rel="apple-touch-icon" sizes="57x57" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-57x57.png">
            
        
            
                <link rel="apple-touch-icon" sizes="60x60" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-60x60.png">
            
        
            
                <link rel="apple-touch-icon" sizes="72x72" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-72x72.png">
            
        
            
                <link rel="apple-touch-icon" sizes="76x76" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-76x76.png">
            
        
            
                <link rel="apple-touch-icon" sizes="114x114" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-114x114.png">
            
        
            
                <link rel="apple-touch-icon" sizes="120x120" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-120x120.png">
            
        
            
                <link rel="apple-touch-icon" sizes="144x144" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-144x144.png">
            
        
            
                <link rel="apple-touch-icon" sizes="152x152" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-152x152.png">
            
        
            
                <link rel="apple-touch-icon" sizes="167x167" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-167x167.png">
            
        
            
                <link rel="apple-touch-icon" sizes="180x180" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-180x180.png">
            
        
            
                <link rel="apple-touch-icon" sizes="1024x1024" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fd2c5b4-720a-42ca-8746-e47b39668ffd%2Fapple-touch-icon-1024x1024.png">
            
        
            
        
            
        
            
        

        

        
            <link rel="alternate" type="application/rss+xml" href="/feed" title=" Thoughts while building">
        

        
        
          <style>
            @font-face{font-family:'Spectral';font-style:italic;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCt-xNNww_2s0amA9M8on7mTNmnUHowCw.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Spectral';font-style:italic;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCt-xNNww_2s0amA9M8onXmTNmnUHowCw.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Spectral';font-style:italic;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCt-xNNww_2s0amA9M8onTmTNmnUHowCw.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Spectral';font-style:italic;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCt-xNNww_2s0amA9M8onrmTNmnUHo.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Spectral';font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCr-xNNww_2s0amA9M9knjsS_ulYHs.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Spectral';font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCr-xNNww_2s0amA9M2knjsS_ulYHs.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Spectral';font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCr-xNNww_2s0amA9M3knjsS_ulYHs.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Spectral';font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCr-xNNww_2s0amA9M5knjsS_ul.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCs-xNNww_2s0amA9vmtm3FafaPWnIIMrY.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCs-xNNww_2s0amA9vmtm3OafaPWnIIMrY.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCs-xNNww_2s0amA9vmtm3PafaPWnIIMrY.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:fallback;src:url(https://fonts.gstatic.com/s/spectral/v13/rnCs-xNNww_2s0amA9vmtm3BafaPWnII.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
            
          </style>
        

        <style>:root{--color_theme_bg_pop:#538cfa;--background_pop:#538cfa;--cover_bg_color:#FFFFFF;--background_pop_darken:#3a7bf9;--print_on_pop:#ffffff;--color_theme_bg_pop_darken:#3a7bf9;--color_theme_print_on_pop:#ffffff;--border_subtle:rgba(204, 204, 204, 0.5);--background_subtle:rgba(229, 238, 254, 0.4);--print_pop:#538cfa;--color_theme_accent:#538cfa;--cover_print_primary:#363737;--cover_print_secondary:#757575;--cover_print_tertiary:#b6b6b6;--cover_border_color:#538cfa;--font_family_body_preset:Spectral,sans-serif;--font_weight_body_preset:400;--font_size_body_offset:1px;--font_preset_body:classic_serif;--home_hero:newspaper;--home_posts:list;--web_bg_color:#ffffff;--background_contrast_1:#f0f0f0;--color_theme_bg_contrast_1:#f0f0f0;--background_contrast_2:#dddddd;--color_theme_bg_contrast_2:#dddddd;--background_contrast_3:#b7b7b7;--color_theme_bg_contrast_3:#b7b7b7;--background_contrast_4:#929292;--color_theme_bg_contrast_4:#929292;--background_contrast_5:#515151;--color_theme_bg_contrast_5:#515151;--color_theme_detail:#e6e6e6;--background_contrast_pop:rgba(83, 140, 250, 0.4);--color_theme_bg_contrast_pop:rgba(83, 140, 250, 0.4);--input_background:#ffffff;--cover_input_background:#ffffff;--tooltip_background:#191919;--web_bg_color_h:0;--web_bg_color_s:0%;--web_bg_color_l:100%;--print_on_web_bg_color:#363737;--print_secondary_on_web_bg_color:#868787;--selected_comment_background_color:#fdf9f3;--background_pop_rgb:83, 140, 250;--background_pop_rgb_pc:83 140 250;--color_theme_bg_pop_rgb:83, 140, 250;--color_theme_bg_pop_rgb_pc:83 140 250;--color_theme_accent_rgb:83, 140, 250;--color_theme_accent_rgb_pc:83 140 250;}</style>

        
            <link rel="stylesheet" href="https://substackcdn.com/bundle/theme/welcome.21daeb50a05981f434e2.css">
        

        <style></style>

        

        

        
    <link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/useEmailCheck-91d412a9.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/debounce-acf5038e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/tracking-415ae461.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/toNumber-d117bc85.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/isEmail-fd32ec6f.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/fetchJson-89d65176.js"><link type="text/css" rel="stylesheet" href="https://substackcdn.com/bundle/theme/main.7e9cc60fff803fd86973.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/UserBadge-815d058e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/index-3b608531.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/react-laag.esm-68adb84d.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/profile-f9d0d2f2.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/user-37e04881.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Tooltip-d458aebe.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/transition-ecf1a1e3.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Tooltip-d0af0cf2.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/UserBadge-d10c54cf.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/EmailTypoHandler-9336b965.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/EmailTypoHandler-1f1ddc43.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/index-fa720e1c.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/LazyComponent-438ceda4.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/match-8ae819a5.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Metadata-6f26d3f3.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/podcasts-52883c7f.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/free_email_form.module-bc8065b4.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/entry-d7ab146a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/_baseIteratee-98cee98e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/sortBy-965b7efe.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/HoverCard-d2816b93.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/x-f11f604d.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/ElevatedTheme-24c86160.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/ElevatedTheme-9ade19e6.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Divider.module-251e0343.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Divider-f90fb756.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/HoverCard-a1f70abe.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/SectionPageContainer-7ed2feff.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Field-592de1d4.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Field-6e53593d.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/TextInput-d19c167e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Input.module-08a16ced.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Input-72f4f07b.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/NavbarUserWidget-84726404.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/CustomerSupportModeForm-2bbbddb3.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/modal-c102262e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/share_dialog-c771d3d2.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/publication-fc28474f.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Modal-a01c45a4.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/noop-19dfaedc.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Modal-4947145b.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/CloseIcon-664b8fd3.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/publication-0d6aba50.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/useDismissed-be3da2c9.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/store-e6592a59.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/user_profile-6b427c47.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Select-65a99b7e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/DropdownIcon-167effd4.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Menu-30cf9ae8.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Menu-b8c38d19.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Select-1e64850c.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Avatar-77d2db28.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Avatar-44cf5d2d.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/app_install_modal-1065a73a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/captcha-2d03ebcc.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/ProfileHoverCard-2e3c4b85.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/uniqBy-c93c995b.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/ProfileHoverCard-9433454f.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/isOnReader-febe4688.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/publication-e597add9.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/plus-fe6fba55.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/download-dec38eba.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/user-953ed9d7.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/app_install_modal-5f0daed1.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Downloads-c590af12.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/clamp-bd41be8e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Progress-bbbab718.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Progress-82b250a1.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/date-8c279b43.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/LockThinIcon-5fa766ef.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/link_button-55d9f63a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/textarea-7bbaedfb.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/theme-abe4ba9b.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Downloads-4bd609b1.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/SegmentedButton-964dbc9e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Switch-5b08c873.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Switch-6bb7e637.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Button-d2a6b747.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Button-8514f63d.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/SegmentedButton-15cd8bbc.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/PubAccentTheme-3f436bd7.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/PubAccentTheme-e486b485.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/user_indicator-80b6f902.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/menu-6a177b7c.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/search-7586f126.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/user_indicator-1d6dd83e.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/publicationUserSettings-68d8e0a0.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Providers-af7b6b18.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/mousetrap-e6c14c92.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/recentSurfaces-4a17163c.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/recentSurfaces-fa9efc75.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/NavbarUserWidget-fac5f6fb.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/overflow_menu-6147f6c4.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/overflow_menu-db9a534e.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/SectionPageContainer-cc32eba2.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/AppBanner-66ff4d08.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/CustomDomainLoginHelper-9fe79c71.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/footer-227514ac.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/TermsFooter-1e8d081a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/SubstackIcon-164d07d9.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/visibility-f0989daa.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/IntroPopup-9e1fa64b.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/RightArrowIcon-a6f0e7ad.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/UserBadgeIconOnly-63d07fff.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/newsletter_item_list-b84d64f7.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/CreditCardIcon-bb5f9806.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/corner-down-right-beb1b566.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/chevrons-right-d8ae7578.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/CreditCardIcon-d7e0cff2.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/newsletter_item_list-802085dc.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/common-54cd5cd8.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/common-f9316d1e.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/transitions-18c79361.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/CommunityPostView-77a0c372.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/AlertDialog-3cdaf800.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/_createAggregator-18fca6c4.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/uniq-6871d196.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/uniq-24932ee6.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/AlertDialog-58f0a163.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/SkinnyLockIcon-51ac8c8a.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/SkinnyLockIcon-9e339bfb.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/CommentBody-a01461d9.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/CommentBody-1408d252.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Popover-b92883be.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Popover-6a0c224a.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/ChatZero-1ec8ab7a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/util-typed-aef3265f.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/decodeHtmlEntitiesFast-5e803c22.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/sparkles-724cbdff.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Unit-d039c93f.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/CommunityPostView-5392bbd1.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/ChatAppUpsell-34aca418.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/jsesc-38fb4d45.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/browser-633b5a4c.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/structuredData-6190ca12.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/ChatAppUpsell-5a642ab8.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/tooltip_portal-848bb263.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/ImageViewerModal-aa459589.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/ImageViewerModal-3811bdd5.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/ReaderReferralTiers-99f317e1.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/mention-966ea03d.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/settings-2-bdd15686.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/mention-5272cfb1.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/info-33e071db.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Recipe-65b4bacd.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/BurgerIcon-f9b2727e.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Recipe-796f9114.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/NewsletterIcon-ad4de26c.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/NoteReplyIcon-9ea9d7ab.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/formatNumber-7715d98b.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/latex-7b5d94cc.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/star-aeb74f1f.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/tooltip_portal-7c44907d.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/recommend_linked_publication_modal-d1d4f057.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/thread_head-980453ac.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/AuditionPlayer-d584b947.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/AuditionPlayer-5637d633.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/ShowsVideoPlayer-237506ec.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/ShowsVideoPlayer-d998cdc7.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/omit-a9ddc694.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/_getAllKeysIn-bcee199a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/_copyArray-44715aa4.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/last-f7c80998.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/PageMetaData-a8faf862.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/post_metadata-05706c65.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/SimpleCheckmarkIcon-9545c8c9.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/groupBy-739ee244.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/chunk-cf069934.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/toInteger-564d53fd.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/SectionLogo-8266620a.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/SectionLogo-44ead5a1.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/findIndex-a3566a1b.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/TabBar-fdb2ef2d.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/TabBar-c0819249.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/recommend_linked_publication_modal-9a808b74.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/comments_page-4cef3aa7.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/CommentMetadata-0e3b2421.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/utils-f6c6325a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/partition-6182da9c.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/MenuIcon-8537c20b.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/comments_page-83ec46a1.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/tiktok-4b8f9602.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/FacebookIcon-8e2c9de3.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/RewardBox-5e2151e6.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/SpecialSubdomain-96032575.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/RewardBox-5297e7a9.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/RadioField-186eefb2.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/CommentItem-d2b1135a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/UnreadBadge-5ca9df11.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/UnreadBadge-2cbd5ba6.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/useConfirm-17e2aade.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Radio-74688870.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Radio-736388f9.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/RadioField-40ff0604.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Logo-8393d0ce.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/Logo-8a4d9999.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/FilePicker-cfbb62a8.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/FilePicker-011ef325.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Banner-2c6ceffe.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/Spacer-a1a83a6f.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/usePostSelectionHighlight-2012b11e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/onboarding-294d7d52.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/InvertedWarningIcon-7a9a9669.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/_baseExtremum-d92fceee.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/onboarding-3eeb943f.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/setup_all_podcasts-a65fae5b.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/setup_all_podcasts-9189be33.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/CookieConsentFooter-7688a847.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/cookie_constants-c5941304.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/CookieConsentFooter-0d9aca19.css"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/index-0c7d7328.css"><style type="text/css">/*
  code is extracted from Calendly's embed stylesheet: https://assets.calendly.com/assets/external/widget.css
*/

.calendly-inline-widget,
.calendly-inline-widget *,
.calendly-badge-widget,
.calendly-badge-widget *,
.calendly-overlay,
.calendly-overlay * {
    font-size:16px;
    line-height:1.2em
}

.calendly-inline-widget iframe,
.calendly-badge-widget iframe,
.calendly-overlay iframe {
    display:inline;
    width:100%;
    height:100%
}

.calendly-popup-content {
    position:relative
}

.calendly-popup-content.calendly-mobile {
    -webkit-overflow-scrolling:touch;
    overflow-y:auto
}

.calendly-overlay {
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    overflow:hidden;
    z-index:9999;
    background-color:#a5a5a5;
    background-color:rgba(31,31,31,0.4)
}

.calendly-overlay .calendly-close-overlay {
    position:absolute;
    top:0;
    left:0;
    right:0;
    bottom:0
}

.calendly-overlay .calendly-popup {
    box-sizing:border-box;
    position:absolute;
    top:50%;
    left:50%;
    -webkit-transform:translateY(-50%) translateX(-50%);
    transform:translateY(-50%) translateX(-50%);
    width:80%;
    min-width:900px;
    max-width:1000px;
    height:90%;
    max-height:680px
}

@media (max-width: 975px) {
    .calendly-overlay .calendly-popup {
        position:fixed;
        top:50px;
        left:0;
        right:0;
        bottom:0;
        -webkit-transform:none;
        transform:none;
        width:100%;
        height:auto;
        min-width:0;
        max-height:none
    }
}

.calendly-overlay .calendly-popup .calendly-popup-content {
    height:100%;
}

.calendly-overlay .calendly-popup-close {
    position:absolute;
    top:25px;
    right:25px;
    color:#fff;
    width:19px;
    height:19px;
    cursor:pointer;
    background:url(https://assets.calendly.com/assets/external/close-icon.svg) no-repeat;
    background-size:contain
}

@media (max-width: 975px) {
    .calendly-overlay .calendly-popup-close {
        top:15px;
        right:15px
    }
}

.calendly-badge-widget {
    position:fixed;
    right:20px;
    bottom:15px;
    z-index:9998
}

.calendly-badge-widget .calendly-badge-content {
    display:table-cell;
    width:auto;
    height:45px;
    padding:0 30px;
    border-radius:25px;
    box-shadow:rgba(0,0,0,0.25) 0 2px 5px;
    font-family:sans-serif;
    text-align:center;
    vertical-align:middle;
    font-weight:bold;
    font-size:14px;
    color:#fff;
    cursor:pointer
}

.calendly-badge-widget .calendly-badge-content.calendly-white {
    color:#666a73
}

.calendly-badge-widget .calendly-badge-content span {
    display:block;
    font-size:12px
}

.calendly-spinner {
    position:absolute;
    top:50%;
    left:0;
    right:0;
    -webkit-transform:translateY(-50%);
    transform:translateY(-50%);
    text-align:center;
    z-index:-1
}

.calendly-spinner>div {
    display:inline-block;
    width:18px;
    height:18px;
    background-color:#e1e1e1;
    border-radius:50%;
    vertical-align:middle;
    -webkit-animation:calendly-bouncedelay 1.4s infinite ease-in-out;
    animation:calendly-bouncedelay 1.4s infinite ease-in-out;
    -webkit-animation-fill-mode:both;
    animation-fill-mode:both
}

.calendly-spinner .calendly-bounce1 {
    -webkit-animation-delay:-0.32s;
    animation-delay:-0.32s
}

.calendly-spinner .calendly-bounce2 {
    -webkit-animation-delay:-0.16s;
    animation-delay:-0.16s
}

@-webkit-keyframes calendly-bouncedelay {
    0%,80%,100% {
        -webkit-transform:scale(0);
        transform:scale(0)
    } 
    
    40%{
        -webkit-transform:scale(1);
        transform:scale(1)
    }
}

@keyframes calendly-bouncedelay{ 
    0%,80%,100% {
        -webkit-transform:scale(0);
        transform:scale(0)
    }
    
    40% {
        -webkit-transform:scale(1);
        transform:scale(1)
    }
}</style><meta property="og:type" content="article" data-preact-helmet="true"><meta property="og:title" content=" Thoughts while building | Zsolt Ero | Substack" data-preact-helmet="true"><meta name="twitter:title" content=" Thoughts while building | Zsolt Ero | Substack" data-preact-helmet="true"><meta name="description" content="A blog by Zsolt Ero on programming and building things. Click to read Thoughts while building, by Zsolt Ero, a Substack publication." data-preact-helmet="true"><meta property="og:description" content="A blog by Zsolt Ero on programming and building things. Click to read Thoughts while building, by Zsolt Ero, a Substack publication." data-preact-helmet="true"><meta name="twitter:description" content="A blog by Zsolt Ero on programming and building things. Click to read Thoughts while building, by Zsolt Ero, a Substack publication." data-preact-helmet="true"><meta name="theme-color" content="#ffffff" data-preact-helmet="true"><meta property="og:image" content="https://substackcdn.com/image/fetch/f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Fhyperknot.substack.com%2Ftwitter%2Fsubscribe-card.jpg%3Fv%3D2050367316%26version%3D9" data-preact-helmet="true"><meta name="twitter:image" content="https://substackcdn.com/image/fetch/f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Fhyperknot.substack.com%2Ftwitter%2Fsubscribe-card.jpg%3Fv%3D2050367316%26version%3D9" data-preact-helmet="true"><meta name="twitter:card" content="summary_large_image" data-preact-helmet="true"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/PublicationSearch-8c486c4c.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/SearchModal-da4ad8bf.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/combobox-70bd9ba8.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/list-2ccf8072.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/globe-010b447a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/book-open-e1db519e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/chart-candlestick-cf728a1d.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/SearchModal-059c9a5e.css"><link rel="modulepreload" as="script" crossorigin="" href="https://substackcdn.com/bundle/assets/util-3cde4f23.js"><link rel="stylesheet" href="https://substackcdn.com/bundle/assets/PublicationSearch-24228c5a.css"></head>

    <body class="">
        

        

        <div id="entry"><iframe src="https://substack.com/channel-frame" class="channel-frame" width="0" height="0"></iframe><div class="pencraft pc-display-contents pc-reset _coverTheme_1pfrf_1"><div class="intro-popup"><div class="intro-popup-page"><div class="full-email-form"><div class="vertically-centered"><button type="button" aria-label="Close" data-testid="close-welcome-modal" class="pencraft pc-reset pencraft _closeWelcomeModal_1o1mi_1 _buttonBase_1r1ly_1 _button_1r1ly_1 _buttonOld_1r1ly_46 _buttonOldColors_1r1ly_65 _priority_primary_1r1ly_66 _size_md_1r1ly_136 _fill_empty_1r1ly_320 pc-justifyContent-center" tabindex="0"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.8" stroke="#666666" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M15 5L5 15" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M5 5L15 15" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></button><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png 1272w, https://substackcdn.com/image/fetch/w_1360,c_limit,f_webp,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png 1360w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/w_1360,c_limit,f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png" sizes="100vw" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png 1272w, https://substackcdn.com/image/fetch/w_1360,c_limit,f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png 1360w" width="1360" loading="eager" style="height: min(35vh, 85.1499px);" class="_img_16u6n_1 publication-cover-photo pencraft pc-reset"></picture><h1 class="publication-name with-cover _balancedText_1o1mi_257"> Thoughts while building</h1><p class="publication-tagline with-cover verbose with-cover _balancedText_1o1mi_257">A blog by Zsolt Ero on programming and building things.</p><div class="publication-meta"><div class="pencraft pc-display-flex pc-gap-4 pc-reset pc-display-inline-flex">By Zsolt Ero</div></div><div style="width: 100%;" class="pencraft pc-display-flex pc-justifyContent-center pc-reset"><div style="width: 100%; max-width: 380px;" class="pencraft pc-display-flex pc-flexDirection-column pc-gap-4 pc-reset"><div class="_container_11q5m_1"><form action="/api/v1/free?nojs=true" method="post" class="form _form_11q5m_6" novalidate=""><input type="hidden" name="first_url" value="https://blog.hyperknot.com/"><input type="hidden" name="first_referrer" value=""><input type="hidden" name="current_url" value="https://blog.hyperknot.com/"><input type="hidden" name="current_referrer"><input type="hidden" name="referral_code"><input type="hidden" name="source" value="cover_page"><input type="hidden" name="referring_pub_id"><input type="hidden" name="additional_referring_pub_ids"><div class="_sideBySideWrap_11q5m_10"><div class="_emailInputWrapper_11q5m_57"><input type="email" name="email" placeholder="Type your email..." class="pencraft _emailInput_11q5m_23 _emailInputOnWelcomePage_11q5m_44"></div><button type="submit" class="button rightButton primary subscribe-btn _button_11q5m_76" tabindex="0"><span class="button-text ">Subscribe</span></button></div><div id="error-container"></div></form><div class="_animationWrapper_trj0v_1"></div></div></div></div><a class="no-styles"><button type="button" data-testid="maybeLater" class="pencraft pc-reset pencraft _maybeLater_1o1mi_28 _buttonBase_1r1ly_1 _button_1r1ly_1 _buttonOld_1r1ly_46 _buttonOldColors_1r1ly_65 _priority_secondary-theme_1r1ly_259 _size_md_1r1ly_136 _fill_empty_1r1ly_320 pc-justifyContent-center" tabindex="0">No thanks<svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M7.5 15L12.5 10L7.5 5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></button></a></div><div class="pencraft pc-reset _color-pub-tertiary-text_q8zsn_193 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-14_q8zsn_43 _weight-regular_q8zsn_142 _reset_q8zsn_1 tos">By registering you agree to <span translated="true" class="pencraft pc-reset _reset_q8zsn_1">Substack's <a href="https://substack.com/tos" target="_blank" rel="noopener noreferrer">Terms of Service</a></span><span translated="true" class="pencraft pc-reset _reset_q8zsn_1">, our <a href="https://substack.com/privacy" target="_blank" rel="noopener noreferrer">Privacy Policy</a></span><span translated="true" class="pencraft pc-reset _reset_q8zsn_1">, and our <a href="https://substack.com/ccpa#personal-data-collected" target="_blank" rel="noopener noreferrer">Information Collection Notice</a></span></div></div></div></div></div>
            
        <div class="main typography use-theme-bg" id="main"><div data-testid="navbar" class="main-menu animated with-nav"><div class="main-menu-content" style="position: fixed;"><div class="topbar"><div class="topbar-content"><div class="navbar-logo-container" style="width: auto;"><a href="/" native="true"><img class="navbar-logo" src="https://substackcdn.com/image/fetch/w_96,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57e87a16-5ecc-4642-842f-3233254dc380_900x900.png"></a></div><h1 class="navbar-title left-align"><a class="navbar-title-link" href="/" native="true"> Thoughts while building</a></h1><div class="navbar-buttons"><div class="pencraft pc-display-contents pc-reset _pubTheme_ztq6h_1"><div class="pencraft pc-display-flex pc-gap-4 pc-reset"><span><button class="pencraft pc-reset pencraft _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></button></span><button class="pencraft pc-reset pencraft _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" aria-label="View more" id="trigger1" aria-expanded="false" aria-haspopup="dialog" aria-controls="dialog2"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-share"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" x2="12" y1="2" y2="15"></line></svg></button></div><button class="pencraft pc-reset pencraft _buttonBase_1r1ly_1 _button_1r1ly_1 _buttonNew_1r1ly_92 _button2_1r1ly_126 _priority_primary_1r1ly_66 _size_md_1r1ly_136" tabindex="0" type="button" data-testid="noncontributor-cta-button">Subscribe</button><button class="pencraft pc-reset pencraft _buttonBase_1r1ly_1 _button_1r1ly_1 _buttonNew_1r1ly_92 _button2_1r1ly_126 _priority_tertiary_1r1ly_78 _size_md_1r1ly_136" tabindex="0" type="button" native="true" data-href="https://substack.com/sign-in?redirect=%2F&amp;for_pub=hyperknot">Sign in</button></div></div></div><div class="overflow-list-container sections-overflow"><div class="section-bar scroll"><div class="overflow-items"><div class="menu-item selected"><a role="button" tabindex="0" href="/" native="true"><span class="overflow-item-text">Home</span></a></div><div class="menu-item"><a role="button" tabindex="0" href="/archive" native="true"><span class="overflow-item-text">Archive</span></a></div><div class="menu-item"><a role="button" tabindex="0" href="/about" native="true"><span class="overflow-item-text">About</span></a></div></div><div class="left-button"><div role="button" class="scroll-button-hitbox"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left"><path d="m15 18-6-6 6-6"></path></svg></div></div><div class="right-button"><div role="button" class="scroll-button-hitbox"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></div></div></div></div></div></div><div class="topbar-spacer"></div></div><div class="home-page home-page--modular"><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":" Thoughts while building","publisher":{"@type":"Organization","name":" Thoughts while building","url":"https://blog.hyperknot.com","logo":{"@type":"ImageObject","url":"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57e87a16-5ecc-4642-842f-3233254dc380_900x900.png"},"sameAs":["https://twitter.com/hyperknot"]},"url":"https://blog.hyperknot.com","mainEntityOfPage":{"@type":"WebPage","url":"https://blog.hyperknot.com"},"description":"A blog by Zsolt Ero on programming and building things.","potentialAction":{"@type":"SearchAction","name":"Search  Thoughts while building","target":"https://blog.hyperknot.com/archive?utm_source=google&sort=search&search={search_term_string}","query-input":"required name=search_term_string"}}</script><div class="pencraft pc-display-contents pc-reset _pubTheme_ztq6h_1"><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingLeft-16 pc-paddingRight-16 pc-paddingTop-16 pc-reset _container_1sivj_1"><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingTop-0 pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><div><div class="_container_1d5xc_1 _three-column-width_1d5xc_67"><div class="pencraft pc-display-flex pc-flexDirection-column pc-padding-8 pc-reset pc-borderRadius-sm _container_1tbj4_1"><div class="_container_11rkr_1"><div class="_image_11rkr_9 _container_1iomp_1" style="aspect-ratio: 1.5 / 1;"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,h_282,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png 424w, https://substackcdn.com/image/fetch/w_848,h_565,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png 848w, https://substackcdn.com/image/fetch/w_1272,h_847,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png 1272w, https://substackcdn.com/image/fetch/w_1280,h_853,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png 1280w" sizes="(min-width:768px) 50vw, 100vw"><img class="_img_16u6n_1 _image_1iomp_9 pencraft pc-reset" src="https://substackcdn.com/image/fetch/w_1280,h_853,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png" sizes="(min-width:768px) 50vw, 100vw" alt="" srcset="https://substackcdn.com/image/fetch/w_424,h_282,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png 424w, https://substackcdn.com/image/fetch/w_848,h_565,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png 848w, https://substackcdn.com/image/fetch/w_1272,h_847,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png 1272w, https://substackcdn.com/image/fetch/w_1280,h_853,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png 1280w" width="1280" height="853" style="aspect-ratio: 1.5 / 1;"></picture></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingLeft-32 pc-paddingRight-32 pc-paddingTop-24 pc-paddingBottom-0 pc-justifyContent-center pc-alignItems-center pc-reset _content_11rkr_17"><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingBottom-8 pc-reset"><a class="pencraft pc-reset _color-pub-primary-text_q8zsn_187 _align-center_q8zsn_13 _font-pub-headings_q8zsn_124 _clamp_q8zsn_251 _clamp-3_q8zsn_263 _reset_q8zsn_1" href="https://blog.hyperknot.com/p/understanding-round-robin-dns" data-testid="post-preview-title" style="font-size: 30px; line-height: 38px;">Understanding Round Robin&nbsp;DNS</a></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingBottom-8 pc-reset"><a class="pencraft pc-reset _color-primary_q8zsn_166 _align-center_q8zsn_13 _line-height-24_q8zsn_83 _font-text_q8zsn_106 _size-17_q8zsn_51 _clamp_q8zsn_251 _clamp-3_q8zsn_263 _reset_q8zsn_1" href="https://blog.hyperknot.com/p/understanding-round-robin-dns">In which I try to understand how browsers and Cloudflare choose which server to use</a></div><div class="pencraft pc-display-inline pc-reset _color-pub-secondary-text_q8zsn_190 _line-height-20_q8zsn_80 _font-meta_q8zsn_115 _size-11_q8zsn_31 _weight-medium_q8zsn_145 _transform-uppercase_q8zsn_234 _reset_q8zsn_1 _meta_q8zsn_434"><time class="_date_1v6nm_1" datetime="2024-10-26T12:29:33.267Z">12 hrs ago</time>&nbsp;<span class="_dividerChar_1v6nm_34">•</span>&nbsp;<span class="pencraft pc-reset _reset_q8zsn_1"><div class="profile-hover-card-target _profileHoverCardTarget_c9bh7_50"><a class="_link_1v6nm_25" href="https://substack.com/@hyperknot">Zsolt Ero</a></div></span></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingTop-8 pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset _actions_1tbj4_24"><div class="post-ufi style-compressed themed"><div class="like-button-container post-ufi-button style-compressed"><a role="button" class="post-ufi-button style-compressed has-label with-border"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-heart"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path></svg></g></svg><div class="label">6</div></a><div class="modal typography out gone reader-onboarding-modal wide popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="reader-onboarding-modal-container"></div></div></div></div></div></div><div class="modal typography out gone share-dialog popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content no-fullscreen"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="share-dialog-title">Share this post</div><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-32 pc-paddingLeft-24 pc-paddingRight-24 pc-paddingTop-32 pc-paddingBottom-48 pc-reset"><div class="pencraft pc-display-flex pc-padding-8 pc-reset _border-detail_1utu8_25 pc-borderRadius-md social-preview-box post"><div class="social-image-box"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_120,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png"><img class="_img_16u6n_1 social-image pencraft pc-reset" src="https://substackcdn.com/image/fetch/w_120,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png" sizes="100vw" alt="" width="120" loading="lazy"></picture></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingTop-8 pc-paddingBottom-8 pc-paddingLeft-12 pc-reset"><h4 class="pencraft pc-reset _line-height-24_q8zsn_83 _font-display_q8zsn_103 _size-20_q8zsn_59 _weight-bold_q8zsn_151 _reset_q8zsn_1">Understanding Round Robin DNS</h4><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1">blog.hyperknot.com</div></div></div><div class="pencraft pc-display-flex pc-gap-8 pc-justifyContent-space-between pc-reset share-dialog-buttons-wrapper"><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="20" height="16" viewBox="0 0 20 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M12.1303 0.000379039C10.9833 -0.00959082 9.87819 0.431464 9.05309 1.22855L9.04556 1.23593L7.79145 2.48303C7.50587 2.767 7.50453 3.22877 7.78844 3.51441C8.07235 3.80004 8.53401 3.80139 8.81959 3.51741L10.0698 2.27423C10.6194 1.74503 11.3546 1.45229 12.1177 1.45892C12.8824 1.46556 13.6139 1.77236 14.1546 2.31323C14.6954 2.8541 15.0021 3.58577 15.0087 4.35065C15.0154 5.11353 14.7229 5.84857 14.1943 6.39829L12.0116 8.58145L12.0115 8.58155C11.7159 8.87739 11.36 9.10617 10.9682 9.25237C10.5764 9.39857 10.1577 9.45878 9.74051 9.42889C9.32337 9.39901 8.91752 9.27975 8.55051 9.07918C8.1835 8.87862 7.8639 8.60146 7.6134 8.26649C7.3722 7.94396 6.91526 7.87807 6.5928 8.11933C6.27034 8.36059 6.20447 8.81763 6.44567 9.14016C6.82142 9.64261 7.30082 10.0584 7.85134 10.3592C8.40186 10.66 9.01062 10.8389 9.63634 10.8838C10.2621 10.9286 10.8901 10.8383 11.4779 10.619C12.0656 10.3997 12.5994 10.0565 13.0429 9.61274L15.2302 7.42494L15.2391 7.4159C16.036 6.59062 16.4769 5.48529 16.467 4.33797C16.457 3.19066 15.9969 2.09316 15.1858 1.28185C14.3746 0.470545 13.2774 0.0103489 12.1303 0.000379039ZM7.29806 5.11625C6.67234 5.07142 6.0443 5.16173 5.45654 5.38103C4.86882 5.60031 4.33502 5.94355 3.89153 6.38727L1.70423 8.57506L1.69534 8.5841C0.898438 9.40939 0.457483 10.5147 0.467451 11.662C0.477418 12.8094 0.937512 13.9069 1.74864 14.7182C2.55976 15.5295 3.65701 15.9897 4.80407 15.9996C5.95113 16.0096 7.05622 15.5685 7.88132 14.7715L7.89035 14.7626L9.13717 13.5155C9.42192 13.2307 9.42192 12.7689 9.13717 12.4841C8.85243 12.1993 8.39077 12.1993 8.10602 12.4841L6.86392 13.7265C6.31432 14.2552 5.57945 14.5477 4.81675 14.5411C4.05204 14.5344 3.32054 14.2276 2.77979 13.6868C2.23904 13.1459 1.93231 12.4142 1.92566 11.6494C1.91904 10.8865 2.21146 10.1514 2.74011 9.60172L4.92287 7.41846C5.21854 7.12262 5.57437 6.89384 5.96621 6.74763C6.35805 6.60143 6.77674 6.54123 7.19389 6.57111C7.61104 6.601 8.01688 6.72026 8.38389 6.92082C8.75091 7.12138 9.0705 7.39855 9.32101 7.73352C9.56221 8.05605 10.0191 8.12194 10.3416 7.88068C10.6641 7.63942 10.7299 7.18238 10.4887 6.85985C10.113 6.3574 9.63359 5.94165 9.08307 5.64081C8.53255 5.33997 7.92378 5.16107 7.29806 5.11625Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Copy link</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="16" height="17" viewBox="0 0 16 17" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M10.6543 1.38723C10.3533 0.960814 9.95383 0.61341 9.48976 0.374567C9.02902 0.137956 8.51908 0.0130716 8.00115 0.0100098C7.86087 0.0101844 7.72354 0.0502687 7.60519 0.125581C7.48684 0.200893 7.39237 0.308324 7.3328 0.435326L5.00368 5.67077H3.029C2.72335 5.66964 2.42059 5.73003 2.13876 5.84833C1.85692 5.96663 1.60177 6.14043 1.38849 6.35938C1.16707 6.57502 0.991841 6.83346 0.873459 7.11897C0.755078 7.40447 0.696022 7.71108 0.699885 8.02014V13.691C0.699885 14.3087 0.945273 14.9012 1.38207 15.338C1.81886 15.7747 2.41128 16.0201 3.029 16.0201H13.348C13.8951 16.021 14.425 15.8283 14.8438 15.4762C15.2626 15.1241 15.5434 14.6352 15.6366 14.0961L16.6493 8.4252C16.7252 8.09192 16.7252 7.74582 16.6493 7.41254C16.566 7.08205 16.4104 6.7742 16.1936 6.51128C15.9746 6.25 15.7017 6.03926 15.3936 5.89355C15.0762 5.7467 14.7306 5.67068 14.3809 5.67077H10.5328L11.0391 4.37457C11.2397 3.88784 11.3162 3.35894 11.2619 2.83533C11.1853 2.30894 10.9763 1.81065 10.6543 1.38723ZM4.75052 14.5518H3.029C2.91049 14.5525 2.79303 14.5296 2.68349 14.4844C2.57394 14.4392 2.47452 14.3726 2.39102 14.2885C2.23609 14.1199 2.14945 13.8997 2.14799 13.6708V8.02014C2.14913 7.901 2.17389 7.78328 2.22082 7.67377C2.26775 7.56427 2.33592 7.46515 2.4214 7.38216C2.50369 7.29576 2.60267 7.22698 2.71233 7.17998C2.822 7.13298 2.94007 7.10874 3.05938 7.10874H4.7809L4.75052 14.5518ZM10.6746 7.05811H14.3809C14.5145 7.05821 14.6462 7.08942 14.7657 7.14925C14.8875 7.20532 14.9948 7.28845 15.0796 7.39229C15.1675 7.49052 15.2301 7.60871 15.2619 7.73659C15.2922 7.8665 15.2922 8.00162 15.2619 8.13153L14.2493 13.8024C14.2087 14.017 14.094 14.2106 13.9252 14.3492C13.7619 14.4812 13.558 14.5528 13.348 14.5518H6.19862V6.45052L8.43659 1.38723H8.52773C8.9042 1.50037 9.23304 1.73413 9.4636 2.05252C9.69416 2.37092 9.81365 2.75627 9.80368 3.14925C9.8181 3.39741 9.78015 3.64583 9.69229 3.87836L9.23659 5.04292C9.15397 5.273 9.12623 5.51921 9.15558 5.76191C9.1877 6.00427 9.27425 6.23623 9.40875 6.44039C9.5535 6.6376 9.74028 6.80017 9.95558 6.91634C10.1774 7.03206 10.4244 7.0912 10.6746 7.08849V7.05811Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Facebook</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="21" height="16" viewBox="0 0 21 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M2.22192 2.20503C2.36754 1.77115 2.78269 1.45455 3.26639 1.45455H17.9332C18.4169 1.45455 18.8321 1.77118 18.9777 2.2051L10.5999 8.02107L2.22192 2.20503ZM2.16639 3.94198V13.4545C2.16639 14.0529 2.66307 14.5455 3.26639 14.5455H17.9332C18.5365 14.5455 19.0332 14.0529 19.0332 13.4545V3.94206L11.0204 9.50462C10.7679 9.67991 10.4318 9.67991 10.1793 9.50462L2.16639 3.94198ZM20.4999 2.55809V13.4545C20.4999 14.8562 19.3465 16 17.9332 16H3.26639C1.85304 16 0.699707 14.8562 0.699707 13.4545V2.54545C0.699707 1.14379 1.85304 0 3.26639 0H17.9332C19.3407 0 20.4904 1.13441 20.4998 2.52818C20.5 2.53816 20.5001 2.54813 20.4999 2.55809Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Email</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M6.785 1.92766C5.45134 1.57031 4.08049 2.36176 3.72314 3.69543L0.444815 15.9303C0.0874636 17.264 0.878901 18.6348 2.21255 18.9922L5.37495 19.8396V7.66664C5.37495 6.40099 6.40096 5.37498 7.66661 5.37498H19.4723C19.3299 5.30548 19.1788 5.24858 19.0201 5.20604L6.785 1.92766Z" stroke="none"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.44161 7.4C7.86632 7.4 7.39995 7.86637 7.39995 8.44167V22.1081C7.39995 22.6834 7.86631 23.1498 8.4416 23.1498L22.1083 23.15C22.6836 23.15 23.1499 22.6836 23.1499 22.1083V8.44167C23.1499 7.86637 22.6836 7.4 22.1083 7.4H8.44161ZM10.3999 9.65C9.84766 9.65 9.39995 10.0977 9.39995 10.65C9.39995 11.2023 9.84766 11.65 10.3999 11.65H18.3999C18.9522 11.65 19.3999 11.2023 19.3999 10.65C19.3999 10.0977 18.9522 9.65 18.3999 9.65H10.3999ZM10.3999 14.15C9.84766 14.15 9.39995 14.5977 9.39995 15.15C9.39995 15.7023 9.84766 16.15 10.3999 16.15H15.3999C15.9522 16.15 16.3999 15.7023 16.3999 15.15C16.3999 14.5977 15.9522 14.15 15.3999 14.15H10.3999Z" stroke="none"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1">Note</div></button><button tabindex="0" id="trigger5" aria-expanded="false" aria-haspopup="dialog" aria-controls="dialog6" aria-label="View more" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="100" height="100" viewBox="0 0 100 100" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><circle cx="23" cy="50" r="9"></circle><circle cx="50" cy="50" r="9"></circle><circle cx="77" cy="50" r="9"></circle></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Other</div></button></div></div></div></div></div></div></div></div><a role="button" class="post-ufi-button style-compressed post-ufi-comment-button has-label with-border" href="https://blog.hyperknot.com/p/understanding-round-robin-dns/comments"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-circle"><path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"></path></svg></g></svg><div class="label">2</div></a><a role="button" class="post-ufi-button style-compressed no-label with-border"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><path d="M21 3V8M21 8H16M21 8L18 5.29962C16.7056 4.14183 15.1038 3.38328 13.3879 3.11547C11.6719 2.84766 9.9152 3.08203 8.32951 3.79031C6.74382 4.49858 5.39691 5.65051 4.45125 7.10715C3.5056 8.5638 3.00158 10.2629 3 11.9996M3 21V16M3 16H8M3 16L6 18.7C7.29445 19.8578 8.89623 20.6163 10.6121 20.8841C12.3281 21.152 14.0848 20.9176 15.6705 20.2093C17.2562 19.501 18.6031 18.3491 19.5487 16.8925C20.4944 15.4358 20.9984 13.7367 21 12" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></a><div class="modal typography out gone reader-onboarding-modal wide popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="reader-onboarding-modal-container"></div></div></div></div></div></div><a role="button" class="post-ufi-button style-compressed no-label with-border" href="javascript:void(0)"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" x2="12" y1="2" y2="15"></line></svg></a></div></div></div></div></div></div></div></div></div></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset _bodyContainer_1sivj_13" id="modular-home-posts"><div><div class="_container_1d5xc_1 _three-column-width_1d5xc_67"><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingLeft-8 pc-paddingRight-8 pc-paddingTop-24 pc-paddingBottom-24 pc-reset"><div class="pencraft pc-display-flex pc-reset _border-bottom-detail-themed_1utu8_50"></div></div></div></div><div id="home-body" style="scroll-margin-top: 48px;"><div><div class="_container_1d5xc_1 _three-column-width-with-sidebar_1d5xc_68 _show-below_1d5xc_22"><div class="portable-archive"><div class="portable-archive-list"><div><div class="_container_1j53d_1 _two-column-list_1j53d_200 _two-column-list--with-dividers_1j53d_203"><div class="pencraft pc-display-flex pc-flexDirection-column pc-padding-8 pc-reset pc-borderRadius-sm _container_1tbj4_1"><div class="_container_6i6j0_1"><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-4 pc-position-relative _flexGrow_1utu8_282 pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><a class="pencraft pc-reset _color-pub-primary-text_q8zsn_187 _font-pub-headings_q8zsn_124 _clamp_q8zsn_251 _clamp-3_q8zsn_263 _reset_q8zsn_1" href="https://blog.hyperknot.com/p/first-month-of-openfreemap" data-testid="post-preview-title" style="font-size: 19px; line-height: 26px;">First month of OpenFreeMap</a></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><a class="pencraft pc-reset _color-primary_q8zsn_166 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-15_q8zsn_47 _clamp_q8zsn_251 _clamp-2_q8zsn_260 _reset_q8zsn_1" href="https://blog.hyperknot.com/p/first-month-of-openfreemap">2k GitHub Stars, 300 req/sec, 2 TB per day</a></div><div class="pencraft pc-display-inline pc-reset _color-pub-secondary-text_q8zsn_190 _line-height-20_q8zsn_80 _font-meta_q8zsn_115 _size-11_q8zsn_31 _weight-medium_q8zsn_145 _transform-uppercase_q8zsn_234 _reset_q8zsn_1 _meta_q8zsn_434"><time class="_date_1v6nm_1" datetime="2024-10-24T14:38:05.832Z">Oct 24</time>&nbsp;<span class="_dividerChar_1v6nm_34">•</span>&nbsp;<span class="pencraft pc-reset _reset_q8zsn_1"><div class="profile-hover-card-target _profileHoverCardTarget_c9bh7_50"><a class="_link_1v6nm_25" href="https://substack.com/@hyperknot">Zsolt Ero</a></div></span></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset _actions_1tbj4_24"><div class="post-ufi style-compressed justified themed"><div class="like-button-container post-ufi-button style-compressed"><a role="button" class="post-ufi-button style-compressed has-label with-border"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-heart"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path></svg></g></svg><div class="label">3</div></a><div class="modal typography out gone reader-onboarding-modal wide popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="reader-onboarding-modal-container"></div></div></div></div></div></div><div class="modal typography out gone share-dialog popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content no-fullscreen"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="share-dialog-title">Share this post</div><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-32 pc-paddingLeft-24 pc-paddingRight-24 pc-paddingTop-32 pc-paddingBottom-48 pc-reset"><div class="pencraft pc-display-flex pc-padding-8 pc-reset _border-detail_1utu8_25 pc-borderRadius-md social-preview-box post"><div class="social-image-box"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_120,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c79df1c-1966-49db-b65e-2a90dce5ae2e_466x544.png"><img class="_img_16u6n_1 social-image pencraft pc-reset" src="https://substackcdn.com/image/fetch/w_120,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c79df1c-1966-49db-b65e-2a90dce5ae2e_466x544.png" sizes="100vw" alt="" width="120" loading="lazy"></picture></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingTop-8 pc-paddingBottom-8 pc-paddingLeft-12 pc-reset"><h4 class="pencraft pc-reset _line-height-24_q8zsn_83 _font-display_q8zsn_103 _size-20_q8zsn_59 _weight-bold_q8zsn_151 _reset_q8zsn_1">First month of OpenFreeMap</h4><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1">blog.hyperknot.com</div></div></div><div class="pencraft pc-display-flex pc-gap-8 pc-justifyContent-space-between pc-reset share-dialog-buttons-wrapper"><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="20" height="16" viewBox="0 0 20 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M12.1303 0.000379039C10.9833 -0.00959082 9.87819 0.431464 9.05309 1.22855L9.04556 1.23593L7.79145 2.48303C7.50587 2.767 7.50453 3.22877 7.78844 3.51441C8.07235 3.80004 8.53401 3.80139 8.81959 3.51741L10.0698 2.27423C10.6194 1.74503 11.3546 1.45229 12.1177 1.45892C12.8824 1.46556 13.6139 1.77236 14.1546 2.31323C14.6954 2.8541 15.0021 3.58577 15.0087 4.35065C15.0154 5.11353 14.7229 5.84857 14.1943 6.39829L12.0116 8.58145L12.0115 8.58155C11.7159 8.87739 11.36 9.10617 10.9682 9.25237C10.5764 9.39857 10.1577 9.45878 9.74051 9.42889C9.32337 9.39901 8.91752 9.27975 8.55051 9.07918C8.1835 8.87862 7.8639 8.60146 7.6134 8.26649C7.3722 7.94396 6.91526 7.87807 6.5928 8.11933C6.27034 8.36059 6.20447 8.81763 6.44567 9.14016C6.82142 9.64261 7.30082 10.0584 7.85134 10.3592C8.40186 10.66 9.01062 10.8389 9.63634 10.8838C10.2621 10.9286 10.8901 10.8383 11.4779 10.619C12.0656 10.3997 12.5994 10.0565 13.0429 9.61274L15.2302 7.42494L15.2391 7.4159C16.036 6.59062 16.4769 5.48529 16.467 4.33797C16.457 3.19066 15.9969 2.09316 15.1858 1.28185C14.3746 0.470545 13.2774 0.0103489 12.1303 0.000379039ZM7.29806 5.11625C6.67234 5.07142 6.0443 5.16173 5.45654 5.38103C4.86882 5.60031 4.33502 5.94355 3.89153 6.38727L1.70423 8.57506L1.69534 8.5841C0.898438 9.40939 0.457483 10.5147 0.467451 11.662C0.477418 12.8094 0.937512 13.9069 1.74864 14.7182C2.55976 15.5295 3.65701 15.9897 4.80407 15.9996C5.95113 16.0096 7.05622 15.5685 7.88132 14.7715L7.89035 14.7626L9.13717 13.5155C9.42192 13.2307 9.42192 12.7689 9.13717 12.4841C8.85243 12.1993 8.39077 12.1993 8.10602 12.4841L6.86392 13.7265C6.31432 14.2552 5.57945 14.5477 4.81675 14.5411C4.05204 14.5344 3.32054 14.2276 2.77979 13.6868C2.23904 13.1459 1.93231 12.4142 1.92566 11.6494C1.91904 10.8865 2.21146 10.1514 2.74011 9.60172L4.92287 7.41846C5.21854 7.12262 5.57437 6.89384 5.96621 6.74763C6.35805 6.60143 6.77674 6.54123 7.19389 6.57111C7.61104 6.601 8.01688 6.72026 8.38389 6.92082C8.75091 7.12138 9.0705 7.39855 9.32101 7.73352C9.56221 8.05605 10.0191 8.12194 10.3416 7.88068C10.6641 7.63942 10.7299 7.18238 10.4887 6.85985C10.113 6.3574 9.63359 5.94165 9.08307 5.64081C8.53255 5.33997 7.92378 5.16107 7.29806 5.11625Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Copy link</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="16" height="17" viewBox="0 0 16 17" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M10.6543 1.38723C10.3533 0.960814 9.95383 0.61341 9.48976 0.374567C9.02902 0.137956 8.51908 0.0130716 8.00115 0.0100098C7.86087 0.0101844 7.72354 0.0502687 7.60519 0.125581C7.48684 0.200893 7.39237 0.308324 7.3328 0.435326L5.00368 5.67077H3.029C2.72335 5.66964 2.42059 5.73003 2.13876 5.84833C1.85692 5.96663 1.60177 6.14043 1.38849 6.35938C1.16707 6.57502 0.991841 6.83346 0.873459 7.11897C0.755078 7.40447 0.696022 7.71108 0.699885 8.02014V13.691C0.699885 14.3087 0.945273 14.9012 1.38207 15.338C1.81886 15.7747 2.41128 16.0201 3.029 16.0201H13.348C13.8951 16.021 14.425 15.8283 14.8438 15.4762C15.2626 15.1241 15.5434 14.6352 15.6366 14.0961L16.6493 8.4252C16.7252 8.09192 16.7252 7.74582 16.6493 7.41254C16.566 7.08205 16.4104 6.7742 16.1936 6.51128C15.9746 6.25 15.7017 6.03926 15.3936 5.89355C15.0762 5.7467 14.7306 5.67068 14.3809 5.67077H10.5328L11.0391 4.37457C11.2397 3.88784 11.3162 3.35894 11.2619 2.83533C11.1853 2.30894 10.9763 1.81065 10.6543 1.38723ZM4.75052 14.5518H3.029C2.91049 14.5525 2.79303 14.5296 2.68349 14.4844C2.57394 14.4392 2.47452 14.3726 2.39102 14.2885C2.23609 14.1199 2.14945 13.8997 2.14799 13.6708V8.02014C2.14913 7.901 2.17389 7.78328 2.22082 7.67377C2.26775 7.56427 2.33592 7.46515 2.4214 7.38216C2.50369 7.29576 2.60267 7.22698 2.71233 7.17998C2.822 7.13298 2.94007 7.10874 3.05938 7.10874H4.7809L4.75052 14.5518ZM10.6746 7.05811H14.3809C14.5145 7.05821 14.6462 7.08942 14.7657 7.14925C14.8875 7.20532 14.9948 7.28845 15.0796 7.39229C15.1675 7.49052 15.2301 7.60871 15.2619 7.73659C15.2922 7.8665 15.2922 8.00162 15.2619 8.13153L14.2493 13.8024C14.2087 14.017 14.094 14.2106 13.9252 14.3492C13.7619 14.4812 13.558 14.5528 13.348 14.5518H6.19862V6.45052L8.43659 1.38723H8.52773C8.9042 1.50037 9.23304 1.73413 9.4636 2.05252C9.69416 2.37092 9.81365 2.75627 9.80368 3.14925C9.8181 3.39741 9.78015 3.64583 9.69229 3.87836L9.23659 5.04292C9.15397 5.273 9.12623 5.51921 9.15558 5.76191C9.1877 6.00427 9.27425 6.23623 9.40875 6.44039C9.5535 6.6376 9.74028 6.80017 9.95558 6.91634C10.1774 7.03206 10.4244 7.0912 10.6746 7.08849V7.05811Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Facebook</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="21" height="16" viewBox="0 0 21 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M2.22192 2.20503C2.36754 1.77115 2.78269 1.45455 3.26639 1.45455H17.9332C18.4169 1.45455 18.8321 1.77118 18.9777 2.2051L10.5999 8.02107L2.22192 2.20503ZM2.16639 3.94198V13.4545C2.16639 14.0529 2.66307 14.5455 3.26639 14.5455H17.9332C18.5365 14.5455 19.0332 14.0529 19.0332 13.4545V3.94206L11.0204 9.50462C10.7679 9.67991 10.4318 9.67991 10.1793 9.50462L2.16639 3.94198ZM20.4999 2.55809V13.4545C20.4999 14.8562 19.3465 16 17.9332 16H3.26639C1.85304 16 0.699707 14.8562 0.699707 13.4545V2.54545C0.699707 1.14379 1.85304 0 3.26639 0H17.9332C19.3407 0 20.4904 1.13441 20.4998 2.52818C20.5 2.53816 20.5001 2.54813 20.4999 2.55809Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Email</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M6.785 1.92766C5.45134 1.57031 4.08049 2.36176 3.72314 3.69543L0.444815 15.9303C0.0874636 17.264 0.878901 18.6348 2.21255 18.9922L5.37495 19.8396V7.66664C5.37495 6.40099 6.40096 5.37498 7.66661 5.37498H19.4723C19.3299 5.30548 19.1788 5.24858 19.0201 5.20604L6.785 1.92766Z" stroke="none"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.44161 7.4C7.86632 7.4 7.39995 7.86637 7.39995 8.44167V22.1081C7.39995 22.6834 7.86631 23.1498 8.4416 23.1498L22.1083 23.15C22.6836 23.15 23.1499 22.6836 23.1499 22.1083V8.44167C23.1499 7.86637 22.6836 7.4 22.1083 7.4H8.44161ZM10.3999 9.65C9.84766 9.65 9.39995 10.0977 9.39995 10.65C9.39995 11.2023 9.84766 11.65 10.3999 11.65H18.3999C18.9522 11.65 19.3999 11.2023 19.3999 10.65C19.3999 10.0977 18.9522 9.65 18.3999 9.65H10.3999ZM10.3999 14.15C9.84766 14.15 9.39995 14.5977 9.39995 15.15C9.39995 15.7023 9.84766 16.15 10.3999 16.15H15.3999C15.9522 16.15 16.3999 15.7023 16.3999 15.15C16.3999 14.5977 15.9522 14.15 15.3999 14.15H10.3999Z" stroke="none"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1">Note</div></button><button tabindex="0" id="trigger11" aria-expanded="false" aria-haspopup="dialog" aria-controls="dialog12" aria-label="View more" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="100" height="100" viewBox="0 0 100 100" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><circle cx="23" cy="50" r="9"></circle><circle cx="50" cy="50" r="9"></circle><circle cx="77" cy="50" r="9"></circle></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Other</div></button></div></div></div></div></div></div></div></div><a role="button" class="post-ufi-button style-compressed post-ufi-comment-button has-label with-border" href="https://blog.hyperknot.com/p/first-month-of-openfreemap/comments"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-circle"><path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"></path></svg></g></svg><div class="label">1</div></a><a role="button" class="post-ufi-button style-compressed no-label with-border"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><path d="M21 3V8M21 8H16M21 8L18 5.29962C16.7056 4.14183 15.1038 3.38328 13.3879 3.11547C11.6719 2.84766 9.9152 3.08203 8.32951 3.79031C6.74382 4.49858 5.39691 5.65051 4.45125 7.10715C3.5056 8.5638 3.00158 10.2629 3 11.9996M3 21V16M3 16H8M3 16L6 18.7C7.29445 19.8578 8.89623 20.6163 10.6121 20.8841C12.3281 21.152 14.0848 20.9176 15.6705 20.2093C17.2562 19.501 18.6031 18.3491 19.5487 16.8925C20.4944 15.4358 20.9984 13.7367 21 12" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></a><div class="modal typography out gone reader-onboarding-modal wide popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="reader-onboarding-modal-container"></div></div></div></div></div></div><a role="button" class="post-ufi-button style-compressed no-label with-border" href="javascript:void(0)"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" x2="12" y1="2" y2="15"></line></svg></a></div></div></div><div><div class="_image_6i6j0_29 _container_1iomp_1" style="aspect-ratio: 1.5 / 1;"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_320,h_213,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c79df1c-1966-49db-b65e-2a90dce5ae2e_466x544.png"><img class="_img_16u6n_1 _image_1iomp_9 pencraft pc-reset" src="https://substackcdn.com/image/fetch/w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c79df1c-1966-49db-b65e-2a90dce5ae2e_466x544.png" sizes="(min-width:768px) 50vw, 100vw" alt="" width="320" height="213" loading="lazy" style="aspect-ratio: 1.5 / 1;"></picture></div></div></div></div><div class="pencraft pc-display-flex pc-reset _border-bottom-detail-themed_1utu8_50 _divider_1j53d_9"></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-padding-8 pc-reset pc-borderRadius-sm _container_1tbj4_1"><div class="_container_6i6j0_1"><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-4 pc-position-relative _flexGrow_1utu8_282 pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><a class="pencraft pc-reset _color-pub-primary-text_q8zsn_187 _font-pub-headings_q8zsn_124 _clamp_q8zsn_251 _clamp-3_q8zsn_263 _reset_q8zsn_1" href="https://blog.hyperknot.com/p/is-there-now-a-generation-of-users" data-testid="post-preview-title" style="font-size: 19px; line-height: 26px;">Is there now a generation of users who never worked with files?</a></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><a class="pencraft pc-reset _color-primary_q8zsn_166 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-15_q8zsn_47 _clamp_q8zsn_251 _clamp-2_q8zsn_260 _reset_q8zsn_1" href="https://blog.hyperknot.com/p/is-there-now-a-generation-of-users">MapHub's UI has remained largely consistent since I launched it eight years ago, with a prominent "Save" button visible in the top-right corner of the…</a></div><div class="pencraft pc-display-inline pc-reset _color-pub-secondary-text_q8zsn_190 _line-height-20_q8zsn_80 _font-meta_q8zsn_115 _size-11_q8zsn_31 _weight-medium_q8zsn_145 _transform-uppercase_q8zsn_234 _reset_q8zsn_1 _meta_q8zsn_434"><time class="_date_1v6nm_1" datetime="2024-09-21T09:00:44.530Z">Sep 21</time>&nbsp;<span class="_dividerChar_1v6nm_34">•</span>&nbsp;<span class="pencraft pc-reset _reset_q8zsn_1"><div class="profile-hover-card-target _profileHoverCardTarget_c9bh7_50"><a class="_link_1v6nm_25" href="https://substack.com/@hyperknot">Zsolt Ero</a></div></span></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset _actions_1tbj4_24"><div class="post-ufi style-compressed justified themed"><div class="like-button-container post-ufi-button style-compressed"><a role="button" class="post-ufi-button style-compressed has-label with-border"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-heart"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path></svg></g></svg><div class="label">3</div></a><div class="modal typography out gone reader-onboarding-modal wide popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="reader-onboarding-modal-container"></div></div></div></div></div></div><div class="modal typography out gone share-dialog popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content no-fullscreen"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="share-dialog-title">Share this post</div><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-32 pc-paddingLeft-24 pc-paddingRight-24 pc-paddingTop-32 pc-paddingBottom-48 pc-reset"><div class="pencraft pc-display-flex pc-padding-8 pc-reset _border-detail_1utu8_25 pc-borderRadius-md social-preview-box post"><div class="social-image-box"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_120,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb8ef48-8a16-4bad-b792-792b530ed8a2_788x328.png"><img class="_img_16u6n_1 social-image pencraft pc-reset" src="https://substackcdn.com/image/fetch/w_120,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb8ef48-8a16-4bad-b792-792b530ed8a2_788x328.png" sizes="100vw" alt="" width="120" loading="lazy"></picture></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingTop-8 pc-paddingBottom-8 pc-paddingLeft-12 pc-reset"><h4 class="pencraft pc-reset _line-height-24_q8zsn_83 _font-display_q8zsn_103 _size-20_q8zsn_59 _weight-bold_q8zsn_151 _reset_q8zsn_1">Is there now a generation of users who never worked with files?</h4><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1">blog.hyperknot.com</div></div></div><div class="pencraft pc-display-flex pc-gap-8 pc-justifyContent-space-between pc-reset share-dialog-buttons-wrapper"><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="20" height="16" viewBox="0 0 20 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M12.1303 0.000379039C10.9833 -0.00959082 9.87819 0.431464 9.05309 1.22855L9.04556 1.23593L7.79145 2.48303C7.50587 2.767 7.50453 3.22877 7.78844 3.51441C8.07235 3.80004 8.53401 3.80139 8.81959 3.51741L10.0698 2.27423C10.6194 1.74503 11.3546 1.45229 12.1177 1.45892C12.8824 1.46556 13.6139 1.77236 14.1546 2.31323C14.6954 2.8541 15.0021 3.58577 15.0087 4.35065C15.0154 5.11353 14.7229 5.84857 14.1943 6.39829L12.0116 8.58145L12.0115 8.58155C11.7159 8.87739 11.36 9.10617 10.9682 9.25237C10.5764 9.39857 10.1577 9.45878 9.74051 9.42889C9.32337 9.39901 8.91752 9.27975 8.55051 9.07918C8.1835 8.87862 7.8639 8.60146 7.6134 8.26649C7.3722 7.94396 6.91526 7.87807 6.5928 8.11933C6.27034 8.36059 6.20447 8.81763 6.44567 9.14016C6.82142 9.64261 7.30082 10.0584 7.85134 10.3592C8.40186 10.66 9.01062 10.8389 9.63634 10.8838C10.2621 10.9286 10.8901 10.8383 11.4779 10.619C12.0656 10.3997 12.5994 10.0565 13.0429 9.61274L15.2302 7.42494L15.2391 7.4159C16.036 6.59062 16.4769 5.48529 16.467 4.33797C16.457 3.19066 15.9969 2.09316 15.1858 1.28185C14.3746 0.470545 13.2774 0.0103489 12.1303 0.000379039ZM7.29806 5.11625C6.67234 5.07142 6.0443 5.16173 5.45654 5.38103C4.86882 5.60031 4.33502 5.94355 3.89153 6.38727L1.70423 8.57506L1.69534 8.5841C0.898438 9.40939 0.457483 10.5147 0.467451 11.662C0.477418 12.8094 0.937512 13.9069 1.74864 14.7182C2.55976 15.5295 3.65701 15.9897 4.80407 15.9996C5.95113 16.0096 7.05622 15.5685 7.88132 14.7715L7.89035 14.7626L9.13717 13.5155C9.42192 13.2307 9.42192 12.7689 9.13717 12.4841C8.85243 12.1993 8.39077 12.1993 8.10602 12.4841L6.86392 13.7265C6.31432 14.2552 5.57945 14.5477 4.81675 14.5411C4.05204 14.5344 3.32054 14.2276 2.77979 13.6868C2.23904 13.1459 1.93231 12.4142 1.92566 11.6494C1.91904 10.8865 2.21146 10.1514 2.74011 9.60172L4.92287 7.41846C5.21854 7.12262 5.57437 6.89384 5.96621 6.74763C6.35805 6.60143 6.77674 6.54123 7.19389 6.57111C7.61104 6.601 8.01688 6.72026 8.38389 6.92082C8.75091 7.12138 9.0705 7.39855 9.32101 7.73352C9.56221 8.05605 10.0191 8.12194 10.3416 7.88068C10.6641 7.63942 10.7299 7.18238 10.4887 6.85985C10.113 6.3574 9.63359 5.94165 9.08307 5.64081C8.53255 5.33997 7.92378 5.16107 7.29806 5.11625Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Copy link</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="16" height="17" viewBox="0 0 16 17" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M10.6543 1.38723C10.3533 0.960814 9.95383 0.61341 9.48976 0.374567C9.02902 0.137956 8.51908 0.0130716 8.00115 0.0100098C7.86087 0.0101844 7.72354 0.0502687 7.60519 0.125581C7.48684 0.200893 7.39237 0.308324 7.3328 0.435326L5.00368 5.67077H3.029C2.72335 5.66964 2.42059 5.73003 2.13876 5.84833C1.85692 5.96663 1.60177 6.14043 1.38849 6.35938C1.16707 6.57502 0.991841 6.83346 0.873459 7.11897C0.755078 7.40447 0.696022 7.71108 0.699885 8.02014V13.691C0.699885 14.3087 0.945273 14.9012 1.38207 15.338C1.81886 15.7747 2.41128 16.0201 3.029 16.0201H13.348C13.8951 16.021 14.425 15.8283 14.8438 15.4762C15.2626 15.1241 15.5434 14.6352 15.6366 14.0961L16.6493 8.4252C16.7252 8.09192 16.7252 7.74582 16.6493 7.41254C16.566 7.08205 16.4104 6.7742 16.1936 6.51128C15.9746 6.25 15.7017 6.03926 15.3936 5.89355C15.0762 5.7467 14.7306 5.67068 14.3809 5.67077H10.5328L11.0391 4.37457C11.2397 3.88784 11.3162 3.35894 11.2619 2.83533C11.1853 2.30894 10.9763 1.81065 10.6543 1.38723ZM4.75052 14.5518H3.029C2.91049 14.5525 2.79303 14.5296 2.68349 14.4844C2.57394 14.4392 2.47452 14.3726 2.39102 14.2885C2.23609 14.1199 2.14945 13.8997 2.14799 13.6708V8.02014C2.14913 7.901 2.17389 7.78328 2.22082 7.67377C2.26775 7.56427 2.33592 7.46515 2.4214 7.38216C2.50369 7.29576 2.60267 7.22698 2.71233 7.17998C2.822 7.13298 2.94007 7.10874 3.05938 7.10874H4.7809L4.75052 14.5518ZM10.6746 7.05811H14.3809C14.5145 7.05821 14.6462 7.08942 14.7657 7.14925C14.8875 7.20532 14.9948 7.28845 15.0796 7.39229C15.1675 7.49052 15.2301 7.60871 15.2619 7.73659C15.2922 7.8665 15.2922 8.00162 15.2619 8.13153L14.2493 13.8024C14.2087 14.017 14.094 14.2106 13.9252 14.3492C13.7619 14.4812 13.558 14.5528 13.348 14.5518H6.19862V6.45052L8.43659 1.38723H8.52773C8.9042 1.50037 9.23304 1.73413 9.4636 2.05252C9.69416 2.37092 9.81365 2.75627 9.80368 3.14925C9.8181 3.39741 9.78015 3.64583 9.69229 3.87836L9.23659 5.04292C9.15397 5.273 9.12623 5.51921 9.15558 5.76191C9.1877 6.00427 9.27425 6.23623 9.40875 6.44039C9.5535 6.6376 9.74028 6.80017 9.95558 6.91634C10.1774 7.03206 10.4244 7.0912 10.6746 7.08849V7.05811Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Facebook</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="21" height="16" viewBox="0 0 21 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M2.22192 2.20503C2.36754 1.77115 2.78269 1.45455 3.26639 1.45455H17.9332C18.4169 1.45455 18.8321 1.77118 18.9777 2.2051L10.5999 8.02107L2.22192 2.20503ZM2.16639 3.94198V13.4545C2.16639 14.0529 2.66307 14.5455 3.26639 14.5455H17.9332C18.5365 14.5455 19.0332 14.0529 19.0332 13.4545V3.94206L11.0204 9.50462C10.7679 9.67991 10.4318 9.67991 10.1793 9.50462L2.16639 3.94198ZM20.4999 2.55809V13.4545C20.4999 14.8562 19.3465 16 17.9332 16H3.26639C1.85304 16 0.699707 14.8562 0.699707 13.4545V2.54545C0.699707 1.14379 1.85304 0 3.26639 0H17.9332C19.3407 0 20.4904 1.13441 20.4998 2.52818C20.5 2.53816 20.5001 2.54813 20.4999 2.55809Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Email</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M6.785 1.92766C5.45134 1.57031 4.08049 2.36176 3.72314 3.69543L0.444815 15.9303C0.0874636 17.264 0.878901 18.6348 2.21255 18.9922L5.37495 19.8396V7.66664C5.37495 6.40099 6.40096 5.37498 7.66661 5.37498H19.4723C19.3299 5.30548 19.1788 5.24858 19.0201 5.20604L6.785 1.92766Z" stroke="none"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.44161 7.4C7.86632 7.4 7.39995 7.86637 7.39995 8.44167V22.1081C7.39995 22.6834 7.86631 23.1498 8.4416 23.1498L22.1083 23.15C22.6836 23.15 23.1499 22.6836 23.1499 22.1083V8.44167C23.1499 7.86637 22.6836 7.4 22.1083 7.4H8.44161ZM10.3999 9.65C9.84766 9.65 9.39995 10.0977 9.39995 10.65C9.39995 11.2023 9.84766 11.65 10.3999 11.65H18.3999C18.9522 11.65 19.3999 11.2023 19.3999 10.65C19.3999 10.0977 18.9522 9.65 18.3999 9.65H10.3999ZM10.3999 14.15C9.84766 14.15 9.39995 14.5977 9.39995 15.15C9.39995 15.7023 9.84766 16.15 10.3999 16.15H15.3999C15.9522 16.15 16.3999 15.7023 16.3999 15.15C16.3999 14.5977 15.9522 14.15 15.3999 14.15H10.3999Z" stroke="none"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1">Note</div></button><button tabindex="0" id="trigger17" aria-expanded="false" aria-haspopup="dialog" aria-controls="dialog18" aria-label="View more" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="100" height="100" viewBox="0 0 100 100" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><circle cx="23" cy="50" r="9"></circle><circle cx="50" cy="50" r="9"></circle><circle cx="77" cy="50" r="9"></circle></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Other</div></button></div></div></div></div></div></div></div></div><a role="button" class="post-ufi-button style-compressed post-ufi-comment-button no-label with-border" href="https://blog.hyperknot.com/p/is-there-now-a-generation-of-users/comments"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-circle"><path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"></path></svg></g></svg></a><a role="button" class="post-ufi-button style-compressed no-label with-border"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><path d="M21 3V8M21 8H16M21 8L18 5.29962C16.7056 4.14183 15.1038 3.38328 13.3879 3.11547C11.6719 2.84766 9.9152 3.08203 8.32951 3.79031C6.74382 4.49858 5.39691 5.65051 4.45125 7.10715C3.5056 8.5638 3.00158 10.2629 3 11.9996M3 21V16M3 16H8M3 16L6 18.7C7.29445 19.8578 8.89623 20.6163 10.6121 20.8841C12.3281 21.152 14.0848 20.9176 15.6705 20.2093C17.2562 19.501 18.6031 18.3491 19.5487 16.8925C20.4944 15.4358 20.9984 13.7367 21 12" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></a><div class="modal typography out gone reader-onboarding-modal wide popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="reader-onboarding-modal-container"></div></div></div></div></div></div><a role="button" class="post-ufi-button style-compressed no-label with-border" href="javascript:void(0)"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" x2="12" y1="2" y2="15"></line></svg></a></div></div></div><div><div class="_image_6i6j0_29 _container_1iomp_1" style="aspect-ratio: 1.5 / 1;"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_320,h_213,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb8ef48-8a16-4bad-b792-792b530ed8a2_788x328.png"><img class="_img_16u6n_1 _image_1iomp_9 pencraft pc-reset" src="https://substackcdn.com/image/fetch/w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddb8ef48-8a16-4bad-b792-792b530ed8a2_788x328.png" sizes="(min-width:768px) 50vw, 100vw" alt="" width="320" height="213" loading="lazy" style="aspect-ratio: 1.5 / 1;"></picture></div></div></div></div><div class="pencraft pc-display-flex pc-reset _border-bottom-detail-themed_1utu8_50 _divider_1j53d_9"></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-padding-8 pc-reset pc-borderRadius-sm _container_1tbj4_1"><div class="_container_6i6j0_1"><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-4 pc-position-relative _flexGrow_1utu8_282 pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><a class="pencraft pc-reset _color-pub-primary-text_q8zsn_187 _font-pub-headings_q8zsn_124 _clamp_q8zsn_251 _clamp-3_q8zsn_263 _reset_q8zsn_1" href="https://blog.hyperknot.com/p/comparing-auth-providers" data-testid="post-preview-title" style="font-size: 19px; line-height: 26px;">Comparing Auth from Supabase, Firebase, Auth.js, Ory, Clerk and others</a></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><a class="pencraft pc-reset _color-primary_q8zsn_166 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-15_q8zsn_47 _clamp_q8zsn_251 _clamp-2_q8zsn_260 _reset_q8zsn_1" href="https://blog.hyperknot.com/p/comparing-auth-providers">Looking at Auth providers from a software developer's perspective.</a></div><div class="pencraft pc-display-inline pc-reset _color-pub-secondary-text_q8zsn_190 _line-height-20_q8zsn_80 _font-meta_q8zsn_115 _size-11_q8zsn_31 _weight-medium_q8zsn_145 _transform-uppercase_q8zsn_234 _reset_q8zsn_1 _meta_q8zsn_434"><time class="_date_1v6nm_1" datetime="2023-02-16T00:03:19.291Z">Feb 16, 2023</time>&nbsp;<span class="_dividerChar_1v6nm_34">•</span>&nbsp;<span class="pencraft pc-reset _reset_q8zsn_1"><div class="profile-hover-card-target _profileHoverCardTarget_c9bh7_50"><a class="_link_1v6nm_25" href="https://substack.com/@hyperknot">Zsolt Ero</a></div></span></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset _actions_1tbj4_24"><div class="post-ufi style-compressed justified themed"><div class="like-button-container post-ufi-button style-compressed"><a role="button" class="post-ufi-button style-compressed has-label with-border"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-heart"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path></svg></g></svg><div class="label">16</div></a><div class="modal typography out gone reader-onboarding-modal wide popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="reader-onboarding-modal-container"></div></div></div></div></div></div><div class="modal typography out gone share-dialog popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content no-fullscreen"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="share-dialog-title">Share this post</div><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-32 pc-paddingLeft-24 pc-paddingRight-24 pc-paddingTop-32 pc-paddingBottom-48 pc-reset"><div class="pencraft pc-display-flex pc-padding-8 pc-reset _border-detail_1utu8_25 pc-borderRadius-md social-preview-box post"><div class="social-image-box"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_120,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png"><img class="_img_16u6n_1 social-image pencraft pc-reset" src="https://substackcdn.com/image/fetch/w_120,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png" sizes="100vw" alt="" width="120" loading="lazy"></picture></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingTop-8 pc-paddingBottom-8 pc-paddingLeft-12 pc-reset"><h4 class="pencraft pc-reset _line-height-24_q8zsn_83 _font-display_q8zsn_103 _size-20_q8zsn_59 _weight-bold_q8zsn_151 _reset_q8zsn_1">Comparing Auth from Supabase, Firebase, Auth.js, Ory, Clerk and others</h4><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1">blog.hyperknot.com</div></div></div><div class="pencraft pc-display-flex pc-gap-8 pc-justifyContent-space-between pc-reset share-dialog-buttons-wrapper"><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="20" height="16" viewBox="0 0 20 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M12.1303 0.000379039C10.9833 -0.00959082 9.87819 0.431464 9.05309 1.22855L9.04556 1.23593L7.79145 2.48303C7.50587 2.767 7.50453 3.22877 7.78844 3.51441C8.07235 3.80004 8.53401 3.80139 8.81959 3.51741L10.0698 2.27423C10.6194 1.74503 11.3546 1.45229 12.1177 1.45892C12.8824 1.46556 13.6139 1.77236 14.1546 2.31323C14.6954 2.8541 15.0021 3.58577 15.0087 4.35065C15.0154 5.11353 14.7229 5.84857 14.1943 6.39829L12.0116 8.58145L12.0115 8.58155C11.7159 8.87739 11.36 9.10617 10.9682 9.25237C10.5764 9.39857 10.1577 9.45878 9.74051 9.42889C9.32337 9.39901 8.91752 9.27975 8.55051 9.07918C8.1835 8.87862 7.8639 8.60146 7.6134 8.26649C7.3722 7.94396 6.91526 7.87807 6.5928 8.11933C6.27034 8.36059 6.20447 8.81763 6.44567 9.14016C6.82142 9.64261 7.30082 10.0584 7.85134 10.3592C8.40186 10.66 9.01062 10.8389 9.63634 10.8838C10.2621 10.9286 10.8901 10.8383 11.4779 10.619C12.0656 10.3997 12.5994 10.0565 13.0429 9.61274L15.2302 7.42494L15.2391 7.4159C16.036 6.59062 16.4769 5.48529 16.467 4.33797C16.457 3.19066 15.9969 2.09316 15.1858 1.28185C14.3746 0.470545 13.2774 0.0103489 12.1303 0.000379039ZM7.29806 5.11625C6.67234 5.07142 6.0443 5.16173 5.45654 5.38103C4.86882 5.60031 4.33502 5.94355 3.89153 6.38727L1.70423 8.57506L1.69534 8.5841C0.898438 9.40939 0.457483 10.5147 0.467451 11.662C0.477418 12.8094 0.937512 13.9069 1.74864 14.7182C2.55976 15.5295 3.65701 15.9897 4.80407 15.9996C5.95113 16.0096 7.05622 15.5685 7.88132 14.7715L7.89035 14.7626L9.13717 13.5155C9.42192 13.2307 9.42192 12.7689 9.13717 12.4841C8.85243 12.1993 8.39077 12.1993 8.10602 12.4841L6.86392 13.7265C6.31432 14.2552 5.57945 14.5477 4.81675 14.5411C4.05204 14.5344 3.32054 14.2276 2.77979 13.6868C2.23904 13.1459 1.93231 12.4142 1.92566 11.6494C1.91904 10.8865 2.21146 10.1514 2.74011 9.60172L4.92287 7.41846C5.21854 7.12262 5.57437 6.89384 5.96621 6.74763C6.35805 6.60143 6.77674 6.54123 7.19389 6.57111C7.61104 6.601 8.01688 6.72026 8.38389 6.92082C8.75091 7.12138 9.0705 7.39855 9.32101 7.73352C9.56221 8.05605 10.0191 8.12194 10.3416 7.88068C10.6641 7.63942 10.7299 7.18238 10.4887 6.85985C10.113 6.3574 9.63359 5.94165 9.08307 5.64081C8.53255 5.33997 7.92378 5.16107 7.29806 5.11625Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Copy link</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="16" height="17" viewBox="0 0 16 17" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M10.6543 1.38723C10.3533 0.960814 9.95383 0.61341 9.48976 0.374567C9.02902 0.137956 8.51908 0.0130716 8.00115 0.0100098C7.86087 0.0101844 7.72354 0.0502687 7.60519 0.125581C7.48684 0.200893 7.39237 0.308324 7.3328 0.435326L5.00368 5.67077H3.029C2.72335 5.66964 2.42059 5.73003 2.13876 5.84833C1.85692 5.96663 1.60177 6.14043 1.38849 6.35938C1.16707 6.57502 0.991841 6.83346 0.873459 7.11897C0.755078 7.40447 0.696022 7.71108 0.699885 8.02014V13.691C0.699885 14.3087 0.945273 14.9012 1.38207 15.338C1.81886 15.7747 2.41128 16.0201 3.029 16.0201H13.348C13.8951 16.021 14.425 15.8283 14.8438 15.4762C15.2626 15.1241 15.5434 14.6352 15.6366 14.0961L16.6493 8.4252C16.7252 8.09192 16.7252 7.74582 16.6493 7.41254C16.566 7.08205 16.4104 6.7742 16.1936 6.51128C15.9746 6.25 15.7017 6.03926 15.3936 5.89355C15.0762 5.7467 14.7306 5.67068 14.3809 5.67077H10.5328L11.0391 4.37457C11.2397 3.88784 11.3162 3.35894 11.2619 2.83533C11.1853 2.30894 10.9763 1.81065 10.6543 1.38723ZM4.75052 14.5518H3.029C2.91049 14.5525 2.79303 14.5296 2.68349 14.4844C2.57394 14.4392 2.47452 14.3726 2.39102 14.2885C2.23609 14.1199 2.14945 13.8997 2.14799 13.6708V8.02014C2.14913 7.901 2.17389 7.78328 2.22082 7.67377C2.26775 7.56427 2.33592 7.46515 2.4214 7.38216C2.50369 7.29576 2.60267 7.22698 2.71233 7.17998C2.822 7.13298 2.94007 7.10874 3.05938 7.10874H4.7809L4.75052 14.5518ZM10.6746 7.05811H14.3809C14.5145 7.05821 14.6462 7.08942 14.7657 7.14925C14.8875 7.20532 14.9948 7.28845 15.0796 7.39229C15.1675 7.49052 15.2301 7.60871 15.2619 7.73659C15.2922 7.8665 15.2922 8.00162 15.2619 8.13153L14.2493 13.8024C14.2087 14.017 14.094 14.2106 13.9252 14.3492C13.7619 14.4812 13.558 14.5528 13.348 14.5518H6.19862V6.45052L8.43659 1.38723H8.52773C8.9042 1.50037 9.23304 1.73413 9.4636 2.05252C9.69416 2.37092 9.81365 2.75627 9.80368 3.14925C9.8181 3.39741 9.78015 3.64583 9.69229 3.87836L9.23659 5.04292C9.15397 5.273 9.12623 5.51921 9.15558 5.76191C9.1877 6.00427 9.27425 6.23623 9.40875 6.44039C9.5535 6.6376 9.74028 6.80017 9.95558 6.91634C10.1774 7.03206 10.4244 7.0912 10.6746 7.08849V7.05811Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Facebook</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="21" height="16" viewBox="0 0 21 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M2.22192 2.20503C2.36754 1.77115 2.78269 1.45455 3.26639 1.45455H17.9332C18.4169 1.45455 18.8321 1.77118 18.9777 2.2051L10.5999 8.02107L2.22192 2.20503ZM2.16639 3.94198V13.4545C2.16639 14.0529 2.66307 14.5455 3.26639 14.5455H17.9332C18.5365 14.5455 19.0332 14.0529 19.0332 13.4545V3.94206L11.0204 9.50462C10.7679 9.67991 10.4318 9.67991 10.1793 9.50462L2.16639 3.94198ZM20.4999 2.55809V13.4545C20.4999 14.8562 19.3465 16 17.9332 16H3.26639C1.85304 16 0.699707 14.8562 0.699707 13.4545V2.54545C0.699707 1.14379 1.85304 0 3.26639 0H17.9332C19.3407 0 20.4904 1.13441 20.4998 2.52818C20.5 2.53816 20.5001 2.54813 20.4999 2.55809Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Email</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M6.785 1.92766C5.45134 1.57031 4.08049 2.36176 3.72314 3.69543L0.444815 15.9303C0.0874636 17.264 0.878901 18.6348 2.21255 18.9922L5.37495 19.8396V7.66664C5.37495 6.40099 6.40096 5.37498 7.66661 5.37498H19.4723C19.3299 5.30548 19.1788 5.24858 19.0201 5.20604L6.785 1.92766Z" stroke="none"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.44161 7.4C7.86632 7.4 7.39995 7.86637 7.39995 8.44167V22.1081C7.39995 22.6834 7.86631 23.1498 8.4416 23.1498L22.1083 23.15C22.6836 23.15 23.1499 22.6836 23.1499 22.1083V8.44167C23.1499 7.86637 22.6836 7.4 22.1083 7.4H8.44161ZM10.3999 9.65C9.84766 9.65 9.39995 10.0977 9.39995 10.65C9.39995 11.2023 9.84766 11.65 10.3999 11.65H18.3999C18.9522 11.65 19.3999 11.2023 19.3999 10.65C19.3999 10.0977 18.9522 9.65 18.3999 9.65H10.3999ZM10.3999 14.15C9.84766 14.15 9.39995 14.5977 9.39995 15.15C9.39995 15.7023 9.84766 16.15 10.3999 16.15H15.3999C15.9522 16.15 16.3999 15.7023 16.3999 15.15C16.3999 14.5977 15.9522 14.15 15.3999 14.15H10.3999Z" stroke="none"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1">Note</div></button><button tabindex="0" id="trigger23" aria-expanded="false" aria-haspopup="dialog" aria-controls="dialog24" aria-label="View more" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="100" height="100" viewBox="0 0 100 100" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><circle cx="23" cy="50" r="9"></circle><circle cx="50" cy="50" r="9"></circle><circle cx="77" cy="50" r="9"></circle></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Other</div></button></div></div></div></div></div></div></div></div><a role="button" class="post-ufi-button style-compressed post-ufi-comment-button has-label with-border" href="https://blog.hyperknot.com/p/comparing-auth-providers/comments"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-circle"><path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"></path></svg></g></svg><div class="label">23</div></a><a role="button" class="post-ufi-button style-compressed no-label with-border"><svg role="img" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon" style="height: 14px; width: 14px;"><g><title></title><path d="M21 3V8M21 8H16M21 8L18 5.29962C16.7056 4.14183 15.1038 3.38328 13.3879 3.11547C11.6719 2.84766 9.9152 3.08203 8.32951 3.79031C6.74382 4.49858 5.39691 5.65051 4.45125 7.10715C3.5056 8.5638 3.00158 10.2629 3 11.9996M3 21V16M3 16H8M3 16L6 18.7C7.29445 19.8578 8.89623 20.6163 10.6121 20.8841C12.3281 21.152 14.0848 20.9176 15.6705 20.2093C17.2562 19.501 18.6031 18.3491 19.5487 16.8925C20.4944 15.4358 20.9984 13.7367 21 12" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></a><div class="modal typography out gone reader-onboarding-modal wide popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="reader-onboarding-modal-container"></div></div></div></div></div></div><a role="button" class="post-ufi-button style-compressed no-label with-border" href="javascript:void(0)"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" x2="12" y1="2" y2="15"></line></svg></a></div></div></div><div><div class="_image_6i6j0_29 _container_1iomp_1" style="aspect-ratio: 1.5 / 1;"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_320,h_213,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png"><img class="_img_16u6n_1 _image_1iomp_9 pencraft pc-reset" src="https://substackcdn.com/image/fetch/w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png" sizes="(min-width:768px) 50vw, 100vw" alt="" width="320" height="213" loading="lazy" style="aspect-ratio: 1.5 / 1;"></picture></div></div></div></div></div></div></div></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-40 pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-24 pc-paddingLeft-8 pc-paddingRight-8 pc-reset _container_cjrxc_1"><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-8 pc-reset"><img data-testid="homepage-sidebar-pub-logo" class="_pubLogo_cjrxc_5" src="https://substackcdn.com/image/fetch/w_88,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57e87a16-5ecc-4642-842f-3233254dc380_900x900.png" alt=" Thoughts while building"><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-2 pc-reset"><div class="pencraft pc-reset _color-pub-primary-text_q8zsn_187 _line-height-24_q8zsn_83 _font-pub-headings_q8zsn_124 _size-17_q8zsn_51 _weight-bold_q8zsn_151 _reset_q8zsn_1"> Thoughts while building</div><div class="pencraft pc-reset _color-pub-secondary-text_q8zsn_190 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-12_q8zsn_35 _reset_q8zsn_1">A blog by Zsolt Ero on programming and building things.</div></div></div><div class="subscribe-widget" data-component-name="SubscribeWidget"><div class="pencraft pc-display-flex pc-justifyContent-center pc-reset"><div class="_container_11q5m_1"><form class="form _form_11q5m_6" action="/api/v1/free?nojs=true" method="post" novalidate=""><input type="hidden" name="first_url" value="https://blog.hyperknot.com/"><input type="hidden" name="first_referrer"><input type="hidden" name="current_url" value="https://blog.hyperknot.com/"><input type="hidden" name="current_referrer"><input type="hidden" name="referral_code"><input type="hidden" name="source" value="magaziney-home-page"><input type="hidden" name="referring_pub_id"><input type="hidden" name="additional_referring_pub_ids"><div class="_sideBySideWrap_11q5m_10"><div class="_emailInputWrapper_11q5m_57 _emailInputWrapperExpectTruncation_11q5m_61"><input class="pencraft _emailInput_11q5m_23 _emailInputExpectTruncation_11q5m_53" type="email" name="email" placeholder="Type your email..."></div><button tabindex="0" type="submit" class="button rightButton primary subscribe-btn _button_11q5m_76"><span class="button-text ">Subscribe</span></button></div><div id="error-container"></div></form><div class="_animationWrapper_trj0v_1"></div></div></div></div></div></div></div></div><div><div class="_container_1d5xc_1 _three-column-width_1d5xc_67"><div class="pencraft pc-display-flex pc-flexDirection-column pc-paddingLeft-8 pc-paddingRight-8 pc-reset"><div class="home-sitemap"><h4 class="home-sitemap-title"> Thoughts while building</h4><div class="pencraft pc-paddingTop-20 pc-reset"><div class="home-sitemap-signup-form _container_11q5m_1"><form class="form _form_11q5m_6" action="/api/v1/free?nojs=true" method="post" novalidate=""><input type="hidden" name="first_url" value="https://blog.hyperknot.com/"><input type="hidden" name="first_referrer"><input type="hidden" name="current_url" value="https://blog.hyperknot.com/"><input type="hidden" name="current_referrer"><input type="hidden" name="referral_code"><input type="hidden" name="source" value="home-sitemap"><input type="hidden" name="referring_pub_id"><input type="hidden" name="additional_referring_pub_ids"><div class="_sideBySideWrap_11q5m_10"><div class="_emailInputWrapper_11q5m_57"><input class="pencraft _emailInput_11q5m_23" type="email" name="email" placeholder="Type your email..."></div><button tabindex="0" type="submit" class="button rightButton primary subscribe-btn _button_11q5m_76"><span class="button-text ">Subscribe</span></button></div><div id="error-container"></div></form><div class="_animationWrapper_trj0v_1"></div></div></div><div class="home-sitemap-links"><a href="/about">About</a><a href="/archive">Archive</a><a href="/sitemap" native="true">Sitemap</a></div></div></div></div></div></div></div></div></div></div><div class="footer-wrap publication-footer"><div class="visibility-check"></div><div class="footer themed-background"><div class="container"><div class="footer-blurbs"><div class="footer-copyright-blurb">© 2024 Hyperknot</div><div class="footer-terms-blurb"><a href="https://substack.com/privacy" target="_blank" rel="noopener noreferrer">Privacy</a><span> ∙ </span><a href="https://substack.com/tos" target="_blank" rel="noopener noreferrer">Terms</a><span> ∙ </span><a href="https://substack.com/ccpa#personal-data-collected" target="_blank" rel="noopener noreferrer">Collection notice</a></div></div><div class="footer-buttons"><a class="footer-substack-cta start-publishing" native="true" href="https://substack.com/signup?utm_source=substack&amp;utm_medium=web&amp;utm_content=footer"><svg role="img" width="1000" height="1000" viewBox="0 0 1000 1000" fill="#FF6719" stroke-width="1.8" stroke="none" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M764.166 348.371H236.319V419.402H764.166V348.371Z"></path><path d="M236.319 483.752V813.999L500.231 666.512L764.19 813.999V483.752H236.319Z"></path><path d="M764.166 213H236.319V284.019H764.166V213Z"></path></g></svg> Start Writing</a><a class="footer-substack-cta get-the-app no-icon" native="true" href="https://substack.com/app/app-store-redirect?utm_campaign=app-marketing&amp;utm_content=web-footer-button">Get the app</a></div><div class="pencraft pc-reset _reset_q8zsn_1 footer-slogan-blurb" translated="true"><a href="https://substack.com" native="true">Substack</a> is the home for great culture</div></div></div></div></div><div class="modal typography out gone share-dialog popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content no-fullscreen"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="share-dialog-title">Share</div><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-32 pc-paddingLeft-24 pc-paddingRight-24 pc-paddingTop-32 pc-paddingBottom-48 pc-reset"><div class="pencraft pc-display-flex pc-gap-8 pc-justifyContent-space-between pc-reset share-dialog-buttons-wrapper"><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="20" height="16" viewBox="0 0 20 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M12.1303 0.000379039C10.9833 -0.00959082 9.87819 0.431464 9.05309 1.22855L9.04556 1.23593L7.79145 2.48303C7.50587 2.767 7.50453 3.22877 7.78844 3.51441C8.07235 3.80004 8.53401 3.80139 8.81959 3.51741L10.0698 2.27423C10.6194 1.74503 11.3546 1.45229 12.1177 1.45892C12.8824 1.46556 13.6139 1.77236 14.1546 2.31323C14.6954 2.8541 15.0021 3.58577 15.0087 4.35065C15.0154 5.11353 14.7229 5.84857 14.1943 6.39829L12.0116 8.58145L12.0115 8.58155C11.7159 8.87739 11.36 9.10617 10.9682 9.25237C10.5764 9.39857 10.1577 9.45878 9.74051 9.42889C9.32337 9.39901 8.91752 9.27975 8.55051 9.07918C8.1835 8.87862 7.8639 8.60146 7.6134 8.26649C7.3722 7.94396 6.91526 7.87807 6.5928 8.11933C6.27034 8.36059 6.20447 8.81763 6.44567 9.14016C6.82142 9.64261 7.30082 10.0584 7.85134 10.3592C8.40186 10.66 9.01062 10.8389 9.63634 10.8838C10.2621 10.9286 10.8901 10.8383 11.4779 10.619C12.0656 10.3997 12.5994 10.0565 13.0429 9.61274L15.2302 7.42494L15.2391 7.4159C16.036 6.59062 16.4769 5.48529 16.467 4.33797C16.457 3.19066 15.9969 2.09316 15.1858 1.28185C14.3746 0.470545 13.2774 0.0103489 12.1303 0.000379039ZM7.29806 5.11625C6.67234 5.07142 6.0443 5.16173 5.45654 5.38103C4.86882 5.60031 4.33502 5.94355 3.89153 6.38727L1.70423 8.57506L1.69534 8.5841C0.898438 9.40939 0.457483 10.5147 0.467451 11.662C0.477418 12.8094 0.937512 13.9069 1.74864 14.7182C2.55976 15.5295 3.65701 15.9897 4.80407 15.9996C5.95113 16.0096 7.05622 15.5685 7.88132 14.7715L7.89035 14.7626L9.13717 13.5155C9.42192 13.2307 9.42192 12.7689 9.13717 12.4841C8.85243 12.1993 8.39077 12.1993 8.10602 12.4841L6.86392 13.7265C6.31432 14.2552 5.57945 14.5477 4.81675 14.5411C4.05204 14.5344 3.32054 14.2276 2.77979 13.6868C2.23904 13.1459 1.93231 12.4142 1.92566 11.6494C1.91904 10.8865 2.21146 10.1514 2.74011 9.60172L4.92287 7.41846C5.21854 7.12262 5.57437 6.89384 5.96621 6.74763C6.35805 6.60143 6.77674 6.54123 7.19389 6.57111C7.61104 6.601 8.01688 6.72026 8.38389 6.92082C8.75091 7.12138 9.0705 7.39855 9.32101 7.73352C9.56221 8.05605 10.0191 8.12194 10.3416 7.88068C10.6641 7.63942 10.7299 7.18238 10.4887 6.85985C10.113 6.3574 9.63359 5.94165 9.08307 5.64081C8.53255 5.33997 7.92378 5.16107 7.29806 5.11625Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Copy link</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="16" height="17" viewBox="0 0 16 17" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M10.6543 1.38723C10.3533 0.960814 9.95383 0.61341 9.48976 0.374567C9.02902 0.137956 8.51908 0.0130716 8.00115 0.0100098C7.86087 0.0101844 7.72354 0.0502687 7.60519 0.125581C7.48684 0.200893 7.39237 0.308324 7.3328 0.435326L5.00368 5.67077H3.029C2.72335 5.66964 2.42059 5.73003 2.13876 5.84833C1.85692 5.96663 1.60177 6.14043 1.38849 6.35938C1.16707 6.57502 0.991841 6.83346 0.873459 7.11897C0.755078 7.40447 0.696022 7.71108 0.699885 8.02014V13.691C0.699885 14.3087 0.945273 14.9012 1.38207 15.338C1.81886 15.7747 2.41128 16.0201 3.029 16.0201H13.348C13.8951 16.021 14.425 15.8283 14.8438 15.4762C15.2626 15.1241 15.5434 14.6352 15.6366 14.0961L16.6493 8.4252C16.7252 8.09192 16.7252 7.74582 16.6493 7.41254C16.566 7.08205 16.4104 6.7742 16.1936 6.51128C15.9746 6.25 15.7017 6.03926 15.3936 5.89355C15.0762 5.7467 14.7306 5.67068 14.3809 5.67077H10.5328L11.0391 4.37457C11.2397 3.88784 11.3162 3.35894 11.2619 2.83533C11.1853 2.30894 10.9763 1.81065 10.6543 1.38723ZM4.75052 14.5518H3.029C2.91049 14.5525 2.79303 14.5296 2.68349 14.4844C2.57394 14.4392 2.47452 14.3726 2.39102 14.2885C2.23609 14.1199 2.14945 13.8997 2.14799 13.6708V8.02014C2.14913 7.901 2.17389 7.78328 2.22082 7.67377C2.26775 7.56427 2.33592 7.46515 2.4214 7.38216C2.50369 7.29576 2.60267 7.22698 2.71233 7.17998C2.822 7.13298 2.94007 7.10874 3.05938 7.10874H4.7809L4.75052 14.5518ZM10.6746 7.05811H14.3809C14.5145 7.05821 14.6462 7.08942 14.7657 7.14925C14.8875 7.20532 14.9948 7.28845 15.0796 7.39229C15.1675 7.49052 15.2301 7.60871 15.2619 7.73659C15.2922 7.8665 15.2922 8.00162 15.2619 8.13153L14.2493 13.8024C14.2087 14.017 14.094 14.2106 13.9252 14.3492C13.7619 14.4812 13.558 14.5528 13.348 14.5518H6.19862V6.45052L8.43659 1.38723H8.52773C8.9042 1.50037 9.23304 1.73413 9.4636 2.05252C9.69416 2.37092 9.81365 2.75627 9.80368 3.14925C9.8181 3.39741 9.78015 3.64583 9.69229 3.87836L9.23659 5.04292C9.15397 5.273 9.12623 5.51921 9.15558 5.76191C9.1877 6.00427 9.27425 6.23623 9.40875 6.44039C9.5535 6.6376 9.74028 6.80017 9.95558 6.91634C10.1774 7.03206 10.4244 7.0912 10.6746 7.08849V7.05811Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Facebook</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="21" height="16" viewBox="0 0 21 16" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path fill-rule="evenodd" clip-rule="evenodd" d="M2.22192 2.20503C2.36754 1.77115 2.78269 1.45455 3.26639 1.45455H17.9332C18.4169 1.45455 18.8321 1.77118 18.9777 2.2051L10.5999 8.02107L2.22192 2.20503ZM2.16639 3.94198V13.4545C2.16639 14.0529 2.66307 14.5455 3.26639 14.5455H17.9332C18.5365 14.5455 19.0332 14.0529 19.0332 13.4545V3.94206L11.0204 9.50462C10.7679 9.67991 10.4318 9.67991 10.1793 9.50462L2.16639 3.94198ZM20.4999 2.55809V13.4545C20.4999 14.8562 19.3465 16 17.9332 16H3.26639C1.85304 16 0.699707 14.8562 0.699707 13.4545V2.54545C0.699707 1.14379 1.85304 0 3.26639 0H17.9332C19.3407 0 20.4904 1.13441 20.4998 2.52818C20.5 2.53816 20.5001 2.54813 20.4999 2.55809Z"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Email</div></button><button tabindex="0" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M6.785 1.92766C5.45134 1.57031 4.08049 2.36176 3.72314 3.69543L0.444815 15.9303C0.0874636 17.264 0.878901 18.6348 2.21255 18.9922L5.37495 19.8396V7.66664C5.37495 6.40099 6.40096 5.37498 7.66661 5.37498H19.4723C19.3299 5.30548 19.1788 5.24858 19.0201 5.20604L6.785 1.92766Z" stroke="none"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.44161 7.4C7.86632 7.4 7.39995 7.86637 7.39995 8.44167V22.1081C7.39995 22.6834 7.86631 23.1498 8.4416 23.1498L22.1083 23.15C22.6836 23.15 23.1499 22.6836 23.1499 22.1083V8.44167C23.1499 7.86637 22.6836 7.4 22.1083 7.4H8.44161ZM10.3999 9.65C9.84766 9.65 9.39995 10.0977 9.39995 10.65C9.39995 11.2023 9.84766 11.65 10.3999 11.65H18.3999C18.9522 11.65 19.3999 11.2023 19.3999 10.65C19.3999 10.0977 18.9522 9.65 18.3999 9.65H10.3999ZM10.3999 14.15C9.84766 14.15 9.39995 14.5977 9.39995 15.15C9.39995 15.7023 9.84766 16.15 10.3999 16.15H15.3999C15.9522 16.15 16.3999 15.7023 16.3999 15.15C16.3999 14.5977 15.9522 14.15 15.3999 14.15H10.3999Z" stroke="none"></path></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1">Note</div></button><button tabindex="0" id="trigger3" aria-expanded="false" aria-haspopup="dialog" aria-controls="dialog4" aria-label="View more" type="button" class="button share-action"><div class="action-icon"><svg role="img" width="100" height="100" viewBox="0 0 100 100" fill="none" stroke-width="1.8" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><title></title><circle cx="23" cy="50" r="9"></circle><circle cx="50" cy="50" r="9"></circle><circle cx="77" cy="50" r="9"></circle></g></svg></div><div class="pencraft pc-reset _color-secondary_q8zsn_169 _line-height-20_q8zsn_80 _font-text_q8zsn_106 _size-13_q8zsn_39 _weight-regular_q8zsn_142 _reset_q8zsn_1" translated="true">Other</div></button></div></div></div></div></div></div></div><div class="pencraft pc-display-contents pc-reset _pubAccentTheme_1abwf_1"></div><div class="modal typography out gone reader-onboarding-modal wide popup" inert="" role="dialog"><div class="modal-table"><div class="modal-row"><div class="modal-cell modal-content"><div class="container"><button class="pencraft pc-reset pencraft modal-btn modal-exit-btn no-margin _iconButton2_1r1ly_628 _iconButtonBase_1r1ly_154 _buttonBase_1r1ly_1 _buttonNew_1r1ly_92 _size_md_1r1ly_136 _priority_tertiary_1r1ly_78" tabindex="0" type="button" data-testid="close-modal"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="secondary" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button><div class="reader-onboarding-modal-container"></div></div></div></div></div></div><div class="pencraft pc-position-fixed pc-reset _sizing-border-box_1utu8_329" style="left: auto; right: 16px; bottom: 16px; z-index: 999; transform: translateY(0px);"></div><div></div></div>

        
            <script async="" src="https://www.googletagmanager.com/gtag/js?id=AW-316245675&amp;l=localGaDataLayer"></script><script async="" src="https://www.datadoghq-browser-agent.com/us1/v5/datadog-rum.js"></script><script src="https://js.sentry-cdn.com/6c2ff3e3828e4017b7faf7b63e24cdf8.min.js" crossorigin="anonymous"></script>
            <script>
                window.Sentry && window.Sentry.onLoad(function() {
                    window.Sentry.init({
                        environment: window._preloads.sentry_environment,
                        dsn: window._preloads.sentry_dsn,
                    })
                })
            </script>
        


        
        
        
        <script>window._preloads        = JSON.parse("{\"isEU\":true,\"language\":\"en\",\"country\":\"ES\",\"base_url\":\"https://blog.hyperknot.com\",\"stripe_publishable_key\":\"pk_live_vNnuGHOFnt4mM7V9PuCAAPJz\",\"captcha_site_key\":\"6LdYbsYZAAAAAIFIRh8X_16GoFRLIReh-e-q6qSa\",\"pub\":{\"apple_pay_disabled\":false,\"apex_domain\":null,\"author_id\":121308039,\"byline_images_enabled\":true,\"bylines_enabled\":true,\"chartable_token\":null,\"community_enabled\":true,\"copyright\":\"Hyperknot\",\"cover_photo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/2d8920c2-8570-4fbf-ae98-a9701d938e33_1134x142.png\",\"created_at\":\"2023-01-07T14:27:27.906Z\",\"custom_domain_optional\":false,\"custom_domain\":\"blog.hyperknot.com\",\"custom_publication_theme_id\":null,\"default_comment_sort\":\"best_first\",\"default_coupon\":null,\"default_group_coupon\":null,\"default_show_guest_bios\":true,\"email_banner_url\":null,\"email_from_name\":\"Hyperknot\u2019s Substack\",\"email_from\":null,\"embed_tracking_disabled\":false,\"explicit\":false,\"expose_paywall_content_to_search_engines\":true,\"fb_pixel_id\":null,\"fb_site_verification_token\":null,\"flagged_as_spam\":false,\"founding_subscription_benefits\":null,\"free_subscription_benefits\":null,\"ga_pixel_id\":null,\"google_site_verification_token\":null,\"google_tag_manager_token\":null,\"hero_image\":null,\"hero_text\":\"A blog by Zsolt Ero on programming and building things.\",\"hide_intro_subtitle\":null,\"hide_intro_title\":null,\"hide_podcast_feed_link\":false,\"homepage_type\":\"newspaper\",\"id\":1295356,\"image_thumbnails_always_enabled\":false,\"invite_only\":false,\"language\":\"en\",\"logo_url_wide\":null,\"logo_url\":\"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57e87a16-5ecc-4642-842f-3233254dc380_900x900.png\",\"minimum_group_size\":2,\"moderation_enabled\":true,\"name\":\" Thoughts while building\",\"paid_subscription_benefits\":null,\"parsely_pixel_id\":null,\"payments_state\":\"disabled\",\"paywall_free_trial_enabled\":false,\"podcast_art_url\":null,\"paid_podcast_episode_art_url\":null,\"podcast_byline\":null,\"podcast_description\":null,\"podcast_enabled\":false,\"podcast_feed_url\":null,\"podcast_title\":null,\"post_preview_limit\":null,\"require_clickthrough\":false,\"rss_feed_url\":null,\"rss_website_url\":null,\"show_pub_podcast_tab\":false,\"show_recs_on_homepage\":true,\"subdomain\":\"hyperknot\",\"subscriber_invites\":0,\"support_email\":null,\"theme_var_background_pop\":\"#67BDFC\",\"theme_var_color_links\":false,\"theme_var_cover_bg_color\":null,\"trial_end_override\":null,\"twitter_pixel_id\":null,\"type\":\"newsletter\",\"post_reaction_faces_enabled\":true,\"is_personal_mode\":false,\"plans\":null,\"stripe_user_id\":null,\"stripe_country\":null,\"stripe_publishable_key\":null,\"automatic_tax_enabled\":null,\"author_name\":\"Zsolt Ero\",\"author_handle\":\"hyperknot\",\"author_photo_url\":\"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png\",\"author_bio\":\"Founder of http://maphub.net\\n\\nLoves building.\\n\\nWebsite: http://hyperknot.com\",\"twitter_screen_name\":\"hyperknot\",\"twitter_share_on_publish_opt_in\":false,\"has_custom_tos\":false,\"has_custom_privacy\":false,\"theme\":{\"background_pop_color\":\"#538cfa\",\"web_bg_color\":\"#ffffff\",\"cover_bg_color\":null,\"publication_id\":1295356,\"color_links\":null,\"font_preset_heading\":null,\"font_preset_body\":\"classic_serif\",\"font_family_headings\":null,\"font_family_body\":null,\"font_family_ui\":null,\"font_size_body_desktop\":null,\"print_secondary\":null,\"custom_css_web\":null,\"custom_css_email\":null,\"home_hero\":\"newspaper\",\"home_posts\":\"list\",\"home_show_top_posts\":false,\"hide_images_from_list\":false,\"home_hero_alignment\":\"left\",\"home_hero_show_podcast_links\":true},\"threads_v2_settings\":null,\"default_group_coupon_percent_off\":null,\"pause_return_date\":null,\"has_posts\":true,\"has_recommendations\":false,\"first_post_date\":\"2023-02-16T00:03:19.291Z\",\"has_podcast\":false,\"has_free_podcast\":false,\"has_subscriber_only_podcast\":false,\"has_community_content\":true,\"twitter_permissions\":\"write\",\"rankingDetail\":null,\"rankingDetailFreeIncluded\":null,\"rankingDetailOrderOfMagnitude\":null,\"rankingDetailFreeIncludedOrderOfMagnitude\":null,\"rankingDetailFreeSubscriberCount\":null,\"rankingDetailByLanguage\":{},\"freeSubscriberCount\":null,\"freeSubscriberCountOrderOfMagnitude\":null,\"author_bestseller_tier\":0,\"disable_monthly_subscriptions\":false,\"disable_annual_subscriptions\":false,\"hide_post_restacks\":false,\"notes_feed_enabled\":false,\"no_follow\":false,\"paywall_chat\":\"free\",\"sections\":[],\"multipub_migration\":null,\"navigationBarItems\":[{\"id\":\"548af660-e638-4fb1-bb4d-15cfdaaba0f3\",\"publication_id\":1295356,\"sibling_rank\":0,\"link_title\":null,\"link_url\":null,\"section_id\":null,\"post_id\":null,\"is_hidden\":false,\"standard_key\":\"about\",\"post_tag_id\":null,\"post\":null,\"section\":null,\"postTag\":null}],\"contributors\":[{\"name\":\"Zsolt Ero\",\"handle\":\"hyperknot\",\"role\":\"admin\",\"owner\":true,\"user_id\":121308039,\"photo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/b4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png\",\"bio\":\"Founder of http://maphub.net\\n\\nLoves building.\\n\\nWebsite: http://hyperknot.com\"}],\"threads_v2_enabled\":false,\"viralGiftsConfig\":null,\"tier\":2,\"no_index\":false,\"can_set_google_site_verification\":true,\"can_have_sitemap\":true,\"founding_plan_name_english\":\"Founding Member\",\"draft_plans\":null,\"base_url\":\"https://blog.hyperknot.com\",\"hostname\":\"blog.hyperknot.com\",\"is_on_substack\":false,\"spotify_podcast_settings\":null,\"podcastPalette\":{\"Vibrant\":{\"rgb\":[244.1949152542373,162.0762711864407,10.805084745762711],\"population\":0},\"DarkVibrant\":{\"rgb\":[126.9813559322034,84.27966101694916,5.618644067796606],\"population\":0},\"LightVibrant\":{\"rgb\":[250,212,142],\"population\":31},\"Muted\":{\"rgb\":[92,158,148],\"population\":4},\"DarkMuted\":{\"rgb\":[146.51694915254237,97.24576271186443,6.483050847457638],\"population\":0},\"LightMuted\":{\"rgb\":[164,204,196],\"population\":3}},\"pageThemes\":{\"podcast\":null},\"live_subscriber_counts\":false,\"subscribeCardVersionHash\":\"899abea1f9b7782a4bd5483d966149a5\"},\"confirmedLogin\":false,\"hide_intro_popup\":false,\"block_auto_login\":false,\"domainInfo\":{\"isSubstack\":false,\"customDomain\":\"blog.hyperknot.com\"},\"experimentFeatures\":{},\"experimentExposures\":{},\"siteConfigs\":{\"score_upsell_email\":\"control\",\"first_chat_email_enabled\":true,\"notes_video_max_duration_minutes\":5,\"reader-onboarding-promoted-pub\":737237,\"pub_creation_captcha_behavior\":\"risky_pubs\",\"new_commenter_approval\":false,\"pub_update_opennode_api_key\":false,\"note_velocity_insertion_min_ratio\":null,\"embedding_search_using_quantized_field\":false,\"zendesk_automation_cancellations\":false,\"hide_book_a_meeting_button\":false,\"note_velocity_insertion_max_ratio\":null,\"mfa_action_box_enabled\":false,\"publication_max_bylines\":35,\"no_contest_charge_disputes\":false,\"new_subscription_management\":false,\"publication_tabs_reorder\":false,\"comp_expiry_email_new_copy\":\"NONE\",\"free_unlock_required\":false,\"traffic_rule_check_enabled\":false,\"amp_emails_enabled\":false,\"enable_post_summarization\":false,\"image_deep_link_enabled\":false,\"bitcoin_enabled\":false,\"show_entire_square_image\":false,\"hide_subscriber_count\":false,\"publication_author_display_override\":\"\",\"custom_themes_substack_player_for_video_embeds\":false,\"generate_pdf_tax_report\":false,\"live_stream_email_all_subscribers\":true,\"show_generic_post_importer\":false,\"enable_pledges_modal\":true,\"include_pdf_invoice\":false,\"app_upsell_after_posting_notes\":\"experiment\",\"platform_searcher_enabled\":false,\"upload_to_youtube\":false,\"use_post_podcast_import_batching\":true,\"meetings_v1\":false,\"live_stream_share_override_pub_id\":0,\"exempt_from_gtm_filter\":false,\"group_sections_and_podcasts_in_menu\":false,\"boost_optin_modal_enabled\":true,\"trending_topics_live_mode\":false,\"post_blogspot_importer\":false,\"pub_tts_override\":\"default\",\"disable_monthly_subscriptions\":false,\"skip_welcome_email\":false,\"chat_reader_thread_notification_default\":false,\"scheduled_pinned_posts\":false,\"disable_redirect_outbound_utm_params\":false,\"reader_gift_referrals_enabled\":true,\"enable_bestseller_survey_modal\":false,\"dont_show_guest_byline\":false,\"like_comments_enabled\":true,\"extended_podcast_episode_metadata\":false,\"force_live_feed_tabs\":\"\",\"enable_author_note_email_toggle\":false,\"meetings_embed_publication_name\":false,\"no_auto_renewal_notice\":false,\"people_you_may_know_algorithm\":\"experiment\",\"show_livestreams_in_tabs\":true,\"welcome_screen_blurb_override\":\"\",\"post_recipients_batch_limit\":1000,\"like_posts_enabled\":true,\"notes_publication_mentions_enabled\":false,\"twitter_player_card_enabled\":true,\"show_app_upsell_subscribe_flow\":true,\"feed_promoted_user\":false,\"writer_beta_android_enable_post_editor_v2\":false,\"section_specific_csv_imports_enabled\":false,\"custom_themes_free_press_custom_paywall\":false,\"bypass_profile_substack_logo_detection\":false,\"use_preloaded_player_sources\":false,\"generate_twitter_card_with_lamda\":false,\"list_pruning_enabled\":false,\"facebook_connect\":false,\"opt_in_to_sections_during_subscribe\":false,\"viral_gift_blast_length\":7,\"underlined_colored_links\":false,\"android_enable_post_editor_launch\":false,\"temporal_livestream_ended_draft\":false,\"max_image_upload_mb\":32,\"modal_rec_variant_user\":\"control\",\"extract_stripe_receipt_url\":false,\"enable_thefp_theme\":false,\"live_stream_notifications_disbled\":false,\"enable_android_dms_writer_beta\":false,\"threads_suggested_ios_version\":null,\"pledges_disabled\":false,\"threads_minimum_ios_version\":812,\"hide_podcast_email_setup_link\":false,\"subscribe_captcha_behavior\":\"default\",\"publication_ban_sample_rate\":0,\"show_lives_in_election_tab\":false,\"custom_themes_substack_subscribe_modal\":false,\"share_viral_gift_as_link\":\"experiment\",\"continue_support_cta_in_newsletter_emails\":false,\"bloomberg_syndication_enabled\":false,\"custom_publication_theme\":false,\"lists_enabled\":false,\"live_stream_ended_zync_delay\":15,\"generated_database_maintenance_mode\":false,\"allow_document_freeze\":false,\"customized_email_from_name_for_new_follow_emails\":\"experiment\",\"podcast_main_feed_is_firehose\":false,\"pub_app_incentive_gift\":\"\",\"no_embed_redirect\":false,\"gifts_from_substack_feature_available\":true,\"translate_mobile_app\":false,\"spotify_open_access_sandbox_mode\":false,\"enable_top_search_ios\":false,\"fullstory_enabled\":false,\"chat_reply_poll_interval\":3,\"enable_reader_marketing_page\":false,\"force_pub_links_to_use_subdomain\":false,\"email_existing_users_on_import\":false,\"always_show_cookie_banner\":false,\"hide_media_download_option\":false,\"twitter_figures_enabled\":false,\"hide_post_restacks\":false,\"feed_item_source_debug_mode\":false,\"writer_beta_android_enable_post_editor\":false,\"daily_promoted_notes_enabled\":true,\"publication_homepage_title_display_override\":\"\",\"pub_banned_word_list\":\"\",\"post_preview_highlight_byline\":false,\"4k_video\":false,\"custom_themes_substack_video_player\":false,\"bypass_unlock_token_limit\":false,\"post_metering_enabled\":false,\"notifications_disabled\":\"\",\"cross_post_notification_threshold\":1000,\"facebook_connect_prod_app\":true,\"mobile_related_notes\":true,\"messages_inbox_page_size\":50,\"minimum_android_version\":756,\"feed_main_disabled\":false,\"use_mobile_app_post_unlock_flow\":true,\"use_og_image_as_twitter_image_for_post_previews\":false,\"always_use_podcast_channel_art_as_episode_art_in_rss\":false,\"cookie_preference_middleware_enabled\":false,\"seo_tier_override\":\"NONE\",\"no_follow_links\":false,\"publisher_api_enabled\":false,\"zendesk_support_priority\":\"default\",\"enable_subscriber_referrals_awards\":true,\"live_stream_creation_enabled_for_bestsellers\":true,\"android_enable_post_editor_launch_v2\":true,\"thread_permalink_preview_min_ios_version\":4192,\"post_management_search_engine\":\"elasticsearch\",\"enable_top_search\":false,\"internal_android_enable_post_editor\":false,\"web_reader_podcasts_tab\":false,\"phone_verification_fallback_to_twilio\":true,\"send_as_email_reply_bar\":\"experiment\",\"temporal_clips_workflow\":false,\"live_stream_creation_enabled\":false,\"disable_card_element_in_europe\":false,\"android_global_player_v2_enabled\":true,\"enable_global_navigation_ios_beta\":false,\"use_bumper_v2\":true,\"enable_web_typing_indicators\":false,\"custom_themes_substack_audio_player\":false,\"web_vitals_sample_rate\":0,\"allow_live_stream_auto_takedown\":\"true\",\"skip_twitter_step_in_writer_onboarding\":true,\"temporal_zync_post_editor\":false,\"use_ranker_for_category_tabs\":false,\"ai_image_generation_enabled\":true,\"disable_personal_substack_initialization\":false,\"section_specific_welcome_pages\":false,\"local_payment_methods\":\"control\",\"temporal_clips_workflow_notifications\":false,\"posts_in_rss_feed\":20,\"post_rec_endpoint\":\"\",\"publisher_dashboard_section_selector\":false,\"reader_surveys_platform_question_order\":\"36,1,4,2,3,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35\",\"negative_feedback_in_onboarding\":\"experiment\",\"login_guard_app_link_in_email\":true,\"android_top_search_enabled\":false,\"modal_rec_variant_content\":\"control\",\"monthly_sub_is_one_off\":false,\"unread_notes_activity_digest\":\"control\",\"display_cookie_settings\":false,\"welcome_page_query_params\":false,\"enable_mobile_publication_setup\":false,\"enable_free_podcast_urls\":false,\"imported_banner_email_experiment_enabled\":false,\"use_microlink_for_instagram_embeds\":false,\"post_notification_batch_delay_ms\":30000,\"use_whisper\":false,\"social_context_in_pymk_feed_module_v2\":\"treatment-nofacepile\",\"ios_post_stats_for_admins\":false,\"live_stream_concurrent_viewer_count_drawer\":false,\"section_specific_preambles\":false,\"android_live_stream_multihost_enabled\":false,\"show_menu_on_posts\":false,\"app_upsell_follow_prompt\":\"control\",\"trust_and_safety_features_enabled\":false,\"free_signup_confirmation_behavior\":\"with_email_validation\",\"opt_into_all_trending_topics\":false,\"ios_writer_stats_public_launch_v2\":false,\"enable_android_post_stats\":false,\"ios_chat_revamp_enabled\":false,\"post_notification_batch_chunk_size\":100,\"app_mode\":false,\"show_phone_banner\":false,\"enable_author_pages\":false,\"enable_decagon_chat\":true,\"first_month_upsell\":\"control\",\"twitter_connect_flows_enabled\":false,\"enable_user_contacts\":true,\"gift_post_unlocks_recipient_2\":\"experiment\",\"live_stream_invite_ttl_seconds\":300,\"welcome_page_update_desktop_visuals_limited\":\"experiment\",\"rss_verification_code\":\"\",\"notification_post_emails\":\"experiment\",\"pin_primary_publication_chat_ios_v2\":\"treatment_thread_list\",\"experiment_phone_verification_includes_findability_ios\":\"experiment\",\"chat_suppress_contributor_push_option_enabled\":false,\"rate_limit_live_reaction_messages_v2\":\"15ps\",\"custom_themes_free_press_newsletters_page\":false,\"export_hooks_enabled\":false,\"audio_encoding_bitrate\":null,\"bestseller_pub_override\":false,\"extra_seats_coupon_type\":false,\"post_subdomain_universal_links\":false,\"post_import_max_file_size\":26214400,\"blocked_email_domains\":\"nastyx.com,heweek.com,marchub.com,wesolar.io,cetnob.com,asaud.com,sigmazon.com,ofionk.com,degcos.com,janfab.com,obisims.com,esterace.com,barakal.com,coloruz.com,rogtat.com,ploncy.com,konetas.com,pelagius.net,teeuk.com,laafd.com,vjuum.com,txcct.com,rteet.com,dpptd.com,funvahnuwa.com\",\"minimum_ios_version\":2200,\"disable_annual_subscriptions\":false,\"enable_bestseller_survey_modal_override\":false,\"android_live_streams_enabled\":true,\"enable_android_dms\":false,\"non_mfa_password_login_guard\":\"block_suspicious\",\"debate_night_show_livestreams\":true,\"mobile_feed_full_bleed_beta\":false,\"live_stream_track_egress\":true,\"web_feed_more_like_this\":false,\"recipes_enabled\":false,\"disable_deletion\":false,\"live_stream_max_guest_users\":1,\"livekit_egress_custom_base_url\":\"http://livekit-egress-custom-recorder.s3-website-us-east-1.amazonaws.com\",\"clip_focused_video_upload_flow\":false,\"notes_continuation_boost_pct\":1,\"unitary_image_moderation_percent\":100,\"can_reimport_unsubscribed_users_with_2x_optin\":false,\"infer_categories_for_new_users\":true,\"live_event_mixin\":\"\",\"review_incoming_email\":\"default\",\"app_install_prompts\":\"native_banner_if_supported\",\"ios_chat_uikit\":false,\"daily_promoted_note_intelligent_delivery\":\"control\",\"thread_permalink_preview_min_android_version\":2037,\"enable_email_login_code\":false,\"enable_home_screen_nav_bar_hiding_ios\":false,\"android_hide_feed_bars_2\":\"control\",\"publisher_banner\":\"\",\"android_live_stream_practice_room_enabled\":true,\"notes_followed_user_boost_pct\":5,\"load_test_unichat\":false,\"enable_chat_content_open_graph\":true,\"phone_verification_banned_countries\":\"PH, BD, UA, PK, UZ, ID, MA, KG, ML, AZ, GT, SN, BZ, EG, MM, MX, VN, ZW, NG, JO, RU, MY, KE, CN\",\"enable_small_queue_cards_ios\":true,\"android_related_notes_enabled\":false,\"small_feed_attachments\":false,\"gift_from_substack_modal\":\"experiment\",\"ios_inline_subscribe_hiding_v2\":\"experiment\"},\"publicationSettings\":{\"block_ai_crawlers\":false,\"credit_token_enabled\":false,\"custom_tos_and_privacy\":false,\"did_identity\":null,\"disable_optimistic_bank_payments\":false,\"display_welcome_page_details\":false,\"enable_meetings\":false,\"payment_pledges_enabled\":false,\"enable_post_page_conversion\":false,\"enable_prev_next_nav\":true,\"enable_restacking\":false,\"gifts_from_substack_disabled\":false,\"google_analytics_4_token\":null,\"group_sections_and_podcasts_in_menu_enabled\":false,\"medium_length_description\":\"\",\"notes_feed_enabled\":false,\"paywall_unlock_tokens\":false,\"post_preview_crop_gravity\":\"auto\",\"reader_referrals_enabled\":false,\"reader_referrals_leaderboard_enabled\":false,\"seen_coming_soon_explainer\":false,\"seen_google_analytics_migration_modal\":false,\"local_currency_modal_seen\":false,\"local_payment_methods_modal_seen\":false,\"twitter_pixel_signup_event_id\":null,\"twitter_pixel_subscribe_event_id\":null,\"use_local_currency\":false,\"welcome_page_opt_out_text\":\"No thanks\",\"cookie_settings\":\"\",\"show_restacks_below_posts\":true,\"homepage_message_text\":\"\",\"homepage_message_link\":\"\"},\"publicationUserSettings\":null,\"userSettings\":{\"user_id\":null,\"activity_likes_enabled\":true,\"hasDismissedSectionToNewsletterRename\":false,\"is_guest_post_enabled\":true,\"feed_web_nux_seen_at\":null,\"has_seen_select_to_restack_tooltip_nux\":false,\"invite_friends_nux_dismissed_at\":null,\"suggestions_feed_item_last_shown_at\":null,\"has_seen_select_to_restack_modal\":false,\"last_home_tab\":null,\"last_notification_alert_shown_at\":null,\"disable_reply_hiding\":false,\"newest_seen_chat_item_published_at\":null,\"explicitContentEnabled\":false,\"contactMatchingEnabled\":false,\"messageRequestLevel\":\"everyone\",\"liveStreamAcceptableInviteLevel\":\"everyone\",\"liveStreamAcceptableChatLevel\":\"everyone\",\"creditTokensTreatmentExposed\":false,\"appBadgeIncludesChat\":false,\"autoPlayVideo\":true,\"smart_delivery_enabled\":false,\"chatbotTermsLastAcceptedAt\":null,\"has_seen_notes_post_app_upsell\":false,\"substack_summer_nux_dismissed_at\":null},\"subscriberCountDetails\":\"hundreds of subscribers\",\"mux_env_key\":\"u42pci814i6011qg3segrcpp9\",\"sentry_environment\":\"production\",\"launchWelcomePage\":false,\"twitterCardUrl\":null,\"blurbs\":[],\"topThreePosts\":[{\"id\":101381499,\"editor_v2\":false,\"publication_id\":1295356,\"title\":\"Comparing Auth from Supabase, Firebase, Auth.js, Ory, Clerk and others\",\"social_title\":\"Comparing Auth from Supabase, Firebase, Auth.js, Ory, Clerk and others\",\"search_engine_title\":\"Comparing Auth from Supabase, Firebase, Auth.js, Ory, Clerk and others\",\"search_engine_description\":\"Comparison between Supabase, Firebase, Auth.js, Supertokens, Ory, Clerk, FusionAuth and ZITADEL.\",\"type\":\"newsletter\",\"slug\":\"comparing-auth-providers\",\"post_date\":\"2023-02-16T00:03:19.291Z\",\"audience\":\"everyone\",\"podcast_duration\":null,\"video_upload_id\":null,\"podcast_upload_id\":null,\"write_comment_permissions\":\"everyone\",\"should_send_free_preview\":false,\"free_unlock_required\":false,\"default_comment_sort\":null,\"canonical_url\":\"https://blog.hyperknot.com/p/comparing-auth-providers\",\"section_id\":null,\"top_exclusions\":[],\"pins\":[],\"is_section_pinned\":false,\"section_slug\":null,\"section_name\":null,\"reactions\":{\"\u2764\":16},\"restacked_post_id\":null,\"restacked_pub_name\":null,\"restacked_pub_logo_url\":null,\"position\":1,\"subtitle\":\"Looking at Auth providers from a software developer's perspective.\",\"cover_image\":\"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png\",\"cover_image_is_square\":true,\"cover_image_is_explicit\":false,\"podcast_url\":\"\",\"videoUpload\":null,\"podcastFields\":null,\"podcast_preview_upload_id\":null,\"podcastUpload\":null,\"podcastPreviewUpload\":null,\"voiceover_upload_id\":null,\"voiceoverUpload\":null,\"has_voiceover\":false,\"description\":\"Looking at Auth providers from a software developer's perspective.\",\"body_json\":null,\"body_html\":null,\"truncated_body_text\":\"I\u2019m Zsolt Ero. After reading blog posts all my life, but never writing one, I decided to start writing my thoughts while building. This is my first blog post.\",\"wordcount\":4828,\"postTags\":[],\"teaser_post_eligible\":true,\"postCountryBlocks\":[],\"coverImagePalette\":{\"Vibrant\":{\"rgb\":[127.5,127.5,127.5],\"population\":0},\"DarkVibrant\":{\"rgb\":[66.3,66.3,66.3],\"population\":0},\"LightVibrant\":{\"rgb\":[188.7,188.7,188.7],\"population\":0},\"Muted\":{\"rgb\":[124,124,124],\"population\":58},\"DarkMuted\":{\"rgb\":[60,60,60],\"population\":16},\"LightMuted\":{\"rgb\":[180,180,180],\"population\":678}},\"publishedBylines\":[{\"id\":121308039,\"name\":\"Zsolt Ero\",\"handle\":\"hyperknot\",\"previous_name\":\"Hyperknot\",\"photo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/b4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png\",\"bio\":\"Founder of http://maphub.net\\n\\nLoves building.\\n\\nWebsite: http://hyperknot.com\",\"profile_set_up_at\":\"2023-01-07T14:26:46.775Z\",\"publicationUsers\":[{\"id\":1253731,\"user_id\":121308039,\"publication_id\":1295356,\"role\":\"admin\",\"public\":true,\"is_primary\":false,\"publication\":{\"id\":1295356,\"name\":\" Thoughts while building\",\"subdomain\":\"hyperknot\",\"custom_domain\":\"blog.hyperknot.com\",\"custom_domain_optional\":false,\"hero_text\":\"A blog by Zsolt Ero on programming and building things.\",\"logo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/57e87a16-5ecc-4642-842f-3233254dc380_900x900.png\",\"author_id\":121308039,\"theme_var_background_pop\":\"#67BDFC\",\"created_at\":\"2023-01-07T14:27:27.906Z\",\"rss_website_url\":null,\"email_from_name\":\"Hyperknot\u2019s Substack\",\"copyright\":\"Hyperknot\",\"founding_plan_name\":null,\"community_enabled\":true,\"invite_only\":false,\"payments_state\":\"disabled\",\"language\":null,\"explicit\":false,\"is_personal_mode\":false}}],\"twitter_screen_name\":\"hyperknot\",\"is_guest\":false,\"bestseller_tier\":null}],\"reaction\":null,\"reaction_count\":16,\"comment_count\":23,\"child_comment_count\":20,\"is_geoblocked\":false,\"hasCashtag\":false},{\"id\":150748395,\"editor_v2\":false,\"publication_id\":1295356,\"title\":\"Understanding Round Robin DNS\",\"social_title\":null,\"search_engine_title\":null,\"search_engine_description\":null,\"type\":\"newsletter\",\"slug\":\"understanding-round-robin-dns\",\"post_date\":\"2024-10-26T12:29:33.267Z\",\"audience\":\"everyone\",\"podcast_duration\":null,\"video_upload_id\":null,\"podcast_upload_id\":null,\"write_comment_permissions\":\"everyone\",\"should_send_free_preview\":false,\"free_unlock_required\":false,\"default_comment_sort\":null,\"canonical_url\":\"https://blog.hyperknot.com/p/understanding-round-robin-dns\",\"section_id\":null,\"top_exclusions\":[],\"pins\":[],\"is_section_pinned\":false,\"section_slug\":null,\"section_name\":null,\"reactions\":{\"\u2764\":6},\"restacked_post_id\":null,\"restacked_pub_name\":null,\"restacked_pub_logo_url\":null,\"position\":2,\"subtitle\":\"In which I try to understand how browsers and Cloudflare choose which server to use\",\"cover_image\":\"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e623d8-a8c8-44e9-ad80-0e61b53323f6_1186x516.png\",\"cover_image_is_square\":false,\"cover_image_is_explicit\":false,\"podcast_url\":\"\",\"videoUpload\":null,\"podcastFields\":{\"post_id\":150748395,\"podcast_episode_number\":null,\"podcast_season_number\":null,\"podcast_episode_type\":null,\"should_syndicate_to_other_feed\":null,\"syndicate_to_section_id\":null,\"hide_from_feed\":false,\"free_podcast_url\":null,\"free_podcast_duration\":null},\"podcast_preview_upload_id\":null,\"podcastUpload\":null,\"podcastPreviewUpload\":null,\"voiceover_upload_id\":null,\"voiceoverUpload\":null,\"has_voiceover\":false,\"description\":\"In which I try to understand how browsers and Cloudflare choose which server to use\",\"body_json\":null,\"body_html\":null,\"truncated_body_text\":\"For OpenFreeMap, I'm using servers behind Round Robin DNS. In this article, I'm trying to understand how browsers and CDNs select which one to use.\",\"wordcount\":1113,\"postTags\":[],\"teaser_post_eligible\":true,\"postCountryBlocks\":[],\"coverImagePalette\":{\"Vibrant\":{\"rgb\":[127.5,127.5,127.5],\"population\":0},\"DarkVibrant\":{\"rgb\":[66.3,66.3,66.3],\"population\":0},\"LightVibrant\":{\"rgb\":[188.7,188.7,188.7],\"population\":0},\"Muted\":{\"rgb\":[147,147,147],\"population\":80},\"DarkMuted\":{\"rgb\":[76.5,76.5,76.5],\"population\":0},\"LightMuted\":{\"rgb\":[191,191,191],\"population\":87}},\"publishedBylines\":[{\"id\":121308039,\"name\":\"Zsolt Ero\",\"handle\":\"hyperknot\",\"previous_name\":\"Hyperknot\",\"photo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/b4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png\",\"bio\":\"Founder of http://maphub.net\\n\\nLoves building.\\n\\nWebsite: http://hyperknot.com\",\"profile_set_up_at\":\"2023-01-07T14:26:46.775Z\",\"publicationUsers\":[{\"id\":1253731,\"user_id\":121308039,\"publication_id\":1295356,\"role\":\"admin\",\"public\":true,\"is_primary\":false,\"publication\":{\"id\":1295356,\"name\":\" Thoughts while building\",\"subdomain\":\"hyperknot\",\"custom_domain\":\"blog.hyperknot.com\",\"custom_domain_optional\":false,\"hero_text\":\"A blog by Zsolt Ero on programming and building things.\",\"logo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/57e87a16-5ecc-4642-842f-3233254dc380_900x900.png\",\"author_id\":121308039,\"theme_var_background_pop\":\"#67BDFC\",\"created_at\":\"2023-01-07T14:27:27.906Z\",\"rss_website_url\":null,\"email_from_name\":\"Hyperknot\u2019s Substack\",\"copyright\":\"Hyperknot\",\"founding_plan_name\":null,\"community_enabled\":true,\"invite_only\":false,\"payments_state\":\"disabled\",\"language\":null,\"explicit\":false,\"is_personal_mode\":false}}],\"twitter_screen_name\":\"hyperknot\",\"is_guest\":false,\"bestseller_tier\":null}],\"reaction\":null,\"reaction_count\":6,\"comment_count\":2,\"child_comment_count\":2,\"audio_items\":[{\"post_id\":150748395,\"voice_id\":\"en-US-ChristopherMultilingualNeural\",\"audio_url\":\"https://substack-video.s3.amazonaws.com/video_upload/post/150748395/tts/b2f70870-9a3e-4468-960f-ac1cc268624b/en-US-ChristopherMultilingualNeural.mp3\",\"type\":\"tts\",\"status\":\"completed\"}],\"is_geoblocked\":false,\"hasCashtag\":false},{\"id\":150658990,\"editor_v2\":false,\"publication_id\":1295356,\"title\":\"First month of OpenFreeMap\",\"social_title\":null,\"search_engine_title\":null,\"search_engine_description\":null,\"type\":\"newsletter\",\"slug\":\"first-month-of-openfreemap\",\"post_date\":\"2024-10-24T14:38:05.832Z\",\"audience\":\"everyone\",\"podcast_duration\":null,\"video_upload_id\":null,\"podcast_upload_id\":null,\"write_comment_permissions\":\"everyone\",\"should_send_free_preview\":false,\"free_unlock_required\":false,\"default_comment_sort\":null,\"canonical_url\":\"https://blog.hyperknot.com/p/first-month-of-openfreemap\",\"section_id\":null,\"top_exclusions\":[],\"pins\":[],\"is_section_pinned\":false,\"section_slug\":null,\"section_name\":null,\"reactions\":{\"\u2764\":3},\"restacked_post_id\":null,\"restacked_pub_name\":null,\"restacked_pub_logo_url\":null,\"position\":3,\"subtitle\":\"2k GitHub Stars, 300 req/sec, 2 TB per day\",\"cover_image\":\"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c79df1c-1966-49db-b65e-2a90dce5ae2e_466x544.png\",\"cover_image_is_square\":false,\"cover_image_is_explicit\":false,\"podcast_url\":\"\",\"videoUpload\":null,\"podcastFields\":{\"post_id\":150658990,\"podcast_episode_number\":null,\"podcast_season_number\":null,\"podcast_episode_type\":null,\"should_syndicate_to_other_feed\":null,\"syndicate_to_section_id\":null,\"hide_from_feed\":false,\"free_podcast_url\":null,\"free_podcast_duration\":null},\"podcast_preview_upload_id\":null,\"podcastUpload\":null,\"podcastPreviewUpload\":null,\"voiceover_upload_id\":null,\"voiceoverUpload\":null,\"has_voiceover\":false,\"description\":\"2k GitHub Stars, 300 req/sec, 2 TB per day\",\"body_json\":null,\"body_html\":null,\"truncated_body_text\":\"I launched OpenFreeMap on HN exactly a month ago. Well, it's not exactly correct, as I first submitted it to HN 5 days before, when absolutely nothing happened (1). The second time it became the 12th most successful Show HN of 2024 (until today), with 848 points!\",\"wordcount\":1082,\"postTags\":[],\"teaser_post_eligible\":true,\"postCountryBlocks\":[],\"coverImagePalette\":{\"Vibrant\":{\"rgb\":[26,145,199],\"population\":75},\"DarkVibrant\":{\"rgb\":[74,124,12],\"population\":17},\"LightVibrant\":{\"rgb\":[126,231,248],\"population\":223},\"Muted\":{\"rgb\":[162,127,91],\"population\":219},\"DarkMuted\":{\"rgb\":[102,65,44],\"population\":111},\"LightMuted\":{\"rgb\":[218,199,174],\"population\":98}},\"publishedBylines\":[{\"id\":121308039,\"name\":\"Zsolt Ero\",\"handle\":\"hyperknot\",\"previous_name\":\"Hyperknot\",\"photo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/b4493a04-aa03-4863-92e4-6875f8db25fe_512x512.png\",\"bio\":\"Founder of http://maphub.net\\n\\nLoves building.\\n\\nWebsite: http://hyperknot.com\",\"profile_set_up_at\":\"2023-01-07T14:26:46.775Z\",\"publicationUsers\":[{\"id\":1253731,\"user_id\":121308039,\"publication_id\":1295356,\"role\":\"admin\",\"public\":true,\"is_primary\":false,\"publication\":{\"id\":1295356,\"name\":\" Thoughts while building\",\"subdomain\":\"hyperknot\",\"custom_domain\":\"blog.hyperknot.com\",\"custom_domain_optional\":false,\"hero_text\":\"A blog by Zsolt Ero on programming and building things.\",\"logo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/57e87a16-5ecc-4642-842f-3233254dc380_900x900.png\",\"author_id\":121308039,\"theme_var_background_pop\":\"#67BDFC\",\"created_at\":\"2023-01-07T14:27:27.906Z\",\"rss_website_url\":null,\"email_from_name\":\"Hyperknot\u2019s Substack\",\"copyright\":\"Hyperknot\",\"founding_plan_name\":null,\"community_enabled\":true,\"invite_only\":false,\"payments_state\":\"disabled\",\"language\":null,\"explicit\":false,\"is_personal_mode\":false}}],\"twitter_screen_name\":\"hyperknot\",\"is_guest\":false,\"bestseller_tier\":null}],\"reaction\":null,\"reaction_count\":3,\"comment_count\":1,\"child_comment_count\":1,\"audio_items\":[{\"post_id\":150658990,\"voice_id\":\"en-US-ChristopherMultilingualNeural\",\"audio_url\":\"https://substack-video.s3.amazonaws.com/video_upload/post/150658990/tts/6ead9ba7-3477-4096-9aef-23abd7dd30ac/en-US-ChristopherMultilingualNeural.mp3\",\"type\":\"tts\",\"status\":\"completed\"}],\"is_geoblocked\":false,\"hasCashtag\":false}],\"topThreeSubscribers\":[{\"id\":104058,\"name\":\"David Dias\",\"photo_url\":\"https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/7c99387e-7cd6-4cba-acaf-9d1235e80293_249x249.jpeg\",\"bestseller_tier\":null,\"primary_publication\":{\"id\":301677,\"subdomain\":\"thedaviddias\",\"custom_domain_optional\":false,\"name\":\"David's Dev Diary\",\"logo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/6cfb3ce5-bf60-419c-a967-9e2873e332d9_303x303.png\",\"author_id\":104058,\"handles_enabled\":false,\"explicit\":false,\"is_personal_mode\":false},\"is_subscribed\":false},{\"id\":959170,\"name\":\"Tod Robbins\",\"photo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/7e343ba7-7c03-4432-915d-bde1bed4d95b_321x309.png\",\"bestseller_tier\":null,\"primary_publication\":{\"id\":1621548,\"subdomain\":\"todrobbins\",\"custom_domain_optional\":false,\"name\":\"tod robbins\",\"logo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/de507e69-17a8-4a8b-9752-570fb7c845cc_309x309.png\",\"author_id\":959170,\"handles_enabled\":false,\"explicit\":false,\"is_personal_mode\":false},\"is_subscribed\":false},{\"id\":2538862,\"name\":\"Jonathan Lurie\",\"photo_url\":\"https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3c41fa27-d284-415a-8afa-62a1c2c2f75a_3456x4608.jpeg\",\"bestseller_tier\":null,\"primary_publication\":{\"id\":2230095,\"subdomain\":\"naturalistsarchive\",\"custom_domain_optional\":false,\"name\":\"Naturalist's Archive\",\"logo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/32df4a90-c4fa-42c1-b1db-eced10172604_1280x1280.png\",\"author_id\":2538862,\"handles_enabled\":false,\"explicit\":false,\"is_personal_mode\":false},\"is_subscribed\":false}],\"isChatActive\":false,\"isMeetingsActive\":false,\"features\":{},\"showCookieBanner\":false,\"disabledCookies\":[],\"dd_env\":\"prod\",\"dd_ti\":true,\"mainBundleCSS\":[\"https://substackcdn.com/bundle/theme/main.7e9cc60fff803fd86973.css\"]}")</script>
        <script>window._analyticsConfig = JSON.parse("{\"properties\":{\"subdomain\":\"hyperknot\",\"publication_id\":1295356,\"has_plans\":false,\"pub_community_enabled\":true,\"is_personal_publication\":false,\"is_subscribed\":false,\"is_free_subscribed\":false,\"is_author\":false,\"is_contributor\":false,\"is_admin\":false,\"is_founding\":false},\"adwordsAccountId\":\"AW-316245675\",\"adwordsEventSendTo\":\"Tf76CKqcyL4DEKuN5pYB\"}")</script>
        <script type="module" src="https://substackcdn.com/bundle/assets/welcome-e3d0bc0a.js" charset="utf-8" defer=""></script>
        <script nomodule="">
            (function() {
                var message = 'Your browser does not support modern JavaScript modules. Please upgrade your browser for the best experience.';
                var warningDiv = document.createElement('div');
                warningDiv.style.color = 'red';
                warningDiv.style.padding = '10px';
                warningDiv.style.margin = '10px 0';
                warningDiv.style.border = '1px solid red';
                warningDiv.style.backgroundColor = 'lightyellow';
                warningDiv.innerText = message;
                document.body.prepend(warningDiv);
            })();
        </script>

        
            <!-- Datadog Analytics -->
            <script>
              (function(h,o,u,n,d) {
                h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}}
                d=o.createElement(u);d.async=1;d.src=n
                n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n)
              })(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v5/datadog-rum.js','DD_RUM')
              window.DD_RUM.onReady(function() {
                window.DD_RUM.init({
                  clientToken: 'puba71073f072643721169b68f352438710',
                  applicationId: '2e321b35-c76b-4073-8d04-cc9a10461793',
                  site: 'datadoghq.com',
                  service: 'substack-web',
                  env: window._preloads.dd_env,
                  version: '5d02cc0d75e2b47fb4599585f26129a9a1629c11',
                  sessionSampleRate: 1,
                  sessionReplaySampleRate: 100,
                  trackUserInteractions: window._preloads.dd_ti,
                  trackResources: true,
                  trackLongTasks: true,
                  defaultPrivacyLevel: 'mask-user-input',
                  allowedTracingUrls: [/https?:\/\/(.+\/.)?substack(cdn)?\.com/]
                });
              })
            </script>
            <!-- End Datadog Analytics -->

            <!-- Cloudflare Web Analytics -->
            <script defer="" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon="{&quot;token&quot;: &quot;216309cffb464db4b0e02daf0b8e8060&quot;}"></script>
            <!-- End Cloudflare Web Analytics -->
        

        <!-- Fallback tracking pixels -->
        

        

        <noscript>
    <style>
        #nojs-banner {
            position: fixed;
            bottom: 0;
            left: 0;
            padding: 16px 16px 16px 32px;
            width: 100%;
            box-sizing: border-box;
            background: red;
            color: white;
            font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
            font-size: 13px;
            line-height: 13px;
        }
        #nojs-banner a {
            color: inherit;
            text-decoration: underline;
        }
    </style>

    <div id="nojs-banner">
        This site requires JavaScript to run correctly. Please <a href="https://enable-javascript.com/" target="_blank">turn on JavaScript</a> or unblock scripts
    </div>
</noscript>


        

        

        
        
    <script defer="" src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{&quot;rayId&quot;:&quot;8d8ea364ad026671&quot;,&quot;version&quot;:&quot;2024.10.4&quot;,&quot;serverTiming&quot;:{&quot;name&quot;:{&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfSpeedBrain&quot;:true,&quot;cfCacheStatus&quot;:true}},&quot;token&quot;:&quot;68cfe66b5c4749e2ba64d4d9640c04c0&quot;,&quot;b&quot;:1}" crossorigin="anonymous"></script><iframe height="0" width="0" style="display: none; visibility: hidden;"></iframe>


</body></html>