CINXE.COM
Forem
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Forem</title> <meta name="last-updated" content="2025-04-05 20:55:47 UTC"> <meta name="user-signed-in" content="false"> <meta name="head-cached-at" content="1743886547"> <meta name="environment" content="production"> <link rel="stylesheet" href="https://assets.dev.to/assets/minimal-6f5c5ed9c571b36ab9c316526d7032b5a4c789f3a4c35503492eb03376615fca.css" media="all" id="main-minimal-stylesheet" /> <link rel="stylesheet" href="https://assets.dev.to/assets/views-1c703342dce6eac414f19ca7fd07bcf83cbe44088659758144e52e7fa1e92dd3.css" media="all" id="main-views-stylesheet" /> <link rel="stylesheet" href="https://assets.dev.to/assets/crayons-0f2fc85bc159498f8ae6fba58c460e6deba863d02d59dfa994c1954976ddb6cc.css" media="all" id="main-crayons-stylesheet" /> <script src="https://assets.dev.to/assets/base-b8bdff515245fe895f3035d77697afb35d5d7e114bdf68291667479d4b289751.js" defer="defer"></script> <script src="https://assets.dev.to/assets/application-7258612fccf5d56314a6e4ad1898b4f818f474c4bb3485e302428d489a769a17.js" defer="defer"></script> <script src="https://assets.dev.to/assets/baseInitializers-b74902d56433062a87f5f1ce74769baf2a1a698772f46952b0ac72bc95c4abfd.js" defer="defer"></script> <script src="https://assets.dev.to/assets/baseTracking-b6bf73e5ee66633e151e7d5b7c6bbccedfa4c59e3615be97b98c4c0f543ddae7.js" defer="defer"></script> <meta name="search-script" content="https://assets.dev.to/assets/Search-7dcdad3172ab4501a4598fe8b716c7a88146e79fd42256d36fb1b83e27bf77cf.js"> <link rel="canonical" href="https://forem.com/" /> <meta name="description" content="A blogging-forward open source social network where our members connect and learn from one another"> <meta name="keywords" content="software development, engineering, rails, javascript, ruby"> <meta property="og:type" content="website" /> <meta property="og:url" content="https://forem.com/" /> <meta property="og:title" content="Forem" /> <meta property="og:image" content="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xwqjxhl12sg768xrlmlv.png"> <meta property="og:description" content="A blogging-forward open source social network where our members connect and learn from one another" /> <meta property="og:site_name" content="Forem" /> <meta name="twitter:site" content="@"> <meta name="twitter:title" content="Forem"> <meta name="twitter:description" content="A blogging-forward open source social network where our members connect and learn from one another"> <meta name="twitter:image:src" content="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xwqjxhl12sg768xrlmlv.png"> <meta name="twitter:card" content="summary_large_image"> <link rel="alternate" type="application/rss+xml" title="Forem RSS Feed" href="https://forem.com/feed" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <link rel="icon" type="image/x-icon" href="https://media2.dev.to/dynamic/image/width=32,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalhydbusoe2o1pzxfwj.png" /> <link rel="apple-touch-icon" href="https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalhydbusoe2o1pzxfwj.png"> <link rel="apple-touch-icon" sizes="152x152" href="https://media2.dev.to/dynamic/image/width=152,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalhydbusoe2o1pzxfwj.png"> <link rel="apple-touch-icon" sizes="180x180" href="https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalhydbusoe2o1pzxfwj.png"> <link rel="apple-touch-icon" sizes="167x167" href="https://media2.dev.to/dynamic/image/width=167,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalhydbusoe2o1pzxfwj.png"> <link href="https://media2.dev.to/dynamic/image/width=192,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalhydbusoe2o1pzxfwj.png" rel="icon" sizes="192x192" /> <link href="https://media2.dev.to/dynamic/image/width=128,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalhydbusoe2o1pzxfwj.png" rel="icon" sizes="128x128" /> <meta name="apple-mobile-web-app-title" content="forem.com"> <meta name="application-name" content="forem.com"> <meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"> <meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)"> <link rel="search" href="https://forem.com/open-search.xml" type="application/opensearchdescription+xml" title="Forem" /> <meta property="forem:name" content="Forem" /> <meta property="forem:logo" content="https://media2.dev.to/dynamic/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalhydbusoe2o1pzxfwj.png" /> <meta property="forem:domain" content="forem.com" /> </head> <body class="sans-serif-article-body default-header" data-user-status="logged-out" data-community-name="Forem" data-subscription-icon="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png" data-locale="en" data-honeybadger-key="hbp_nqu4Y66HuEKlD6YRGssZuRQnPOjDm50J8Zkr" data-deployed-at="2025-04-04T21:14:30Z" data-latest-commit-id="80dddae49850f88ae36ea53ef7b4cd07bd8b133e" data-ga-tracking="UA-71991109-1" data-cookie-banner-user-context="logged_out_only" data-cookie-banner-platform-context="off" data-algolia-id="PRSOBFP46H" data-algolia-search-key="9aa7d31610cba78851c9b1f63776a9dd" data-algolia-display="true" data-dynamic-url-component="bmar11" data-ga4-tracking-id="G-TYEM8Y3JN3"> <script> if (navigator.userAgent === 'ForemWebView/1' || window.frameElement) { document.body.classList.add("hidden-shell"); } </script> <link rel="stylesheet" href="https://assets.dev.to/assets/minimal-6f5c5ed9c571b36ab9c316526d7032b5a4c789f3a4c35503492eb03376615fca.css" media="all" id="secondary-minimal-stylesheet" /> <link rel="stylesheet" href="https://assets.dev.to/assets/views-1c703342dce6eac414f19ca7fd07bcf83cbe44088659758144e52e7fa1e92dd3.css" media="all" id="secondary-views-stylesheet" /> <link rel="stylesheet" href="https://assets.dev.to/assets/crayons-0f2fc85bc159498f8ae6fba58c460e6deba863d02d59dfa994c1954976ddb6cc.css" media="all" id="secondary-crayons-stylesheet" /> <div id="body-styles"> <style> :root { --accent-brand-lighter-rgb: 80, 99, 301; --accent-brand-rgb: 59, 73, 223; --accent-brand-darker-rgb: 47, 58, 178; } </style> </div> <div id="audiocontent" data-podcast=""> </div> <div class="navigation-progress" id="navigation-progress"></div> <header id="topbar" class="crayons-header topbar print-hidden"> <span id="route-change-target" tabindex="-1"></span> <a href="#main-content" class="skip-content-link">Skip to content</a> <div class="crayons-header__container"> <span class="inline-block m:hidden "> <button class="c-btn c-btn--icon-alone js-hamburger-trigger mx-2"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a3f265lqkkfsfss2xq92iiupdpaswsi3" class="crayons-icon"><title id="a3f265lqkkfsfss2xq92iiupdpaswsi3">Navigation menu</title> <path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"></path> </svg> </button> </span> <a href="/" class="site-logo" aria-label="Forem Home"> <img class="site-logo__img" src="https://dev-to-uploads.s3.amazonaws.com/uploads/logos/resized_logo_kyjiPyA0XdMwJmQGGBvv.png" style="aspect-ratio: 170 / 72" alt="Forem"> </a> <div class="crayons-header--search js-search-form" id="header-search"> <form accept-charset="UTF-8" method="get" action="/search" role="search"> <div class="crayons-fields crayons-fields--horizontal"> <div class="crayons-field flex-1 relative"> <input id="search-input" class="crayons-header--search-input crayons-textfield js-search-input" type="text" id="nav-search" name="q" placeholder="Search..." autocomplete="off" /> <button type="submit" aria-label="Search" class="c-btn c-btn--icon-alone absolute inset-px right-auto mt-0 py-0"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="arpjidn0kahsmfj77kpywx91twh5v4cd" aria-hidden="true" class="crayons-icon"><title id="arpjidn0kahsmfj77kpywx91twh5v4cd">Search</title> <path d="M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0111 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 01-1.969 5.617zm-2.006-.742A6.977 6.977 0 0018 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 004.875-1.975l.15-.15z"></path> </svg> </button> <a class="crayons-header--search-brand-indicator" href="https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral" target="_blank" rel="noopener noreferrer"> Powered by <svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" width="24" height="24" viewBox="0 0 500 500.34" role="img" aria-labelledby="aqeebij4vjvnttovblsi02jd10smmvq8" aria-hidden="true" class="crayons-icon"><title id="aqeebij4vjvnttovblsi02jd10smmvq8">Search</title> <defs></defs><path class="cls-1" d="M250,0C113.38,0,2,110.16,.03,246.32c-2,138.29,110.19,252.87,248.49,253.67,42.71,.25,83.85-10.2,120.38-30.05,3.56-1.93,4.11-6.83,1.08-9.52l-23.39-20.74c-4.75-4.22-11.52-5.41-17.37-2.92-25.5,10.85-53.21,16.39-81.76,16.04-111.75-1.37-202.04-94.35-200.26-206.1,1.76-110.33,92.06-199.55,202.8-199.55h202.83V407.68l-115.08-102.25c-3.72-3.31-9.43-2.66-12.43,1.31-18.47,24.46-48.56,39.67-81.98,37.36-46.36-3.2-83.92-40.52-87.4-86.86-4.15-55.28,39.65-101.58,94.07-101.58,49.21,0,89.74,37.88,93.97,86.01,.38,4.28,2.31,8.28,5.53,11.13l29.97,26.57c3.4,3.01,8.8,1.17,9.63-3.3,2.16-11.55,2.92-23.6,2.07-35.95-4.83-70.39-61.84-127.01-132.26-131.35-80.73-4.98-148.23,58.18-150.37,137.35-2.09,77.15,61.12,143.66,138.28,145.36,32.21,.71,62.07-9.42,86.2-26.97l150.36,133.29c6.45,5.71,16.62,1.14,16.62-7.48V9.49C500,4.25,495.75,0,490.51,0H250Z"></path> </svg> Algolia </a> </div> </div> </form> </div> <div class="flex items-center h-100 ml-auto"> <div class="flex" id="authentication-top-nav-actions"> <span class="hidden m:block"> <a href="https://forem.com/enter" class="c-link c-link--block mr-2 whitespace-nowrap ml-auto" data-no-instant> Log in </a> </span> <a href="https://forem.com/enter?state=new-user" data-tracking-id="ca_top_nav" data-tracking-source="top_navbar" class="c-cta c-cta--branded whitespace-nowrap mr-2" data-no-instant> Create account </a> </div> </div> </div> </header> <div class="hamburger"> <div class="hamburger__content"> <header class="hamburger__content__header"> <h2 class="fs-l fw-bold flex-1 break-word lh-tight">Forem</h2> <button class="c-btn c-btn--icon-alone js-hamburger-trigger shrink-0" aria-label="Close"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ap97bmhz6kljcps0jumnxmik7h5sxrf9" aria-hidden="true" class="crayons-icon c-btn__icon"><title id="ap97bmhz6kljcps0jumnxmik7h5sxrf9">Close</title><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636l4.95 4.95z"></path></svg> </button> </header> <div class="p-2 js-navigation-links-container" id="authentication-hamburger-actions"> </div> </div> <div class="hamburger__overlay js-hamburger-trigger"></div> </div> <div id="active-broadcast" class="broadcast-wrapper"></div> <div id="page-content" class="wrapper stories stories-index" data-current-page="stories-index"> <div id="page-content-inner" data-internal-nav="false"> <div id="page-route-change" class="screen-reader-only" aria-live="polite" aria-atomic="true"></div> <script src="https://assets.dev.to/assets/homePage-11cb3cd42b25bc0cebb3d5fe6dee09d50f349acd6838a659d86686c1245669e2.js" defer="defer"></script> <div class="crayons-layout crayons-layout--3-cols crayons-layout--3-cols--drop-right-left" id="index-container" data-params="{"sort_by":"hotness_score","sort_direction":"desc"}" data-which="" data-tag="" data-feed="base-feed" data-feed-use-stories-endpoint="false" data-feed-context-type="home" data-feed-category-impression="impression" data-feed-category-click="click" data-feed-category-reaction="reaction" data-feed-category-comment="comment" data-feed-category-extended_pageview="extended_pageview" data-articles-since=""> <div id="sidebar-wrapper-left" class="sidebar-wrapper sidebar-wrapper-left crayons-layout__sidebar-left crayons-layout__content"> <aside class="side-bar" aria-label="Primary sidebar"> <div class="crayons-card crayons-card--secondary p-4"> <h2 class="crayons-subtitle-2 lh-tight mb-4"> Forem is a community of 2,992,382 amazing members </h2> <p class="color-base-70 mb-4"> We're a blogging-forward open source social network where we learn from one another </p> <div> <a href="/enter?state=new-user" data-tracking-id="ca_left_sidebar_home_page" data-tracking-source="left_sidebar" class="c-cta c-cta--branded justify-center w-100 mb-1" aria-label="Create new account">Create account</a> <a href="/enter" class="c-link c-link--block justify-center" aria-label="Log in">Log in</a> </div> </div> <nav class="mb-4 mt-4" data-testid="main-nav" aria-label="Forem"> <ul class="default-navigation-links sidebar-navigation-links spec-sidebar-navigation-links"> <li> <a href="/" class="sidebar-navigation-link c-link c-link--block c-link--icon-left"> <span class="c-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44 44" width="24" height="24"> <g class="nc-icon-wrapper"> <path fill="#A0041E" d="M13.344 18.702h-2a.5.5 0 01-.5-.5v-7a.5.5 0 01.5-.5h2a.5.5 0 01.5.5v7a.5.5 0 01-.5.5z"/> <path fill="#FFE8B6" d="M9 20L22 7l13 13v17H9z"/> <path fill="#FFCC4D" d="M22 20h1v16h-1z"/> <path fill="#66757F" d="M35 21a.997.997 0 01-.707-.293L22 8.414 9.707 20.707a1 1 0 11-1.414-1.414l13-13a.999.999 0 011.414 0l13 13A.999.999 0 0135 21z"/> <path fill="#66757F" d="M22 21a.999.999 0 01-.707-1.707l6.5-6.5a1 1 0 111.414 1.414l-6.5 6.5A.997.997 0 0122 21z"/> <path fill="#C1694F" d="M14 30h4v6h-4z"/> <path fill="#55ACEE" d="M14 21h4v4h-4zm12.5 0h4v4h-4zm0 9h4v4h-4z"/> <path fill="#5C913B" d="M37.5 37.5A1.5 1.5 0 0136 39H8a1.5 1.5 0 010-3h28a1.5 1.5 0 011.5 1.5z"/> </g> </svg> </span> Home </a> </li> <li> <a href="/tags" class="sidebar-navigation-link c-link c-link--block c-link--icon-left"> <span class="c-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44 44" width="24" height="24"> <g class="nc-icon-wrapper"> <path fill="#FFD983" d="M36.017 24.181L21.345 9.746C20.687 9.087 19.823 9 18.96 9H8.883C7.029 9 6 10.029 6 11.883v10.082c0 .861.089 1.723.746 2.38L21.3 39.017a3.287 3.287 0 004.688 0l10.059-10.088c1.31-1.312 1.28-3.438-.03-4.748zm-23.596-8.76a1.497 1.497 0 11-2.118-2.117 1.497 1.497 0 012.118 2.117z"/> <path fill="#D99E82" d="M13.952 11.772a3.66 3.66 0 00-5.179 0 3.663 3.663 0 105.18 5.18 3.664 3.664 0 00-.001-5.18zm-1.53 3.65a1.499 1.499 0 11-2.119-2.12 1.499 1.499 0 012.119 2.12z"/> <path fill="#C1694F" d="M12.507 14.501a1 1 0 11-1.415-1.414l8.485-8.485a1 1 0 111.415 1.414l-8.485 8.485z"/> </g> </svg> </span> Tags </a> </li> <li> <a href="/about" class="sidebar-navigation-link c-link c-link--block c-link--icon-left"> <span class="c-link__icon"> <svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 47.5 47.5" style="enable-background:new 0 0 47.5 47.5;" id="svg2" xml:space="preserve"><defs id="defs6"><clipPath id="clipPath18"><path d="M 0,38 38,38 38,0 0,0 0,38 z" id="path20"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,47.5)" id="g12"><g id="g14"><g clip-path="url(#clipPath18)" id="g16"><g transform="translate(37,19)" id="g22"><path d="m 0,0 c 0,-9.941 -8.059,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.059,18 0,9.941 0,0" id="path24" style="fill:#ffcc4d;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g><g transform="translate(2.2402,25.9824)" id="g26"><path d="m 0,0 c 0.24,-0.239 1.437,-0.958 1.677,-1.675 0.24,-0.717 0.72,-4.784 2.158,-5.981 1.484,-1.233 7.077,-0.774 8.149,-0.24 2.397,1.195 2.691,4.531 3.115,6.221 0.239,0.957 1.677,0.957 1.677,0.957 0,0 1.439,0 1.678,-0.956 0.424,-1.691 0.72,-5.027 3.115,-6.221 1.073,-0.535 6.666,-0.994 8.152,0.239 1.435,1.197 1.915,5.264 2.155,5.982 0.238,0.717 1.437,1.435 1.677,1.674 0.241,0.239 0.241,1.196 0,1.436 C 33.074,1.914 27.419,2.34 21.33,1.675 20.115,1.542 19.653,1.196 16.776,1.196 13.901,1.196 13.438,1.542 12.223,1.674 6.136,2.34 0.479,1.914 0,1.436 -0.239,1.196 -0.239,0.239 0,0" id="path28" style="fill:#292f33;fill-opacity:1;fill-rule:evenodd;stroke:none"/></g><g transform="translate(28.335,13.3711)" id="g30"><path d="m 0,0 c -0.178,0.161 -0.444,0.171 -0.635,0.029 -0.039,-0.029 -3.922,-2.9 -8.7,-2.9 -4.766,0 -8.662,2.871 -8.7,2.9 -0.191,0.142 -0.457,0.13 -0.635,-0.029 -0.177,-0.16 -0.217,-0.424 -0.094,-0.628 0.129,-0.215 3.217,-5.243 9.429,-5.243 6.212,0 9.301,5.028 9.429,5.243 C 0.217,-0.423 0.178,-0.16 0,0" id="path32" style="fill:#664500;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g></g></g></g></svg> </span> About </a> </li> <li> <a href="/contact" class="sidebar-navigation-link c-link c-link--block c-link--icon-left"> <span class="c-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44 44" width="24" height="24"> <g class="nc-icon-wrapper"> <path fill="#FFAC33" d="M38.724 33.656c-1.239-.01-1.241 1.205-1.241 1.205H22.5c-5.246 0-9.5-4.254-9.5-9.5s4.254-9.5 9.5-9.5 9.5 4.254 9.5 9.5c0 3.062-1.6 5.897-3.852 7.633h5.434C35.022 30.849 36 28.139 36 25.361c0-7.456-6.045-13.5-13.5-13.5-7.456 0-13.5 6.044-13.5 13.5 0 7.455 6.044 13.5 13.5 13.5h14.982s-.003 1.127 1.241 1.139c1.238.012 1.228-1.245 1.228-1.245l.014-3.821s.001-1.267-1.241-1.278zM9 18.26a16.047 16.047 0 014-4.739V13c0-5 5-7 5-8s-1-1-1-1H5C4 4 4 5 4 5c0 1 5 3.333 5 7.69v5.57z"/> <path fill="#BE1931" d="M17.091 33.166a9.487 9.487 0 01-4.045-8.72l-3.977-.461c-.046.452-.069.911-.069 1.376 0 4.573 2.28 8.608 5.76 11.051l2.331-3.246z"/> <path fill="#BE1931" d="M10 29.924s-5.188-.812-5 1 5-1 5-1zm0 .312s-4.125 2.688-2.938 3.75S10 30.236 10 30.236z"/> </g> </svg> </span> Contact </a> </li> </ul> </nav> <nav class="mb-4" data-testid="other-nav" aria-labelledby="other-nav-heading-sidebar"> <h2 id="other-nav-heading-sidebar" class="crayons-subtitle-3 py-2 pl-3"> Other </h2> <ul class="other-navigation-links sidebar-navigation-links spec-sidebar-navigation-links"> <li> <a href="/code-of-conduct" class="sidebar-navigation-link c-link c-link--block c-link--icon-left"> <span class="c-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44 44" width="24" height="24"> <g class="nc-icon-wrapper"> <path fill="#FFDB5E" d="M38.956 21.916c0-.503-.12-.975-.321-1.404-1.341-4.326-7.619-4.01-16.549-4.221-1.493-.035-.639-1.798-.115-5.668.341-2.517-1.282-6.382-4.01-6.382-4.498 0-.171 3.548-4.148 12.322-2.125 4.688-6.875 2.062-6.875 6.771v10.719c0 1.833.18 3.595 2.758 3.885 2.499.281 1.937 2.062 5.542 2.062h18.044a3.337 3.337 0 003.333-3.334c0-.762-.267-1.456-.698-2.018 1.02-.571 1.72-1.649 1.72-2.899 0-.76-.266-1.454-.696-2.015 1.023-.57 1.725-1.649 1.725-2.901 0-.909-.368-1.733-.961-2.336a3.311 3.311 0 001.251-2.581z"/> <path fill="#EE9547" d="M27.02 25.249h8.604c1.17 0 2.268-.626 2.866-1.633a.876.876 0 00-1.506-.892 1.588 1.588 0 01-1.361.775h-8.81c-.873 0-1.583-.71-1.583-1.583s.71-1.583 1.583-1.583H32.7a.875.875 0 000-1.75h-5.888a3.337 3.337 0 00-3.333 3.333c0 1.025.475 1.932 1.205 2.544a3.32 3.32 0 00-.998 2.373c0 1.028.478 1.938 1.212 2.549a3.318 3.318 0 00.419 5.08 3.305 3.305 0 00-.852 2.204 3.337 3.337 0 003.333 3.333h5.484a3.35 3.35 0 002.867-1.632.875.875 0 00-1.504-.894 1.594 1.594 0 01-1.363.776h-5.484c-.873 0-1.583-.71-1.583-1.583s.71-1.583 1.583-1.583h6.506a3.35 3.35 0 002.867-1.633.875.875 0 10-1.504-.894 1.572 1.572 0 01-1.363.777h-7.063a1.585 1.585 0 010-3.167h8.091a3.35 3.35 0 002.867-1.632.875.875 0 00-1.504-.894 1.573 1.573 0 01-1.363.776H27.02a1.585 1.585 0 010-3.167z"/> </g> </svg> </span> Code of Conduct </a> </li> <li> <a href="/privacy" class="sidebar-navigation-link c-link c-link--block c-link--icon-left"> <span class="c-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44 44" width="24" height="24"> <g transform="translate(4 4)"> <circle fill="#FFCC4D" cx="18" cy="18" r="18"/> <path fill="#664500" d="M27.335 23.629a.501.501 0 00-.635-.029c-.039.029-3.922 2.9-8.7 2.9-4.766 0-8.662-2.871-8.7-2.9a.5.5 0 10-.729.657C8.7 24.472 11.788 29.5 18 29.5s9.301-5.028 9.429-5.243a.499.499 0 00-.094-.628z"/> <path fill="#65471B" d="M18 26.591c-.148 0-.291-.011-.438-.016v4.516h.875v-4.517c-.145.005-.289.017-.437.017z"/> <path fill="#FFF" d="M22 26c.016-.004-1.45.378-2.446.486-.366.042-.737.076-1.117.089v4.517H20c1.1 0 2-.9 2-2V26zm-8 0c-.016-.004 1.45.378 2.446.486.366.042.737.076 1.117.089v4.517H16c-1.1 0-2-.9-2-2V26z"/> <path fill="#65471B" d="M27.335 23.629a.501.501 0 00-.635-.029c-.03.022-2.259 1.668-5.411 2.47-.443.113-1.864.43-3.286.431-1.424 0-2.849-.318-3.292-.431-3.152-.802-5.381-2.448-5.411-2.47a.501.501 0 00-.729.657c.097.162 1.885 3.067 5.429 4.481v-1.829c-.016-.004 1.45.378 2.446.486.366.042.737.076 1.117.089.146.005.289.016.437.016.148 0 .291-.011.438-.016.38-.013.751-.046 1.117-.089.996-.108 2.462-.49 2.446-.486v1.829c3.544-1.414 5.332-4.319 5.429-4.481a.5.5 0 00-.095-.628zm-.711-9.605c0 1.714-.938 3.104-2.096 3.104-1.157 0-2.096-1.39-2.096-3.104s.938-3.104 2.096-3.104c1.158 0 2.096 1.39 2.096 3.104zm-17.167 0c0 1.714.938 3.104 2.096 3.104 1.157 0 2.096-1.39 2.096-3.104s-.938-3.104-2.096-3.104c-1.158 0-2.096 1.39-2.096 3.104z"/> <path fill="#292F33" d="M34.808 9.627c-.171-.166-1.267.274-2.376-.291-2.288-1.166-8.07-2.291-11.834.376-.403.285-2.087.333-2.558.313-.471.021-2.155-.027-2.558-.313-3.763-2.667-9.545-1.542-11.833-.376-1.109.565-2.205.125-2.376.291-.247.239-.247 1.196.001 1.436.246.239 1.477.515 1.722 1.232.247.718.249 4.958 2.213 6.424 1.839 1.372 6.129 1.785 8.848.238 2.372-1.349 2.289-4.189 2.724-5.881.155-.603.592-.907 1.26-.907s1.105.304 1.26.907c.435 1.691.351 4.532 2.724 5.881 2.719 1.546 7.009 1.133 8.847-.238 1.965-1.465 1.967-5.706 2.213-6.424.245-.717 1.476-.994 1.722-1.232.248-.24.249-1.197.001-1.436zm-20.194 3.65c-.077 1.105-.274 3.227-1.597 3.98-.811.462-1.868.743-2.974.743h-.001c-1.225 0-2.923-.347-3.587-.842-.83-.619-1.146-3.167-1.265-4.12-.076-.607-.28-2.09.388-2.318 1.06-.361 2.539-.643 4.052-.643.693 0 3.021.043 4.155.741 1.005.617.872 1.851.829 2.459zm16.278-.253c-.119.954-.435 3.515-1.265 4.134-.664.495-2.362.842-3.587.842h-.001c-1.107 0-2.163-.281-2.975-.743-1.323-.752-1.52-2.861-1.597-3.966-.042-.608-.176-1.851.829-2.468 1.135-.698 3.462-.746 4.155-.746 1.513 0 2.991.277 4.052.638.668.228.465 1.702.389 2.309z"/> </g> </svg> </span> Privacy Policy </a> </li> <li> <a href="/terms" class="sidebar-navigation-link c-link c-link--block c-link--icon-left"> <span class="c-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44 44" width="24" height="24"> <g transform="translate(4 4)"> <ellipse fill="#F5F8FA" cx="8.828" cy="18" rx="7.953" ry="13.281"/> <path fill="#E1E8ED" d="M8.828 32.031C3.948 32.031.125 25.868.125 18S3.948 3.969 8.828 3.969 17.531 10.132 17.531 18s-3.823 14.031-8.703 14.031zm0-26.562C4.856 5.469 1.625 11.09 1.625 18s3.231 12.531 7.203 12.531S16.031 24.91 16.031 18 12.8 5.469 8.828 5.469z"/> <circle fill="#8899A6" cx="6.594" cy="18" r="4.96"/> <circle fill="#292F33" cx="6.594" cy="18" r="3.565"/> <circle fill="#F5F8FA" cx="7.911" cy="15.443" r="1.426"/> <ellipse fill="#F5F8FA" cx="27.234" cy="18" rx="7.953" ry="13.281"/> <path fill="#E1E8ED" d="M27.234 32.031c-4.88 0-8.703-6.163-8.703-14.031s3.823-14.031 8.703-14.031S35.938 10.132 35.938 18s-3.824 14.031-8.704 14.031zm0-26.562c-3.972 0-7.203 5.622-7.203 12.531 0 6.91 3.231 12.531 7.203 12.531S34.438 24.91 34.438 18 31.206 5.469 27.234 5.469z"/> <circle fill="#8899A6" cx="25" cy="18" r="4.96"/> <circle fill="#292F33" cx="25" cy="18" r="3.565"/> <circle fill="#F5F8FA" cx="26.317" cy="15.443" r="1.426"/> </g> </svg> </span> Terms of use </a> </li> </ul> </nav> <div class="mb-4"> </div> <nav class="mb-6" aria-label="Secondary sidebar nav"> <h3 class="crayons-subtitle-3 p-2">Popular Tags</h3> <div id="sidebar-nav-default-tags" class="overflow-y-auto" style="max-height: 42vh"> <div class="sidebar-nav-element" id="default-sidebar-element-webdev"> <a class="c-link c-link--block" href="/t/webdev"> #webdev </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-programming"> <a class="c-link c-link--block" href="/t/programming"> #programming </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-javascript"> <a class="c-link c-link--block" href="/t/javascript"> #javascript </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-beginners"> <a class="c-link c-link--block" href="/t/beginners"> #beginners </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-ai"> <a class="c-link c-link--block" href="/t/ai"> #ai </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-tutorial"> <a class="c-link c-link--block" href="/t/tutorial"> #tutorial </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-react"> <a class="c-link c-link--block" href="/t/react"> #react </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-python"> <a class="c-link c-link--block" href="/t/python"> #python </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-devops"> <a class="c-link c-link--block" href="/t/devops"> #devops </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-productivity"> <a class="c-link c-link--block" href="/t/productivity"> #productivity </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-discuss"> <a class="c-link c-link--block" href="/t/discuss"> #discuss </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-opensource"> <a class="c-link c-link--block" href="/t/opensource"> #opensource </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-career"> <a class="c-link c-link--block" href="/t/career"> #career </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-aws"> <a class="c-link c-link--block" href="/t/aws"> #aws </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-news"> <a class="c-link c-link--block" href="/t/news"> #news </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-machinelearning"> <a class="c-link c-link--block" href="/t/machinelearning"> #machinelearning </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-learning"> <a class="c-link c-link--block" href="/t/learning"> #learning </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-node"> <a class="c-link c-link--block" href="/t/node"> #node </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-java"> <a class="c-link c-link--block" href="/t/java"> #java </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-cloud"> <a class="c-link c-link--block" href="/t/cloud"> #cloud </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-api"> <a class="c-link c-link--block" href="/t/api"> #api </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-typescript"> <a class="c-link c-link--block" href="/t/typescript"> #typescript </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-datascience"> <a class="c-link c-link--block" href="/t/datascience"> #datascience </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-css"> <a class="c-link c-link--block" href="/t/css"> #css </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-testing"> <a class="c-link c-link--block" href="/t/testing"> #testing </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-php"> <a class="c-link c-link--block" href="/t/php"> #php </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-security"> <a class="c-link c-link--block" href="/t/security"> #security </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-go"> <a class="c-link c-link--block" href="/t/go"> #go </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-frontend"> <a class="c-link c-link--block" href="/t/frontend"> #frontend </a> </div> <div class="sidebar-nav-element" id="default-sidebar-element-database"> <a class="c-link c-link--block" href="/t/database"> #database </a> </div> </div> </nav> <div class="js-billboard-container" data-async-url="/bmar11/sidebar_left"></div> <div class="js-billboard-container pt-4" data-async-url="/bmar11/sidebar_left_2"></div> <footer class="mt-6 fs-s sidebar-footer"> <p> <a class="c-link c-link--branded fw-medium" aria-label="Forem Home" href="/">Forem</a> A blogging-forward open source social network where our members connect and learn from one another </p> <p class="mt-4">Built on <a class="c-link c-link--branded" target="_blank" rel="noopener" href="https://www.forem.com">Forem</a> — the <a target="_blank" rel="noopener" class="c-link c-link--branded" href="https://dev.to/t/opensource">open source</a> software that powers <a target="_blank" rel="noopener" class="c-link c-link--branded" href="https://dev.to">DEV</a> and other inclusive communities.</p> <p class="mt-4">Made with love and <a target="_blank" rel="noopener" class="c-link c-link--branded" href="https://dev.to/t/rails">Ruby on Rails</a>. Forem <span title="copyright">©</span> 2016 - 2025.</p> </footer> </aside> </div> <script src="https://assets.dev.to/assets/billboard-818c196f17931002334ea0a9f5a2abea9e2afb2d59259a9b9102ffb07206df72.js" defer="defer"></script> <main class="articles-list crayons-layout__content" id="main-content" data-follow-button-container="true"> <header class="p-2 px-3 m:p-0 m:px-0 m:mb-2 fs-l"> <h1 class="screen-reader-only">Posts</h1> <nav class="-mx-3 m:mx-0 s:flex items-center justify-between" aria-label="View posts by"> <ul class="crayons-navigation crayons-navigation--horizontal"> <li> <a data-text="Relevant" href="/" class="crayons-navigation__item crayons-navigation__item--current" aria-current="page">Relevant</a> </li> <li> <a data-text="Latest" href="/latest" class="crayons-navigation__item "> Latest </a> </li> <li> <a data-text="Top" href="/top/week" class="crayons-navigation__item " > Top </a> </li> </ul> </nav> </header> <div class="crayons-story crayons-story--featured" data-feed-content-id="2382154" data-content-user-id="264"> <a href="https://dev.to/devteam/what-was-your-win-this-week-1in" aria-labelledby="article-link-2382154" class="crayons-story__hidden-navigation-link">What was your win this week?</a> <div id="featured-story-marker" data-featured-article="articles-2382154"></div> <div class="crayons-article__cover crayons-article__cover__image__feed" style="aspect-ratio: auto 1000 / 420;"> <a href="https://dev.to/devteam/what-was-your-win-this-week-1in" title="What was your win this week?" aria-label="article" class="crayons-article__cover__image__feed crayons-story__cover__image"> <img src="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp1u6oe2yblkig6bfrtlv.jpg" width="1000" height="420" style="background-color:#dddddd;" class="crayons-article__cover__image__feed" alt="Cover image for What was your win this week?"> </a> </div> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a class="crayons-logo crayons-logo--l" href="/devteam"> <img alt="The DEV Team logo" src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.jpg" class="crayons-logo__image" loading="lazy" /> </a> <a href="/jess" class="crayons-avatar crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F264%2F40d89fb9-4de0-414d-8a06-f52ddda0bc75.jpg" alt="jess profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/jess" class="crayons-story__secondary fw-medium m:hidden"> Jess Lee </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2382154" aria-controls="story-author-preview-content-2382154" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Jess Lee profile details"> Jess Lee <a style="display: inline;" href="/++"><img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png" /></a> </button> <div id="story-author-preview-content-2382154" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/jess" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F264%2F40d89fb9-4de0-414d-8a06-f52ddda0bc75.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Jess Lee</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":264,"className":"User","name":"Jess Lee"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="264"></div> </div> </div> </div> <span> <span class="crayons-story__tertiary fw-normal"> for </span><a href="/devteam" class="crayons-story__secondary fw-medium">The DEV Team</a> </span> </div> <a href="https://dev.to/devteam/what-was-your-win-this-week-1in" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-04T20:22:57Z">Apr 4</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743798177"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/devteam/what-was-your-win-this-week-1in" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp1u6oe2yblkig6bfrtlv.jpg" id="article-link-2382154"> What was your win this week? </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--filled " style=" --tag-bg: rgba(113, 234, 139, 0.10); --tag-prefix: #71EA8B; --tag-bg-hover: rgba(113, 234, 139, 0.10); --tag-prefix-hover: #71EA8B; " href="/t/discuss"><span class="crayons-tag__prefix">#</span>discuss</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(162, 255, 241, 0.10); --tag-prefix: #A2FFF1; --tag-bg-hover: rgba(162, 255, 241, 0.10); --tag-prefix-hover: #A2FFF1; " href="/t/weeklyretro"><span class="crayons-tag__prefix">#</span>weeklyretro</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/devteam/what-was-your-win-this-week-1in" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2382154" aria-label="Add a comment to post - What was your win this week?"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">15<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/devteam/what-was-your-win-this-week-1in#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - What was your win this week?"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ap7orxa7ekajrcjk9r0rt8octx4y9n0j" class="crayons-icon"><title id="ap7orxa7ekajrcjk9r0rt8octx4y9n0j">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> 14<span class="hidden s:inline"> comments</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2382154" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2382154" data-article-author-id="264" aria-label="Save post What was your win this week? to reading list" title="Save post What was your win this week? to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div id="article-index-podcast-div"></div> <div class="substories" id="substories"> <div class="crayons-story " data-feed-content-id="2369020" data-content-user-id="825443"> <a href="https://dev.to/fmerian/whos-hiring-april-2025-1npa" aria-labelledby="article-link-2369020" class="crayons-story__hidden-navigation-link">Who's hiring? — April 2025</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/fmerian" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F825443%2F25eb86cc-d436-4b4f-9c75-a90d96f82a91.jpeg" alt="fmerian profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/fmerian" class="crayons-story__secondary fw-medium m:hidden"> flo merian </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2369020" aria-controls="story-author-preview-content-2369020" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="flo merian profile details"> flo merian <a style="display: inline;" href="/++"><img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png" /></a> </button> <div id="story-author-preview-content-2369020" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/fmerian" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F825443%2F25eb86cc-d436-4b4f-9c75-a90d96f82a91.jpeg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">flo merian</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":825443,"className":"User","name":"flo merian"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="825443"></div> </div> </div> </div> </div> <a href="https://dev.to/fmerian/whos-hiring-april-2025-1npa" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T13:37:00Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743860220"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/fmerian/whos-hiring-april-2025-1npa" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzq5572msghobuq17m426.jpeg" id="article-link-2369020"> Who's hiring? — April 2025 </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(42, 37, 102, 0.10); --tag-prefix: #2A2566; --tag-bg-hover: rgba(42, 37, 102, 0.10); --tag-prefix-hover: #2A2566; " href="/t/career"><span class="crayons-tag__prefix">#</span>career</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(178, 83, 83, 0.10); --tag-prefix: #b25353; --tag-bg-hover: rgba(178, 83, 83, 0.10); --tag-prefix-hover: #b25353; " href="/t/devrel"><span class="crayons-tag__prefix">#</span>devrel</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(139, 235, 255, 0.10); --tag-prefix: #8bebff; --tag-bg-hover: rgba(139, 235, 255, 0.10); --tag-prefix-hover: #8bebff; " href="/t/writing"><span class="crayons-tag__prefix">#</span>writing</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(38, 190, 0, 0.10); --tag-prefix: #26BE00; --tag-bg-hover: rgba(38, 190, 0, 0.10); --tag-prefix-hover: #26BE00; " href="/t/opensource"><span class="crayons-tag__prefix">#</span>opensource</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/fmerian/whos-hiring-april-2025-1npa" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2369020" aria-label="Add a comment to post - Who's hiring? — April 2025"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">1<span class="hidden s:inline"> reaction</span></span> </div> </a> <a href="https://dev.to/fmerian/whos-hiring-april-2025-1npa#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Who's hiring? — April 2025"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="an7zfn6xsfmzyn57zqkdp1m12sj2gpzy" class="crayons-icon"><title id="an7zfn6xsfmzyn57zqkdp1m12sj2gpzy">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 2 min read </small> <button type="button" id="article-save-button-2369020" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2369020" data-article-author-id="825443" aria-label="Save post Who's hiring? — April 2025 to reading list" title="Save post Who's hiring? — April 2025 to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2378883" data-content-user-id="114555"> <a href="https://dev.to/davorg/finding-cool-stuff-with-chatgpt-47gp" aria-labelledby="article-link-2378883" class="crayons-story__hidden-navigation-link">Finding cool stuff with ChatGPT</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/davorg" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F114555%2F49e09363-5092-4ad0-a7ff-b6e6cc32ee17.jpg" alt="davorg profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/davorg" class="crayons-story__secondary fw-medium m:hidden"> Dave Cross </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2378883" aria-controls="story-author-preview-content-2378883" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Dave Cross profile details"> Dave Cross </button> <div id="story-author-preview-content-2378883" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/davorg" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F114555%2F49e09363-5092-4ad0-a7ff-b6e6cc32ee17.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Dave Cross</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":114555,"className":"User","name":"Dave Cross"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="114555"></div> </div> </div> </div> </div> <a href="https://dev.to/davorg/finding-cool-stuff-with-chatgpt-47gp" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-04T08:25:26Z">Apr 4</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743684033"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/davorg/finding-cool-stuff-with-chatgpt-47gp" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffg4276ugfpkooo7hclmt.png" id="article-link-2378883"> Finding cool stuff with ChatGPT </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/web"><span class="crayons-tag__prefix">#</span>web</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(118, 118, 118, 0.10); --tag-prefix: #767676; --tag-bg-hover: rgba(118, 118, 118, 0.10); --tag-prefix-hover: #767676; " href="/t/chatgpt"><span class="crayons-tag__prefix">#</span>chatgpt</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/coolstuff"><span class="crayons-tag__prefix">#</span>coolstuff</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(31, 109, 245, 0.10); --tag-prefix: #1F6DF5; --tag-bg-hover: rgba(31, 109, 245, 0.10); --tag-prefix-hover: #1F6DF5; " href="/t/openai"><span class="crayons-tag__prefix">#</span>openai</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/davorg/finding-cool-stuff-with-chatgpt-47gp" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2378883" aria-label="Add a comment to post - Finding cool stuff with ChatGPT"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">5<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/davorg/finding-cool-stuff-with-chatgpt-47gp#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Finding cool stuff with ChatGPT"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a9blku7ebxj166fnq7g5iowwnk6yoehb" class="crayons-icon"><title id="a9blku7ebxj166fnq7g5iowwnk6yoehb">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 4 min read </small> <button type="button" id="article-save-button-2378883" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2378883" data-article-author-id="114555" aria-label="Save post Finding cool stuff with ChatGPT to reading list" title="Save post Finding cool stuff with ChatGPT to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2381301" data-content-user-id="2935609"> <a href="https://dev.to/alex-nguyen-duy-anh/diffusion-models-101-train-a-u-net-to-reverse-engineer-noise-using-thermodynamics-no-more-gan-39l8" aria-labelledby="article-link-2381301" class="crayons-story__hidden-navigation-link">🧪 Diffusion models 101: Train a U-Net to reverse-engineer noise using thermodynamics. No more GAN instability. Exact likelihoods, flexible outputs (images, text, 3D structures). Code snippets + deep dive:</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/alex-nguyen-duy-anh" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2935609%2F9f84f216-73b8-4c4e-abd8-6678edf1bd05.jpg" alt="alex-nguyen-duy-anh profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/alex-nguyen-duy-anh" class="crayons-story__secondary fw-medium m:hidden"> Alex Nguyen </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2381301" aria-controls="story-author-preview-content-2381301" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Alex Nguyen profile details"> Alex Nguyen </button> <div id="story-author-preview-content-2381301" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/alex-nguyen-duy-anh" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2935609%2F9f84f216-73b8-4c4e-abd8-6678edf1bd05.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Alex Nguyen</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":2935609,"className":"User","name":"Alex Nguyen"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="2935609"></div> </div> </div> </div> </div> <a href="https://dev.to/alex-nguyen-duy-anh/diffusion-models-101-train-a-u-net-to-reverse-engineer-noise-using-thermodynamics-no-more-gan-39l8" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-04T14:25:24Z">Apr 4</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743776724"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/alex-nguyen-duy-anh/diffusion-models-101-train-a-u-net-to-reverse-engineer-noise-using-thermodynamics-no-more-gan-39l8" data-preload-image="" id="article-link-2381301"> 🧪 Diffusion models 101: Train a U-Net to reverse-engineer noise using thermodynamics. No more GAN instability. Exact likelihoods, flexible outputs (images, text, 3D structures). Code snippets + deep dive: </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(23, 253, 26, 0.10); --tag-prefix: #17fd1a; --tag-bg-hover: rgba(23, 253, 26, 0.10); --tag-prefix-hover: #17fd1a; " href="/t/ai"><span class="crayons-tag__prefix">#</span>ai</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(229, 255, 227, 0.10); --tag-prefix: #E5FFE3; --tag-bg-hover: rgba(229, 255, 227, 0.10); --tag-prefix-hover: #E5FFE3; " href="/t/machinelearning"><span class="crayons-tag__prefix">#</span>machinelearning</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(137, 6, 6, 0.10); --tag-prefix: #890606; --tag-bg-hover: rgba(137, 6, 6, 0.10); --tag-prefix-hover: #890606; " href="/t/programming"><span class="crayons-tag__prefix">#</span>programming</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(254, 255, 165, 0.10); --tag-prefix: #FEFFA5; --tag-bg-hover: rgba(254, 255, 165, 0.10); --tag-prefix-hover: #FEFFA5; " href="/t/tutorial"><span class="crayons-tag__prefix">#</span>tutorial</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/alex-nguyen-duy-anh/diffusion-models-101-train-a-u-net-to-reverse-engineer-noise-using-thermodynamics-no-more-gan-39l8" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2381301" aria-label="Add a comment to post - 🧪 Diffusion models 101: Train a U-Net to reverse-engineer noise using thermodynamics. No more GAN instability. Exact likelihoods, flexible outputs (images, text, 3D structures). Code snippets + deep dive:"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">6<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/alex-nguyen-duy-anh/diffusion-models-101-train-a-u-net-to-reverse-engineer-noise-using-thermodynamics-no-more-gan-39l8#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - 🧪 Diffusion models 101: Train a U-Net to reverse-engineer noise using thermodynamics. No more GAN instability. Exact likelihoods, flexible outputs (images, text, 3D structures). Code snippets + deep dive:"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a2jgvdkntj00jyoiqhwn0kag5ljpaowq" class="crayons-icon"><title id="a2jgvdkntj00jyoiqhwn0kag5ljpaowq">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> 8<span class="hidden s:inline"> comments</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2381301" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2381301" data-article-author-id="2935609" aria-label="Save post 🧪 Diffusion models 101: Train a U-Net to reverse-engineer noise using thermodynamics. No more GAN instability. Exact likelihoods, flexible outputs (images, text, 3D structures). Code snippets + deep dive: to reading list" title="Save post 🧪 Diffusion models 101: Train a U-Net to reverse-engineer noise using thermodynamics. No more GAN instability. Exact likelihoods, flexible outputs (images, text, 3D structures). Code snippets + deep dive: to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2381359" data-content-user-id="2332623"> <a href="https://dev.to/0x3d_site/build-a-python-mind-reader-track-what-you-copy-and-auto-save-it-58kj" aria-labelledby="article-link-2381359" class="crayons-story__hidden-navigation-link">🧠 Build a Python "Mind Reader" – Track What You Copy, and Auto-Save It!</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/0x3d_site" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2332623%2Fdac61bf7-de2d-4c03-b9dc-8f41c8a3f097.png" alt="0x3d_site profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/0x3d_site" class="crayons-story__secondary fw-medium m:hidden"> 0x3d Site </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2381359" aria-controls="story-author-preview-content-2381359" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="0x3d Site profile details"> 0x3d Site </button> <div id="story-author-preview-content-2381359" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/0x3d_site" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2332623%2Fdac61bf7-de2d-4c03-b9dc-8f41c8a3f097.png" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">0x3d Site</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":2332623,"className":"User","name":"0x3d Site"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="2332623"></div> </div> </div> </div> </div> <a href="https://dev.to/0x3d_site/build-a-python-mind-reader-track-what-you-copy-and-auto-save-it-58kj" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-04T14:53:25Z">Apr 4</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743778405"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/0x3d_site/build-a-python-mind-reader-track-what-you-copy-and-auto-save-it-58kj" data-preload-image="" id="article-link-2381359"> 🧠 Build a Python "Mind Reader" – Track What You Copy, and Auto-Save It! </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(137, 6, 6, 0.10); --tag-prefix: #890606; --tag-bg-hover: rgba(137, 6, 6, 0.10); --tag-prefix-hover: #890606; " href="/t/programming"><span class="crayons-tag__prefix">#</span>programming</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(0, 131, 53, 0.10); --tag-prefix: #008335; --tag-bg-hover: rgba(0, 131, 53, 0.10); --tag-prefix-hover: #008335; " href="/t/beginners"><span class="crayons-tag__prefix">#</span>beginners</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(254, 255, 165, 0.10); --tag-prefix: #FEFFA5; --tag-bg-hover: rgba(254, 255, 165, 0.10); --tag-prefix-hover: #FEFFA5; " href="/t/tutorial"><span class="crayons-tag__prefix">#</span>tutorial</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(30, 56, 187, 0.10); --tag-prefix: #1E38BB; --tag-bg-hover: rgba(30, 56, 187, 0.10); --tag-prefix-hover: #1E38BB; " href="/t/python"><span class="crayons-tag__prefix">#</span>python</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/0x3d_site/build-a-python-mind-reader-track-what-you-copy-and-auto-save-it-58kj" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2381359" aria-label="Add a comment to post - 🧠 Build a Python "Mind Reader" – Track What You Copy, and Auto-Save It!"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">56<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/0x3d_site/build-a-python-mind-reader-track-what-you-copy-and-auto-save-it-58kj#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - 🧠 Build a Python "Mind Reader" – Track What You Copy, and Auto-Save It!"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aoh11ha3r90dezkzft7qc1mxckthz0d4" class="crayons-icon"><title id="aoh11ha3r90dezkzft7qc1mxckthz0d4">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> 1<span class="hidden s:inline"> comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 4 min read </small> <button type="button" id="article-save-button-2381359" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2381359" data-article-author-id="2332623" aria-label="Save post 🧠 Build a Python "Mind Reader" – Track What You Copy, and Auto-Save It! to reading list" title="Save post 🧠 Build a Python "Mind Reader" – Track What You Copy, and Auto-Save It! to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2383904" data-content-user-id="1971849"> <a href="https://dev.to/nozibul_islam_113b1d5334f/floating-point-numbers-and-scientific-notation-1ih1" aria-labelledby="article-link-2383904" class="crayons-story__hidden-navigation-link">Floating Point Numbers and Scientific Notation</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/nozibul_islam_113b1d5334f" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1971849%2Fe97063c6-1893-40f0-af60-b650acae49cd.png" alt="nozibul_islam_113b1d5334f profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/nozibul_islam_113b1d5334f" class="crayons-story__secondary fw-medium m:hidden"> Nozibul Islam </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2383904" aria-controls="story-author-preview-content-2383904" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Nozibul Islam profile details"> Nozibul Islam </button> <div id="story-author-preview-content-2383904" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/nozibul_islam_113b1d5334f" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1971849%2Fe97063c6-1893-40f0-af60-b650acae49cd.png" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Nozibul Islam</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":1971849,"className":"User","name":"Nozibul Islam"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="1971849"></div> </div> </div> </div> </div> <a href="https://dev.to/nozibul_islam_113b1d5334f/floating-point-numbers-and-scientific-notation-1ih1" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T11:04:26Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743851066"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/nozibul_islam_113b1d5334f/floating-point-numbers-and-scientific-notation-1ih1" data-preload-image="" id="article-link-2383904"> Floating Point Numbers and Scientific Notation </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/floatingpoint"><span class="crayons-tag__prefix">#</span>floatingpoint</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(217, 140, 217, 0.10); --tag-prefix: #d98cd9; --tag-bg-hover: rgba(217, 140, 217, 0.10); --tag-prefix-hover: #d98cd9; " href="/t/computerscience"><span class="crayons-tag__prefix">#</span>computerscience</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(137, 6, 6, 0.10); --tag-prefix: #890606; --tag-bg-hover: rgba(137, 6, 6, 0.10); --tag-prefix-hover: #890606; " href="/t/programming"><span class="crayons-tag__prefix">#</span>programming</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/nozibul_islam_113b1d5334f/floating-point-numbers-and-scientific-notation-1ih1" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2383904" aria-label="Add a comment to post - Floating Point Numbers and Scientific Notation"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">20<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/nozibul_islam_113b1d5334f/floating-point-numbers-and-scientific-notation-1ih1#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Floating Point Numbers and Scientific Notation"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a8mueupbh2hol2zt2qfts1z7hlldxlew" class="crayons-icon"><title id="a8mueupbh2hol2zt2qfts1z7hlldxlew">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2383904" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2383904" data-article-author-id="1971849" aria-label="Save post Floating Point Numbers and Scientific Notation to reading list" title="Save post Floating Point Numbers and Scientific Notation to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384147" data-content-user-id="461127"> <a href="https://dev.to/code42cate/how-i-use-n8n-and-ai-agents-to-scale-my-startup-4om4" aria-labelledby="article-link-2384147" class="crayons-story__hidden-navigation-link">How I use n8n and AI agents to scale my startup</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/code42cate" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F461127%2F034233c4-ba6e-473c-8a8d-783831764a10.jpeg" alt="code42cate profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/code42cate" class="crayons-story__secondary fw-medium m:hidden"> Jonas Scholz </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384147" aria-controls="story-author-preview-content-2384147" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Jonas Scholz profile details"> Jonas Scholz <a style="display: inline;" href="/++"><img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png" /></a> </button> <div id="story-author-preview-content-2384147" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/code42cate" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F461127%2F034233c4-ba6e-473c-8a8d-783831764a10.jpeg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Jonas Scholz</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":461127,"className":"User","name":"Jonas Scholz"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="461127"></div> </div> </div> </div> </div> <a href="https://dev.to/code42cate/how-i-use-n8n-and-ai-agents-to-scale-my-startup-4om4" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T13:45:17Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743860717"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/code42cate/how-i-use-n8n-and-ai-agents-to-scale-my-startup-4om4" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2lfvpq9emmy8ynjsvqq3.png" id="article-link-2384147"> How I use n8n and AI agents to scale my startup </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(230, 255, 251, 0.10); --tag-prefix: #E6FFFB; --tag-bg-hover: rgba(230, 255, 251, 0.10); --tag-prefix-hover: #E6FFFB; " href="/t/startup"><span class="crayons-tag__prefix">#</span>startup</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(42, 7, 152, 0.10); --tag-prefix: #2A0798; --tag-bg-hover: rgba(42, 7, 152, 0.10); --tag-prefix-hover: #2A0798; " href="/t/productivity"><span class="crayons-tag__prefix">#</span>productivity</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(23, 253, 26, 0.10); --tag-prefix: #17fd1a; --tag-bg-hover: rgba(23, 253, 26, 0.10); --tag-prefix-hover: #17fd1a; " href="/t/ai"><span class="crayons-tag__prefix">#</span>ai</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(38, 190, 0, 0.10); --tag-prefix: #26BE00; --tag-bg-hover: rgba(38, 190, 0, 0.10); --tag-prefix-hover: #26BE00; " href="/t/opensource"><span class="crayons-tag__prefix">#</span>opensource</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/code42cate/how-i-use-n8n-and-ai-agents-to-scale-my-startup-4om4" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2384147" aria-label="Add a comment to post - How I use n8n and AI agents to scale my startup"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">17<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/code42cate/how-i-use-n8n-and-ai-agents-to-scale-my-startup-4om4#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - How I use n8n and AI agents to scale my startup"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="atjx6l6d3151pl6lnn8bzf5ypipmrkz" class="crayons-icon"><title id="atjx6l6d3151pl6lnn8bzf5ypipmrkz">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 3 min read </small> <button type="button" id="article-save-button-2384147" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384147" data-article-author-id="461127" aria-label="Save post How I use n8n and AI agents to scale my startup to reading list" title="Save post How I use n8n and AI agents to scale my startup to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2371488" data-content-user-id="1151505"> <a href="https://dumb.dev.to/avanichols_dev/abstractions-3a4f" aria-labelledby="article-link-2371488" class="crayons-story__hidden-navigation-link">Abstractions</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/avanichols_dev" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1151505%2F312a9344-4db7-4c29-b5ca-2e6b05878c44.png" alt="avanichols_dev profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/avanichols_dev" class="crayons-story__secondary fw-medium m:hidden"> Ava Nichols </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2371488" aria-controls="story-author-preview-content-2371488" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Ava Nichols profile details"> Ava Nichols </button> <div id="story-author-preview-content-2371488" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/avanichols_dev" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1151505%2F312a9344-4db7-4c29-b5ca-2e6b05878c44.png" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Ava Nichols</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":1151505,"className":"User","name":"Ava Nichols"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="1151505"></div> </div> </div> </div> </div> <a href="https://dumb.dev.to/avanichols_dev/abstractions-3a4f" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-01T14:32:21Z">Apr 1</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743517941"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dumb.dev.to/avanichols_dev/abstractions-3a4f" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcyx1jjavrb9hdo3s01kv.png" id="article-link-2371488"> Abstractions </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(42, 7, 152, 0.10); --tag-prefix: #2A0798; --tag-bg-hover: rgba(42, 7, 152, 0.10); --tag-prefix-hover: #2A0798; " href="/t/productivity"><span class="crayons-tag__prefix">#</span>productivity</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dumb.dev.to/avanichols_dev/abstractions-3a4f" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2371488" aria-label="Add a comment to post - Abstractions"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">6<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dumb.dev.to/avanichols_dev/abstractions-3a4f#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Abstractions"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="at6ws1pxogo6fynvnfo0m9461b8ir6ui" class="crayons-icon"><title id="at6ws1pxogo6fynvnfo0m9461b8ir6ui">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2371488" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2371488" data-article-author-id="1151505" aria-label="Save post Abstractions to reading list" title="Save post Abstractions to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2383490" data-content-user-id="515396"> <a href="https://dev.to/madsstoumann/how-to-create-gauges-in-css-3581" aria-labelledby="article-link-2383490" class="crayons-story__hidden-navigation-link">How To Create Gauges in CSS</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/madsstoumann" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F515396%2F61d796b8-f5ce-468b-8cb5-808b2bbb9279.jpeg" alt="madsstoumann profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/madsstoumann" class="crayons-story__secondary fw-medium m:hidden"> Mads Stoumann </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2383490" aria-controls="story-author-preview-content-2383490" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Mads Stoumann profile details"> Mads Stoumann </button> <div id="story-author-preview-content-2383490" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/madsstoumann" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F515396%2F61d796b8-f5ce-468b-8cb5-808b2bbb9279.jpeg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Mads Stoumann</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":515396,"className":"User","name":"Mads Stoumann"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="515396"></div> </div> </div> </div> </div> <a href="https://dev.to/madsstoumann/how-to-create-gauges-in-css-3581" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T11:21:33Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743852093"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/madsstoumann/how-to-create-gauges-in-css-3581" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs92our3sdz8hdjfdo3zv.png" id="article-link-2383490"> How To Create Gauges in CSS </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--filled " style=" --tag-bg: rgba(9, 27, 71, 0.10); --tag-prefix: #091b47; --tag-bg-hover: rgba(9, 27, 71, 0.10); --tag-prefix-hover: #091b47; " href="/t/showdev"><span class="crayons-tag__prefix">#</span>showdev</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(41, 101, 241, 0.10); --tag-prefix: #2965F1; --tag-bg-hover: rgba(41, 101, 241, 0.10); --tag-prefix-hover: #2965F1; " href="/t/css"><span class="crayons-tag__prefix">#</span>css</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(86, 39, 101, 0.10); --tag-prefix: #562765; --tag-bg-hover: rgba(86, 39, 101, 0.10); --tag-prefix-hover: #562765; " href="/t/webdev"><span class="crayons-tag__prefix">#</span>webdev</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(254, 255, 165, 0.10); --tag-prefix: #FEFFA5; --tag-bg-hover: rgba(254, 255, 165, 0.10); --tag-prefix-hover: #FEFFA5; " href="/t/tutorial"><span class="crayons-tag__prefix">#</span>tutorial</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/madsstoumann/how-to-create-gauges-in-css-3581" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2383490" aria-label="Add a comment to post - How To Create Gauges in CSS"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">2<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/madsstoumann/how-to-create-gauges-in-css-3581#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - How To Create Gauges in CSS"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a3pt6ugozc5qrt3gjs6l5ro77v18u9bp" class="crayons-icon"><title id="a3pt6ugozc5qrt3gjs6l5ro77v18u9bp">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> 2<span class="hidden s:inline"> comments</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 6 min read </small> <button type="button" id="article-save-button-2383490" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2383490" data-article-author-id="515396" aria-label="Save post How To Create Gauges in CSS to reading list" title="Save post How To Create Gauges in CSS to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2383503" data-content-user-id="2050250"> <a href="https://dev.to/subhabhatta/pulimni-challenge-59gp" aria-labelledby="article-link-2383503" class="crayons-story__hidden-navigation-link">PULIMI CHALLENGE</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/subhabhatta" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2050250%2F5bdcafbc-6337-4c2a-8503-a4cc78917e63.jpeg" alt="subhabhatta profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/subhabhatta" class="crayons-story__secondary fw-medium m:hidden"> Subhadaya Bhatta </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2383503" aria-controls="story-author-preview-content-2383503" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Subhadaya Bhatta profile details"> Subhadaya Bhatta </button> <div id="story-author-preview-content-2383503" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/subhabhatta" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2050250%2F5bdcafbc-6337-4c2a-8503-a4cc78917e63.jpeg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Subhadaya Bhatta</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":2050250,"className":"User","name":"Subhadaya Bhatta"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="2050250"></div> </div> </div> </div> </div> <a href="https://dev.to/subhabhatta/pulimni-challenge-59gp" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T14:32:18Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743863538"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/subhabhatta/pulimni-challenge-59gp" data-preload-image="" id="article-link-2383503"> PULIMI CHALLENGE </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(132, 206, 249, 0.10); --tag-prefix: #84CEF9; --tag-bg-hover: rgba(132, 206, 249, 0.10); --tag-prefix-hover: #84CEF9; " href="/t/devchallenge"><span class="crayons-tag__prefix">#</span>devchallenge</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(138, 51, 145, 0.10); --tag-prefix: #8a3391; --tag-bg-hover: rgba(138, 51, 145, 0.10); --tag-prefix-hover: #8a3391; " href="/t/pulumichallenge"><span class="crayons-tag__prefix">#</span>pulumichallenge</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(86, 39, 101, 0.10); --tag-prefix: #562765; --tag-bg-hover: rgba(86, 39, 101, 0.10); --tag-prefix-hover: #562765; " href="/t/webdev"><span class="crayons-tag__prefix">#</span>webdev</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(255, 153, 0, 0.10); --tag-prefix: #FF9900; --tag-bg-hover: rgba(255, 153, 0, 0.10); --tag-prefix-hover: #FF9900; " href="/t/cloud"><span class="crayons-tag__prefix">#</span>cloud</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/subhabhatta/pulimni-challenge-59gp" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2383503" aria-label="Add a comment to post - PULIMI CHALLENGE"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">10<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/subhabhatta/pulimni-challenge-59gp#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - PULIMI CHALLENGE"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a9tustio0752e60g0namequazyvnamaq" class="crayons-icon"><title id="a9tustio0752e60g0namequazyvnamaq">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2383503" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2383503" data-article-author-id="2050250" aria-label="Save post PULIMI CHALLENGE to reading list" title="Save post PULIMI CHALLENGE to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384675" data-content-user-id="2449394"> <a href="https://dev.to/noah_street_d0755cbf9a58d/i-canceled-chatgpt-plus-and-built-my-own-offline-gpt-f6" aria-labelledby="article-link-2384675" class="crayons-story__hidden-navigation-link">I canceled ChatGPT Plus and built my own offline GPT</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/noah_street_d0755cbf9a58d" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2449394%2F6858459f-5275-4ab9-b7ec-b531ffe16238.jpg" alt="noah_street_d0755cbf9a58d profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/noah_street_d0755cbf9a58d" class="crayons-story__secondary fw-medium m:hidden"> Noah Street </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384675" aria-controls="story-author-preview-content-2384675" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Noah Street profile details"> Noah Street </button> <div id="story-author-preview-content-2384675" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/noah_street_d0755cbf9a58d" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2449394%2F6858459f-5275-4ab9-b7ec-b531ffe16238.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Noah Street</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":2449394,"className":"User","name":"Noah Street"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="2449394"></div> </div> </div> </div> </div> <a href="https://dev.to/noah_street_d0755cbf9a58d/i-canceled-chatgpt-plus-and-built-my-own-offline-gpt-f6" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:08:07Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743883687"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/noah_street_d0755cbf9a58d/i-canceled-chatgpt-plus-and-built-my-own-offline-gpt-f6" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4u9ewe4bmirq97o7ec2g.jpg" id="article-link-2384675"> I canceled ChatGPT Plus and built my own offline GPT </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(137, 6, 6, 0.10); --tag-prefix: #890606; --tag-bg-hover: rgba(137, 6, 6, 0.10); --tag-prefix-hover: #890606; " href="/t/programming"><span class="crayons-tag__prefix">#</span>programming</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(86, 39, 101, 0.10); --tag-prefix: #562765; --tag-bg-hover: rgba(86, 39, 101, 0.10); --tag-prefix-hover: #562765; " href="/t/webdev"><span class="crayons-tag__prefix">#</span>webdev</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(23, 253, 26, 0.10); --tag-prefix: #17fd1a; --tag-bg-hover: rgba(23, 253, 26, 0.10); --tag-prefix-hover: #17fd1a; " href="/t/ai"><span class="crayons-tag__prefix">#</span>ai</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(254, 255, 165, 0.10); --tag-prefix: #FEFFA5; --tag-bg-hover: rgba(254, 255, 165, 0.10); --tag-prefix-hover: #FEFFA5; " href="/t/tutorial"><span class="crayons-tag__prefix">#</span>tutorial</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/noah_street_d0755cbf9a58d/i-canceled-chatgpt-plus-and-built-my-own-offline-gpt-f6" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2384675" aria-label="Add a comment to post - I canceled ChatGPT Plus and built my own offline GPT"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">2<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/noah_street_d0755cbf9a58d/i-canceled-chatgpt-plus-and-built-my-own-offline-gpt-f6#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - I canceled ChatGPT Plus and built my own offline GPT"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ajy12vkihktirfee2ip57drgivvmeisw" class="crayons-icon"><title id="ajy12vkihktirfee2ip57drgivvmeisw">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2384675" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384675" data-article-author-id="2449394" aria-label="Save post I canceled ChatGPT Plus and built my own offline GPT to reading list" title="Save post I canceled ChatGPT Plus and built my own offline GPT to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384591" data-content-user-id="1270822"> <a href="https://dev.to/jakariyaaa/how-to-create-and-use-userchromecss-in-firefox-26g7" aria-labelledby="article-link-2384591" class="crayons-story__hidden-navigation-link">How to Create and Use userChrome.css in Firefox</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/jakariyaaa" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1270822%2F4793979e-8d8d-4ebd-8913-ded4bf504efb.png" alt="jakariyaaa profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/jakariyaaa" class="crayons-story__secondary fw-medium m:hidden"> Jakariya Abbas </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384591" aria-controls="story-author-preview-content-2384591" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Jakariya Abbas profile details"> Jakariya Abbas </button> <div id="story-author-preview-content-2384591" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/jakariyaaa" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1270822%2F4793979e-8d8d-4ebd-8913-ded4bf504efb.png" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Jakariya Abbas</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":1270822,"className":"User","name":"Jakariya Abbas"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="1270822"></div> </div> </div> </div> </div> <a href="https://dev.to/jakariyaaa/how-to-create-and-use-userchromecss-in-firefox-26g7" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T19:00:18Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743879618"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/jakariyaaa/how-to-create-and-use-userchromecss-in-firefox-26g7" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuanyl8x46k5r4i6fl08p.png" id="article-link-2384591"> How to Create and Use userChrome.css in Firefox </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/browser"><span class="crayons-tag__prefix">#</span>browser</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(41, 101, 241, 0.10); --tag-prefix: #2965F1; --tag-bg-hover: rgba(41, 101, 241, 0.10); --tag-prefix-hover: #2965F1; " href="/t/css"><span class="crayons-tag__prefix">#</span>css</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/firefox"><span class="crayons-tag__prefix">#</span>firefox</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(254, 255, 165, 0.10); --tag-prefix: #FEFFA5; --tag-bg-hover: rgba(254, 255, 165, 0.10); --tag-prefix-hover: #FEFFA5; " href="/t/tutorial"><span class="crayons-tag__prefix">#</span>tutorial</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/jakariyaaa/how-to-create-and-use-userchromecss-in-firefox-26g7" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2384591" aria-label="Add a comment to post - How to Create and Use userChrome.css in Firefox"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">4<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/jakariyaaa/how-to-create-and-use-userchromecss-in-firefox-26g7#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - How to Create and Use userChrome.css in Firefox"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="atc8cxt8bwwfnkxga5vmdlwy4s5zsuc4" class="crayons-icon"><title id="atc8cxt8bwwfnkxga5vmdlwy4s5zsuc4">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2384591" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384591" data-article-author-id="1270822" aria-label="Save post How to Create and Use userChrome.css in Firefox to reading list" title="Save post How to Create and Use userChrome.css in Firefox to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384611" data-content-user-id="789392"> <a href="https://dev.to/ari-ghosh/mastering-redis-the-in-memory-data-structure-store-you-need-to-know-4086" aria-labelledby="article-link-2384611" class="crayons-story__hidden-navigation-link">Mastering Redis : The In-Memory Data Structure Store You Need to Know 🚀</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/ari-ghosh" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F789392%2F1088a2f0-3d7a-4a0d-badc-c1ba8c9bc692.png" alt="ari-ghosh profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/ari-ghosh" class="crayons-story__secondary fw-medium m:hidden"> Arijit Ghosh </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384611" aria-controls="story-author-preview-content-2384611" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Arijit Ghosh profile details"> Arijit Ghosh </button> <div id="story-author-preview-content-2384611" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/ari-ghosh" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F789392%2F1088a2f0-3d7a-4a0d-badc-c1ba8c9bc692.png" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Arijit Ghosh</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":789392,"className":"User","name":"Arijit Ghosh"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="789392"></div> </div> </div> </div> </div> <a href="https://dev.to/ari-ghosh/mastering-redis-the-in-memory-data-structure-store-you-need-to-know-4086" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:10:40Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743883840"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/ari-ghosh/mastering-redis-the-in-memory-data-structure-store-you-need-to-know-4086" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flcgl6ufchrh3yl21drgy.png" id="article-link-2384611"> Mastering Redis : The In-Memory Data Structure Store You Need to Know 🚀 </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(137, 6, 6, 0.10); --tag-prefix: #890606; --tag-bg-hover: rgba(137, 6, 6, 0.10); --tag-prefix-hover: #890606; " href="/t/programming"><span class="crayons-tag__prefix">#</span>programming</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(254, 255, 165, 0.10); --tag-prefix: #FEFFA5; --tag-bg-hover: rgba(254, 255, 165, 0.10); --tag-prefix-hover: #FEFFA5; " href="/t/tutorial"><span class="crayons-tag__prefix">#</span>tutorial</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(237, 21, 86, 0.10); --tag-prefix: #ED1556; --tag-bg-hover: rgba(237, 21, 86, 0.10); --tag-prefix-hover: #ED1556; " href="/t/database"><span class="crayons-tag__prefix">#</span>database</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(180, 0, 0, 0.10); --tag-prefix: #b40000; --tag-bg-hover: rgba(180, 0, 0, 0.10); --tag-prefix-hover: #b40000; " href="/t/redis"><span class="crayons-tag__prefix">#</span>redis</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/ari-ghosh/mastering-redis-the-in-memory-data-structure-store-you-need-to-know-4086" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2384611" aria-label="Add a comment to post - Mastering Redis : The In-Memory Data Structure Store You Need to Know 🚀"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">2<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/ari-ghosh/mastering-redis-the-in-memory-data-structure-store-you-need-to-know-4086#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Mastering Redis : The In-Memory Data Structure Store You Need to Know 🚀"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a4dn0xwbn9gn834mkhku4y71fs39goci" class="crayons-icon"><title id="a4dn0xwbn9gn834mkhku4y71fs39goci">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> 1<span class="hidden s:inline"> comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 9 min read </small> <button type="button" id="article-save-button-2384611" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384611" data-article-author-id="789392" aria-label="Save post Mastering Redis : The In-Memory Data Structure Store You Need to Know 🚀 to reading list" title="Save post Mastering Redis : The In-Memory Data Structure Store You Need to Know 🚀 to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384428" data-content-user-id="1002302"> <a href="https://dev.to/lovestaco/smooth-database-migrations-in-a-fast-moving-world-1mjg" aria-labelledby="article-link-2384428" class="crayons-story__hidden-navigation-link">Smooth Database Migrations in a Fast-Moving World</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/lovestaco" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1002302%2F5233b7df-6ee3-46b2-b8d7-1fafe103e8a3.jpg" alt="lovestaco profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/lovestaco" class="crayons-story__secondary fw-medium m:hidden"> Athreya aka Maneshwar </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384428" aria-controls="story-author-preview-content-2384428" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Athreya aka Maneshwar profile details"> Athreya aka Maneshwar </button> <div id="story-author-preview-content-2384428" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/lovestaco" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1002302%2F5233b7df-6ee3-46b2-b8d7-1fafe103e8a3.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Athreya aka Maneshwar</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":1002302,"className":"User","name":"Athreya aka Maneshwar"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="1002302"></div> </div> </div> </div> </div> <a href="https://dev.to/lovestaco/smooth-database-migrations-in-a-fast-moving-world-1mjg" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T17:06:52Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743872812"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/lovestaco/smooth-database-migrations-in-a-fast-moving-world-1mjg" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Febwvrw75rivt5d3rnhev.png" id="article-link-2384428"> Smooth Database Migrations in a Fast-Moving World </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(86, 39, 101, 0.10); --tag-prefix: #562765; --tag-bg-hover: rgba(86, 39, 101, 0.10); --tag-prefix-hover: #562765; " href="/t/webdev"><span class="crayons-tag__prefix">#</span>webdev</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(137, 6, 6, 0.10); --tag-prefix: #890606; --tag-bg-hover: rgba(137, 6, 6, 0.10); --tag-prefix-hover: #890606; " href="/t/programming"><span class="crayons-tag__prefix">#</span>programming</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(6, 181, 0, 0.10); --tag-prefix: #06B500; --tag-bg-hover: rgba(6, 181, 0, 0.10); --tag-prefix-hover: #06B500; " href="/t/devops"><span class="crayons-tag__prefix">#</span>devops</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(237, 21, 86, 0.10); --tag-prefix: #ED1556; --tag-bg-hover: rgba(237, 21, 86, 0.10); --tag-prefix-hover: #ED1556; " href="/t/database"><span class="crayons-tag__prefix">#</span>database</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/lovestaco/smooth-database-migrations-in-a-fast-moving-world-1mjg" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2384428" aria-label="Add a comment to post - Smooth Database Migrations in a Fast-Moving World"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">6<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/lovestaco/smooth-database-migrations-in-a-fast-moving-world-1mjg#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Smooth Database Migrations in a Fast-Moving World"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ag2mjpo02gh3pbeki8nsypylkf5fmhnc" class="crayons-icon"><title id="ag2mjpo02gh3pbeki8nsypylkf5fmhnc">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 4 min read </small> <button type="button" id="article-save-button-2384428" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384428" data-article-author-id="1002302" aria-label="Save post Smooth Database Migrations in a Fast-Moving World to reading list" title="Save post Smooth Database Migrations in a Fast-Moving World to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384410" data-content-user-id="1864760"> <a href="https://dev.to/leapcell/sql-composite-indexes-when-to-use-15k0" aria-labelledby="article-link-2384410" class="crayons-story__hidden-navigation-link">SQL Composite Indexes: When to Use?</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/leapcell" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1864760%2Fb4f5877f-c0cf-4601-8848-efe8959cc43b.png" alt="leapcell profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/leapcell" class="crayons-story__secondary fw-medium m:hidden"> Leapcell </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384410" aria-controls="story-author-preview-content-2384410" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Leapcell profile details"> Leapcell </button> <div id="story-author-preview-content-2384410" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/leapcell" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1864760%2Fb4f5877f-c0cf-4601-8848-efe8959cc43b.png" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Leapcell</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":1864760,"className":"User","name":"Leapcell"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="1864760"></div> </div> </div> </div> </div> <a href="https://dev.to/leapcell/sql-composite-indexes-when-to-use-15k0" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T16:42:09Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743871329"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/leapcell/sql-composite-indexes-when-to-use-15k0" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fap4ikzmocfncjupqulxj.png" id="article-link-2384410"> SQL Composite Indexes: When to Use? </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(86, 39, 101, 0.10); --tag-prefix: #562765; --tag-bg-hover: rgba(86, 39, 101, 0.10); --tag-prefix-hover: #562765; " href="/t/webdev"><span class="crayons-tag__prefix">#</span>webdev</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(137, 6, 6, 0.10); --tag-prefix: #890606; --tag-bg-hover: rgba(137, 6, 6, 0.10); --tag-prefix-hover: #890606; " href="/t/programming"><span class="crayons-tag__prefix">#</span>programming</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/backend"><span class="crayons-tag__prefix">#</span>backend</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(237, 21, 86, 0.10); --tag-prefix: #ED1556; --tag-bg-hover: rgba(237, 21, 86, 0.10); --tag-prefix-hover: #ED1556; " href="/t/database"><span class="crayons-tag__prefix">#</span>database</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/leapcell/sql-composite-indexes-when-to-use-15k0" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2384410" aria-label="Add a comment to post - SQL Composite Indexes: When to Use?"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">5<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/leapcell/sql-composite-indexes-when-to-use-15k0#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - SQL Composite Indexes: When to Use?"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="alcp1g7a05xu2isxlfn8hy44pd339fuk" class="crayons-icon"><title id="alcp1g7a05xu2isxlfn8hy44pd339fuk">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 3 min read </small> <button type="button" id="article-save-button-2384410" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384410" data-article-author-id="1864760" aria-label="Save post SQL Composite Indexes: When to Use? to reading list" title="Save post SQL Composite Indexes: When to Use? to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384765" data-content-user-id="1805692"> <a href="https://dev.to/princetomarappdev/role-based-route-permissions-in-remix-react-router-v7-1d3j" aria-labelledby="article-link-2384765" class="crayons-story__hidden-navigation-link">Role-Based Route Permissions in Remix / React Router v7</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/princetomarappdev" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1805692%2F238f9850-5607-46a4-b9ac-53c3098a8124.jpeg" alt="princetomarappdev profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/princetomarappdev" class="crayons-story__secondary fw-medium m:hidden"> Prince Tomar </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384765" aria-controls="story-author-preview-content-2384765" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Prince Tomar profile details"> Prince Tomar </button> <div id="story-author-preview-content-2384765" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/princetomarappdev" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1805692%2F238f9850-5607-46a4-b9ac-53c3098a8124.jpeg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Prince Tomar</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":1805692,"className":"User","name":"Prince Tomar"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="1805692"></div> </div> </div> </div> </div> <a href="https://dev.to/princetomarappdev/role-based-route-permissions-in-remix-react-router-v7-1d3j" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:36:24Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743885384"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/princetomarappdev/role-based-route-permissions-in-remix-react-router-v7-1d3j" data-preload-image="" id="article-link-2384765"> Role-Based Route Permissions in Remix / React Router v7 </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(86, 39, 101, 0.10); --tag-prefix: #562765; --tag-bg-hover: rgba(86, 39, 101, 0.10); --tag-prefix-hover: #562765; " href="/t/webdev"><span class="crayons-tag__prefix">#</span>webdev</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(35, 74, 132, 0.10); --tag-prefix: #234A84; --tag-bg-hover: rgba(35, 74, 132, 0.10); --tag-prefix-hover: #234A84; " href="/t/typescript"><span class="crayons-tag__prefix">#</span>typescript</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(34, 34, 34, 0.10); --tag-prefix: #222222; --tag-bg-hover: rgba(34, 34, 34, 0.10); --tag-prefix-hover: #222222; " href="/t/react"><span class="crayons-tag__prefix">#</span>react</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/remix"><span class="crayons-tag__prefix">#</span>remix</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/princetomarappdev/role-based-route-permissions-in-remix-react-router-v7-1d3j" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2384765" aria-label="Add a comment to post - Role-Based Route Permissions in Remix / React Router v7"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">1<span class="hidden s:inline"> reaction</span></span> </div> </a> <a href="https://dev.to/princetomarappdev/role-based-route-permissions-in-remix-react-router-v7-1d3j#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Role-Based Route Permissions in Remix / React Router v7"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aeouta2jzk90vvs8dm3n2u3oj1c06xlp" class="crayons-icon"><title id="aeouta2jzk90vvs8dm3n2u3oj1c06xlp">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 14 min read </small> <button type="button" id="article-save-button-2384765" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384765" data-article-author-id="1805692" aria-label="Save post Role-Based Route Permissions in Remix / React Router v7 to reading list" title="Save post Role-Based Route Permissions in Remix / React Router v7 to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384649" data-content-user-id="945235"> <a href="https://dev.to/josemariairiarte/mastering-css-video-series-a-structured-concise-blueprint-for-essential-modern-css-3oi1" aria-labelledby="article-link-2384649" class="crayons-story__hidden-navigation-link">Mastering CSS Video Series: A Structured, Concise Blueprint for Essential Modern CSS</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/josemariairiarte" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F945235%2F9cbebcef-aa88-4484-8868-322c96bc47fe.jpg" alt="josemariairiarte profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/josemariairiarte" class="crayons-story__secondary fw-medium m:hidden"> Jose Maria Iriarte </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384649" aria-controls="story-author-preview-content-2384649" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Jose Maria Iriarte profile details"> Jose Maria Iriarte </button> <div id="story-author-preview-content-2384649" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/josemariairiarte" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F945235%2F9cbebcef-aa88-4484-8868-322c96bc47fe.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Jose Maria Iriarte</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":945235,"className":"User","name":"Jose Maria Iriarte"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="945235"></div> </div> </div> </div> </div> <a href="https://dev.to/josemariairiarte/mastering-css-video-series-a-structured-concise-blueprint-for-essential-modern-css-3oi1" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:15:14Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743884114"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/josemariairiarte/mastering-css-video-series-a-structured-concise-blueprint-for-essential-modern-css-3oi1" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F978ojq8sol8go3v5grgf.jpg" id="article-link-2384649"> Mastering CSS Video Series: A Structured, Concise Blueprint for Essential Modern CSS </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(41, 101, 241, 0.10); --tag-prefix: #2965F1; --tag-bg-hover: rgba(41, 101, 241, 0.10); --tag-prefix-hover: #2965F1; " href="/t/css"><span class="crayons-tag__prefix">#</span>css</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(254, 255, 165, 0.10); --tag-prefix: #FEFFA5; --tag-bg-hover: rgba(254, 255, 165, 0.10); --tag-prefix-hover: #FEFFA5; " href="/t/tutorial"><span class="crayons-tag__prefix">#</span>tutorial</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(0, 131, 53, 0.10); --tag-prefix: #008335; --tag-bg-hover: rgba(0, 131, 53, 0.10); --tag-prefix-hover: #008335; " href="/t/beginners"><span class="crayons-tag__prefix">#</span>beginners</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(255, 102, 237, 0.10); --tag-prefix: #ff66ed; --tag-bg-hover: rgba(255, 102, 237, 0.10); --tag-prefix-hover: #ff66ed; " href="/t/learning"><span class="crayons-tag__prefix">#</span>learning</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/josemariairiarte/mastering-css-video-series-a-structured-concise-blueprint-for-essential-modern-css-3oi1" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2384649" aria-label="Add a comment to post - Mastering CSS Video Series: A Structured, Concise Blueprint for Essential Modern CSS"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> </span> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">3<span class="hidden s:inline"> reactions</span></span> </div> </a> <a href="https://dev.to/josemariairiarte/mastering-css-video-series-a-structured-concise-blueprint-for-essential-modern-css-3oi1#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Mastering CSS Video Series: A Structured, Concise Blueprint for Essential Modern CSS"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a4zf2u7u6yqw3n1wgeyfpnllysj274ye" class="crayons-icon"><title id="a4zf2u7u6yqw3n1wgeyfpnllysj274ye">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 3 min read </small> <button type="button" id="article-save-button-2384649" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384649" data-article-author-id="945235" aria-label="Save post Mastering CSS Video Series: A Structured, Concise Blueprint for Essential Modern CSS to reading list" title="Save post Mastering CSS Video Series: A Structured, Concise Blueprint for Essential Modern CSS to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2364562" data-content-user-id="1069965"> <a href="https://dev.to/iamsherif/deploying-a-static-e-commerce-site-to-aws-using-pulumi-1nlf" aria-labelledby="article-link-2364562" class="crayons-story__hidden-navigation-link">Deploying a Static E-commerce Site to AWS Using Pulumi</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/iamsherif" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1069965%2F3ea01ec0-def6-4b97-a20a-3fe4a0c0d1be.jpg" alt="iamsherif profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/iamsherif" class="crayons-story__secondary fw-medium m:hidden"> iAmSherif 💎 </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2364562" aria-controls="story-author-preview-content-2364562" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="iAmSherif 💎 profile details"> iAmSherif 💎 </button> <div id="story-author-preview-content-2364562" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/iamsherif" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1069965%2F3ea01ec0-def6-4b97-a20a-3fe4a0c0d1be.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">iAmSherif 💎</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":1069965,"className":"User","name":"iAmSherif 💎"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="1069965"></div> </div> </div> </div> </div> <a href="https://dev.to/iamsherif/deploying-a-static-e-commerce-site-to-aws-using-pulumi-1nlf" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:47:40Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743886060"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/iamsherif/deploying-a-static-e-commerce-site-to-aws-using-pulumi-1nlf" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzss98813v03uwzkwyd4.png" id="article-link-2364562"> Deploying a Static E-commerce Site to AWS Using Pulumi </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(132, 206, 249, 0.10); --tag-prefix: #84CEF9; --tag-bg-hover: rgba(132, 206, 249, 0.10); --tag-prefix-hover: #84CEF9; " href="/t/devchallenge"><span class="crayons-tag__prefix">#</span>devchallenge</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(138, 51, 145, 0.10); --tag-prefix: #8a3391; --tag-bg-hover: rgba(138, 51, 145, 0.10); --tag-prefix-hover: #8a3391; " href="/t/pulumichallenge"><span class="crayons-tag__prefix">#</span>pulumichallenge</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(86, 39, 101, 0.10); --tag-prefix: #562765; --tag-bg-hover: rgba(86, 39, 101, 0.10); --tag-prefix-hover: #562765; " href="/t/webdev"><span class="crayons-tag__prefix">#</span>webdev</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(255, 153, 0, 0.10); --tag-prefix: #FF9900; --tag-bg-hover: rgba(255, 153, 0, 0.10); --tag-prefix-hover: #FF9900; " href="/t/cloud"><span class="crayons-tag__prefix">#</span>cloud</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/iamsherif/deploying-a-static-e-commerce-site-to-aws-using-pulumi-1nlf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Deploying a Static E-commerce Site to AWS Using Pulumi"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aj2jodwiudd6re7x69fehnfixes4jwnv" class="crayons-icon"><title id="aj2jodwiudd6re7x69fehnfixes4jwnv">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 4 min read </small> <button type="button" id="article-save-button-2364562" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2364562" data-article-author-id="1069965" aria-label="Save post Deploying a Static E-commerce Site to AWS Using Pulumi to reading list" title="Save post Deploying a Static E-commerce Site to AWS Using Pulumi to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384624" data-content-user-id="3021012"> <a href="https://dev.to/shodamola_habeeb_dadedd0f/5-common-mistakes-beginners-make-in-css-and-how-to-fix-them-229d" aria-labelledby="article-link-2384624" class="crayons-story__hidden-navigation-link">5 Common Mistakes Beginners Make in CSS (And How to Fix Them)</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/shodamola_habeeb_dadedd0f" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3021012%2F90d9c5b6-4dc2-406b-b7e5-c98dd1c5f1d9.png" alt="shodamola_habeeb_dadedd0f profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/shodamola_habeeb_dadedd0f" class="crayons-story__secondary fw-medium m:hidden"> Shodamola Habeeb </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384624" aria-controls="story-author-preview-content-2384624" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Shodamola Habeeb profile details"> Shodamola Habeeb </button> <div id="story-author-preview-content-2384624" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/shodamola_habeeb_dadedd0f" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3021012%2F90d9c5b6-4dc2-406b-b7e5-c98dd1c5f1d9.png" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Shodamola Habeeb</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":3021012,"className":"User","name":"Shodamola Habeeb"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="3021012"></div> </div> </div> </div> </div> <a href="https://dev.to/shodamola_habeeb_dadedd0f/5-common-mistakes-beginners-make-in-css-and-how-to-fix-them-229d" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T19:22:05Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743880925"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/shodamola_habeeb_dadedd0f/5-common-mistakes-beginners-make-in-css-and-how-to-fix-them-229d" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fexxxbd9xny8w2gwmoevo.png" id="article-link-2384624"> 5 Common Mistakes Beginners Make in CSS (And How to Fix Them) </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--filled " style=" --tag-bg: rgba(113, 234, 139, 0.10); --tag-prefix: #71EA8B; --tag-bg-hover: rgba(113, 234, 139, 0.10); --tag-prefix-hover: #71EA8B; " href="/t/discuss"><span class="crayons-tag__prefix">#</span>discuss</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(0, 131, 53, 0.10); --tag-prefix: #008335; --tag-bg-hover: rgba(0, 131, 53, 0.10); --tag-prefix-hover: #008335; " href="/t/beginners"><span class="crayons-tag__prefix">#</span>beginners</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(247, 223, 30, 0.10); --tag-prefix: #f7df1e; --tag-bg-hover: rgba(247, 223, 30, 0.10); --tag-prefix-hover: #f7df1e; " href="/t/javascript"><span class="crayons-tag__prefix">#</span>javascript</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(6, 181, 0, 0.10); --tag-prefix: #06B500; --tag-bg-hover: rgba(6, 181, 0, 0.10); --tag-prefix-hover: #06B500; " href="/t/devops"><span class="crayons-tag__prefix">#</span>devops</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/shodamola_habeeb_dadedd0f/5-common-mistakes-beginners-make-in-css-and-how-to-fix-them-229d" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="2384624" aria-label="Add a comment to post - 5 Common Mistakes Beginners Make in CSS (And How to Fix Them)"> <div class="multiple_reactions_aggregate"> <span class="multiple_reactions_icons_container" dir="rtl"> <span class="crayons_icon_container"> <img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> </span> </span> <span class="aggregate_reactions_counter">1<span class="hidden s:inline"> reaction</span></span> </div> </a> <a href="https://dev.to/shodamola_habeeb_dadedd0f/5-common-mistakes-beginners-make-in-css-and-how-to-fix-them-229d#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - 5 Common Mistakes Beginners Make in CSS (And How to Fix Them)"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ais0svksokh90j7dav416lck4z5xy1qw" class="crayons-icon"><title id="ais0svksokh90j7dav416lck4z5xy1qw">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2384624" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384624" data-article-author-id="3021012" aria-label="Save post 5 Common Mistakes Beginners Make in CSS (And How to Fix Them) to reading list" title="Save post 5 Common Mistakes Beginners Make in CSS (And How to Fix Them) to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384783" data-content-user-id="2910590"> <a href="https://dev.to/kallileiser/how-to-submit-a-bounty-on-gitcoin-a-comprehensive-guide-to-accelerating-open-source-development-4lg3" aria-labelledby="article-link-2384783" class="crayons-story__hidden-navigation-link">How to Submit a Bounty on Gitcoin: A Comprehensive Guide to Accelerating Open Source Development</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/kallileiser" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2910590%2F388118b2-65c5-45da-a53c-072b039c92be.jpg" alt="kallileiser profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/kallileiser" class="crayons-story__secondary fw-medium m:hidden"> kallileiser </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384783" aria-controls="story-author-preview-content-2384783" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="kallileiser profile details"> kallileiser </button> <div id="story-author-preview-content-2384783" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/kallileiser" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2910590%2F388118b2-65c5-45da-a53c-072b039c92be.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">kallileiser</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":2910590,"className":"User","name":"kallileiser"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="2910590"></div> </div> </div> </div> </div> <a href="https://dev.to/kallileiser/how-to-submit-a-bounty-on-gitcoin-a-comprehensive-guide-to-accelerating-open-source-development-4lg3" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:47:48Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743886068"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/kallileiser/how-to-submit-a-bounty-on-gitcoin-a-comprehensive-guide-to-accelerating-open-source-development-4lg3" data-preload-image="" id="article-link-2384783"> How to Submit a Bounty on Gitcoin: A Comprehensive Guide to Accelerating Open Source Development </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/gitcoin"><span class="crayons-tag__prefix">#</span>gitcoin</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(17, 58, 98, 0.10); --tag-prefix: #113a62; --tag-bg-hover: rgba(17, 58, 98, 0.10); --tag-prefix-hover: #113a62; " href="/t/blockchain"><span class="crayons-tag__prefix">#</span>blockchain</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(38, 190, 0, 0.10); --tag-prefix: #26BE00; --tag-bg-hover: rgba(38, 190, 0, 0.10); --tag-prefix-hover: #26BE00; " href="/t/opensource"><span class="crayons-tag__prefix">#</span>opensource</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/kallileiser/how-to-submit-a-bounty-on-gitcoin-a-comprehensive-guide-to-accelerating-open-source-development-4lg3#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - How to Submit a Bounty on Gitcoin: A Comprehensive Guide to Accelerating Open Source Development"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a3asm56mf7qaj5oi991hjsuzahvtohx5" class="crayons-icon"><title id="a3asm56mf7qaj5oi991hjsuzahvtohx5">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 9 min read </small> <button type="button" id="article-save-button-2384783" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384783" data-article-author-id="2910590" aria-label="Save post How to Submit a Bounty on Gitcoin: A Comprehensive Guide to Accelerating Open Source Development to reading list" title="Save post How to Submit a Bounty on Gitcoin: A Comprehensive Guide to Accelerating Open Source Development to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384760" data-content-user-id="2709699"> <a href="https://dev.to/wanderbatistaf/introducing-wborm-a-lightweight-orm-with-automatic-introspection-for-jdbc-databases-13h" aria-labelledby="article-link-2384760" class="crayons-story__hidden-navigation-link">Introducing WBORM: A lightweight ORM with automatic introspection for JDBC databases 🧩</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/wanderbatistaf" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2709699%2F4a4af349-7255-4b02-83a2-4f7f8bc613d1.jpg" alt="wanderbatistaf profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/wanderbatistaf" class="crayons-story__secondary fw-medium m:hidden"> Wanderson Batista </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384760" aria-controls="story-author-preview-content-2384760" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Wanderson Batista profile details"> Wanderson Batista </button> <div id="story-author-preview-content-2384760" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/wanderbatistaf" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2709699%2F4a4af349-7255-4b02-83a2-4f7f8bc613d1.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Wanderson Batista</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":2709699,"className":"User","name":"Wanderson Batista"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="2709699"></div> </div> </div> </div> </div> <a href="https://dev.to/wanderbatistaf/introducing-wborm-a-lightweight-orm-with-automatic-introspection-for-jdbc-databases-13h" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:31:45Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743885105"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/wanderbatistaf/introducing-wborm-a-lightweight-orm-with-automatic-introspection-for-jdbc-databases-13h" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbj2aeby9i71li70ed2ib.png" id="article-link-2384760"> Introducing WBORM: A lightweight ORM with automatic introspection for JDBC databases 🧩 </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(30, 56, 187, 0.10); --tag-prefix: #1E38BB; --tag-bg-hover: rgba(30, 56, 187, 0.10); --tag-prefix-hover: #1E38BB; " href="/t/python"><span class="crayons-tag__prefix">#</span>python</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/informix"><span class="crayons-tag__prefix">#</span>informix</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/jdbc"><span class="crayons-tag__prefix">#</span>jdbc</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(38, 190, 0, 0.10); --tag-prefix: #26BE00; --tag-bg-hover: rgba(38, 190, 0, 0.10); --tag-prefix-hover: #26BE00; " href="/t/opensource"><span class="crayons-tag__prefix">#</span>opensource</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/wanderbatistaf/introducing-wborm-a-lightweight-orm-with-automatic-introspection-for-jdbc-databases-13h#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Introducing WBORM: A lightweight ORM with automatic introspection for JDBC databases 🧩"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="acum21guz798jgs7hqoof9iwngapflba" class="crayons-icon"><title id="acum21guz798jgs7hqoof9iwngapflba">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 2 min read </small> <button type="button" id="article-save-button-2384760" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384760" data-article-author-id="2709699" aria-label="Save post Introducing WBORM: A lightweight ORM with automatic introspection for JDBC databases 🧩 to reading list" title="Save post Introducing WBORM: A lightweight ORM with automatic introspection for JDBC databases 🧩 to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2382867" data-content-user-id="1424685"> <a href="https://dev.to/iameminmammadov/distributed-model-serving-patterns-43ml" aria-labelledby="article-link-2382867" class="crayons-story__hidden-navigation-link">Distributed Model Serving Patterns</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/iameminmammadov" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1424685%2F0dfe34b7-1db7-4fc2-9b49-ac2ea7712e92.jpeg" alt="iameminmammadov profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/iameminmammadov" class="crayons-story__secondary fw-medium m:hidden"> Emin Mammadov </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2382867" aria-controls="story-author-preview-content-2382867" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Emin Mammadov profile details"> Emin Mammadov </button> <div id="story-author-preview-content-2382867" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/iameminmammadov" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1424685%2F0dfe34b7-1db7-4fc2-9b49-ac2ea7712e92.jpeg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Emin Mammadov</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":1424685,"className":"User","name":"Emin Mammadov"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="1424685"></div> </div> </div> </div> </div> <a href="https://dev.to/iameminmammadov/distributed-model-serving-patterns-43ml" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:33:07Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743885187"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/iameminmammadov/distributed-model-serving-patterns-43ml" data-preload-image="" id="article-link-2382867"> Distributed Model Serving Patterns </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(0, 102, 102, 0.10); --tag-prefix: #006666; --tag-bg-hover: rgba(0, 102, 102, 0.10); --tag-prefix-hover: #006666; " href="/t/distributedsystems"><span class="crayons-tag__prefix">#</span>distributedsystems</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/mlops"><span class="crayons-tag__prefix">#</span>mlops</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(229, 255, 227, 0.10); --tag-prefix: #E5FFE3; --tag-bg-hover: rgba(229, 255, 227, 0.10); --tag-prefix-hover: #E5FFE3; " href="/t/machinelearning"><span class="crayons-tag__prefix">#</span>machinelearning</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/dataengineering"><span class="crayons-tag__prefix">#</span>dataengineering</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/iameminmammadov/distributed-model-serving-patterns-43ml#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Distributed Model Serving Patterns"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="abecnxq7jq0ajvejnw8viv4p32v86t19" class="crayons-icon"><title id="abecnxq7jq0ajvejnw8viv4p32v86t19">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 4 min read </small> <button type="button" id="article-save-button-2382867" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2382867" data-article-author-id="1424685" aria-label="Save post Distributed Model Serving Patterns to reading list" title="Save post Distributed Model Serving Patterns to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384776" data-content-user-id="2959272"> <a href="https://dev.to/e00049/day-15-static-vs-non-static-methods-global-vs-local-variables-in-java-4mji" aria-labelledby="article-link-2384776" class="crayons-story__hidden-navigation-link">Day-15: Static vs Non-Static Methods, Global vs Local Variables in Java</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/e00049" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2959272%2F2f122c9f-78af-4007-ab5b-4b90d36397a1.jpg" alt="e00049 profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/e00049" class="crayons-story__secondary fw-medium m:hidden"> silambarasan rajendran </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384776" aria-controls="story-author-preview-content-2384776" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="silambarasan rajendran profile details"> silambarasan rajendran </button> <div id="story-author-preview-content-2384776" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/e00049" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2959272%2F2f122c9f-78af-4007-ab5b-4b90d36397a1.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">silambarasan rajendran</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":2959272,"className":"User","name":"silambarasan rajendran"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="2959272"></div> </div> </div> </div> </div> <a href="https://dev.to/e00049/day-15-static-vs-non-static-methods-global-vs-local-variables-in-java-4mji" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:41:25Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743885685"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/e00049/day-15-static-vs-non-static-methods-global-vs-local-variables-in-java-4mji" data-preload-image="" id="article-link-2384776"> Day-15: Static vs Non-Static Methods, Global vs Local Variables in Java </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(137, 6, 6, 0.10); --tag-prefix: #890606; --tag-bg-hover: rgba(137, 6, 6, 0.10); --tag-prefix-hover: #890606; " href="/t/programming"><span class="crayons-tag__prefix">#</span>programming</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(126, 72, 16, 0.10); --tag-prefix: #7e4810; --tag-bg-hover: rgba(126, 72, 16, 0.10); --tag-prefix-hover: #7e4810; " href="/t/java"><span class="crayons-tag__prefix">#</span>java</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(245, 77, 39, 0.10); --tag-prefix: #F54D27; --tag-bg-hover: rgba(245, 77, 39, 0.10); --tag-prefix-hover: #F54D27; " href="/t/git"><span class="crayons-tag__prefix">#</span>git</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/method"><span class="crayons-tag__prefix">#</span>method</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/e00049/day-15-static-vs-non-static-methods-global-vs-local-variables-in-java-4mji#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Day-15: Static vs Non-Static Methods, Global vs Local Variables in Java"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ahe9ee2xfm4cvez7rklkavrvb9h2tmsu" class="crayons-icon"><title id="ahe9ee2xfm4cvez7rklkavrvb9h2tmsu">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2384776" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384776" data-article-author-id="2959272" aria-label="Save post Day-15: Static vs Non-Static Methods, Global vs Local Variables in Java to reading list" title="Save post Day-15: Static vs Non-Static Methods, Global vs Local Variables in Java to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384678" data-content-user-id="475046"> <a href="https://dev.to/marciojc/optimizing-aws-sam-nodejs-lambda-with-esbuild-1gm2" aria-labelledby="article-link-2384678" class="crayons-story__hidden-navigation-link">Optimizing AWS SAM Node.js Lambda with esbuild</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/marciojc" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F475046%2F560696a1-2a1e-4845-bab9-d63ad6bbe516.jpeg" alt="marciojc profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/marciojc" class="crayons-story__secondary fw-medium m:hidden"> Márcio Coelho </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384678" aria-controls="story-author-preview-content-2384678" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Márcio Coelho profile details"> Márcio Coelho </button> <div id="story-author-preview-content-2384678" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/marciojc" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F475046%2F560696a1-2a1e-4845-bab9-d63ad6bbe516.jpeg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Márcio Coelho</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":475046,"className":"User","name":"Márcio Coelho"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="475046"></div> </div> </div> </div> </div> <a href="https://dev.to/marciojc/optimizing-aws-sam-nodejs-lambda-with-esbuild-1gm2" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:16:57Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743884217"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/marciojc/optimizing-aws-sam-nodejs-lambda-with-esbuild-1gm2" data-preload-image="https://media2.dev.to/dynamic/image/width=1000,height=1000,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftmup56bbjje8s75ajrqt.jpg" id="article-link-2384678"> Optimizing AWS SAM Node.js Lambda with esbuild </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(33, 43, 58, 0.10); --tag-prefix: #212b3a; --tag-bg-hover: rgba(33, 43, 58, 0.10); --tag-prefix-hover: #212b3a; " href="/t/aws"><span class="crayons-tag__prefix">#</span>aws</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(61, 136, 54, 0.10); --tag-prefix: #3d8836; --tag-bg-hover: rgba(61, 136, 54, 0.10); --tag-prefix-hover: #3d8836; " href="/t/node"><span class="crayons-tag__prefix">#</span>node</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/lambda"><span class="crayons-tag__prefix">#</span>lambda</a> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(59, 73, 223, 0.10); --tag-prefix: #3b49df; --tag-bg-hover: rgba(59, 73, 223, 0.10); --tag-prefix-hover: #3b49df; " href="/t/awssam"><span class="crayons-tag__prefix">#</span>awssam</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/marciojc/optimizing-aws-sam-nodejs-lambda-with-esbuild-1gm2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - Optimizing AWS SAM Node.js Lambda with esbuild"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aolt5l04g72n2s5cpo8zkocxxypyi3e6" class="crayons-icon"><title id="aolt5l04g72n2s5cpo8zkocxxypyi3e6">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 2 min read </small> <button type="button" id="article-save-button-2384678" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384678" data-article-author-id="475046" aria-label="Save post Optimizing AWS SAM Node.js Lambda with esbuild to reading list" title="Save post Optimizing AWS SAM Node.js Lambda with esbuild to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="crayons-story " data-feed-content-id="2384681" data-content-user-id="3003886"> <a href="https://dev.to/juan_krupechacke_f0c6537e/game5vfernandaimersao-de-juan-krupechacke-1je2" aria-labelledby="article-link-2384681" class="crayons-story__hidden-navigation-link">game5_VFernanda_imersão de Juan Krupechacke</a> <div class="crayons-story__body"> <div class="crayons-story__top"> <div class="crayons-story__meta"> <div class="crayons-story__author-pic"> <a href="/juan_krupechacke_f0c6537e" class="crayons-avatar crayons-avatar--l "> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3003886%2F1f2c4860-3bc6-4f02-8ba6-752c4f9f20e3.jpg" alt="juan_krupechacke_f0c6537e profile" class="crayons-avatar__image" loading="lazy" /> </a> </div> <div> <div> <a href="/juan_krupechacke_f0c6537e" class="crayons-story__secondary fw-medium m:hidden"> Juan Krupechacke </a> <div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"> <button id="story-author-preview-trigger-2384681" aria-controls="story-author-preview-content-2384681" class="profile-preview-card__trigger fs-s p-1 -ml-1 -my-2 crayons-btn crayons-btn--ghost" aria-label="Juan Krupechacke profile details"> Juan Krupechacke </button> <div id="story-author-preview-content-2384681" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0" style="border-top-color: var(--card-color);" data-repositioning-dropdown="true" data-testid="profile-preview-card"> <div class="gap-4 grid"> <div class="-mt-4"> <a href="/juan_krupechacke_f0c6537e" class="flex"> <span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"> <img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3003886%2F1f2c4860-3bc6-4f02-8ba6-752c4f9f20e3.jpg" class="crayons-avatar__image" alt="" loading="lazy" /> </span> <span class="crayons-link crayons-subtitle-2 mt-5">Juan Krupechacke</span> </a> </div> <div class="print-hidden"> <button class="crayons-btn follow-action-button whitespace-nowrap follow-user w-100" data-info='{"style":"full","id":3003886,"className":"User","name":"Juan Krupechacke"}'> Follow </button> </div> <div class="author-preview-metadata-container" data-author-id="3003886"></div> </div> </div> </div> </div> <a href="https://dev.to/juan_krupechacke_f0c6537e/game5vfernandaimersao-de-juan-krupechacke-1je2" class="crayons-story__tertiary fs-xs"><time datetime="2025-04-05T20:16:04Z">Apr 5</time><span class="time-ago-indicator-initial-placeholder" data-seconds="1743884164"></span></a> </div> </div> </div> <div class="crayons-story__indention"> <h2 class="crayons-story__title"> <a href="https://dev.to/juan_krupechacke_f0c6537e/game5vfernandaimersao-de-juan-krupechacke-1je2" data-preload-image="" id="article-link-2384681"> game5_VFernanda_imersão de Juan Krupechacke </a> </h2> <div class="crayons-story__tags"> <a class="crayons-tag crayons-tag--monochrome " style=" --tag-bg: rgba(173, 32, 163, 0.10); --tag-prefix: #ad20a3; --tag-bg-hover: rgba(173, 32, 163, 0.10); --tag-prefix-hover: #ad20a3; " href="/t/codepen"><span class="crayons-tag__prefix">#</span>codepen</a> </div> <div class="crayons-story__bottom"> <div class="crayons-story__details"> <a href="https://dev.to/juan_krupechacke_f0c6537e/game5vfernandaimersao-de-juan-krupechacke-1je2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center" aria-label="Add a comment to post - game5_VFernanda_imersão de Juan Krupechacke"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a5hpzpfs5pvcrw7xjtnnet3xkyxzp81j" class="crayons-icon"><title id="a5hpzpfs5pvcrw7xjtnnet3xkyxzp81j">Comments</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg> <span class="hidden s:inline">Add Comment</span> </a> </div> <div class="crayons-story__save"> <small class="crayons-story__tertiary fs-xs mr-2"> 1 min read </small> <button type="button" id="article-save-button-2384681" class="c-btn c-btn--icon-alone bookmark-button" data-reactable-id="2384681" data-article-author-id="3003886" aria-label="Save post game5_VFernanda_imersão de Juan Krupechacke to reading list" title="Save post game5_VFernanda_imersão de Juan Krupechacke to reading list"> <span class="bm-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75zM16.5 6h-9v11.574l4.5-2.82 4.5 2.82V6z"></path></svg> </span> <span class="bm-success"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true"><path d="M6.75 4.5h10.5a.75.75 0 01.75.75v14.357a.375.375 0 01-.575.318L12 16.523l-5.426 3.401A.375.375 0 016 19.607V5.25a.75.75 0 01.75-.75z"></path></svg> </span> </button> </div> </div> </div> </div> </div> <div class="placeholder-div"></div> <div class="single-article-small-pic" id="article-index-hidden-div" style="display:none"></div> </div> <script src="https://assets.dev.to/assets/homePageFeedShortcuts-f7364bc2d6cb139c03e7fe80e32782ba5af34857d2b308e3caa8d902e579a3af.js" defer="defer"></script> <script src="https://assets.dev.to/assets/feedPreviewCards-8d16b0b656456a28c0a290f756cf6e21e19833111c4796f48c631bfea8323d51.js" defer="defer"></script> <div id="followed-podcasts" data-episodes="null"></div> <div class="loading-articles" id="loading-articles"> loading... </div> </main> <div id="sidebar-wrapper-right" class="sidebar-wrapper sidebar-wrapper-right crayons-layout__sidebar-right crayons-layout__content"> <aside class="side-bar sidebar-additional showing grid gap-4" id="sidebar-additional"> </aside> </div> </div> <script src="https://assets.dev.to/assets/storiesList-b9c50cbd898a3a64258a3a49db1c531651b0a4a11937be35ed4651111802b5b5.js" defer="defer"></script> <script src="https://assets.dev.to/assets/followButtons-f2455d1f50a862b83fa006b1953e3a1644598781243cae25d3e75b13c04184fd.js" defer="defer"></script> <script src="https://assets.dev.to/assets/feedPreviewCards-8d16b0b656456a28c0a290f756cf6e21e19833111c4796f48c631bfea8323d51.js" defer="defer"></script> <script src="https://assets.dev.to/assets/heroBannerClose-08daef9d8f6109d73b3876fb088e26e5a46a047f93d787c38871fdbfbfc56e95.js" defer="defer"></script> <script src="https://assets.dev.to/assets/localizeArticleDates-70147c5c6bfe350b42e020ebb2a3dd37419d83978982b5a67b6389119bf162ac.js" defer="defer"></script> <script src="https://assets.dev.to/assets/feedEvents-a261980d186baaa8a38bc641ab1f21cd7e94efa28d0c50a060195c7811afdfc1.js" defer="defer"></script> <div id="runtime-banner-container"></div> </div> </div> <footer id="footer" class="crayons-footer print-hidden"> <div id="footer-container" class="crayons-footer__container"> <style> .long-bb-body { max-height: calc(100vh - 200px); overflow: hidden; } .long-bb-bottom { height: 180px; background: linear-gradient(to top, var(--card-bg), transparent); margin-top: -180px; position:relative; z-index: 5; } </style> <div style="" data-display-unit data-id="146443" data-category-click="click" data-category-impression="impression" data-context-type="home" data-special="nothing" data-article-id="" data-type-of="in_house"> <p style="font-weight: bold;margin-bottom: 10px"> Thank you to our Diamond Sponsor <a href="https://neon.tech/?bb=146443">Neon</a> for supporting our community. </p> </div> <p class="fs-s crayons-footer__description"> <a class="c-link c-link--branded fw-medium" aria-label="Forem Home" href="/">Forem</a> — A blogging-forward open source social network where our members connect and learn from one another </p> <ul class="footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0" style="" /> <li class="footer__nav-link flex items-center"> <a href="/"> Home </a> <span class="dot ml-2"></span> </li> <li class="footer__nav-link flex items-center"> <a href="/tags"> Tags </a> <span class="dot ml-2"></span> </li> <li class="footer__nav-link flex items-center"> <a href="/about"> About </a> <span class="dot ml-2"></span> </li> <li class="footer__nav-link flex items-center"> <a href="/contact"> Contact </a> <span class="dot ml-2"></span> </li> </ul> <ul class="footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0" style="" /> <li class="footer__nav-link flex items-center"> <a href="/code-of-conduct"> Code of Conduct </a> <span class="dot ml-2"></span> </li> <li class="footer__nav-link flex items-center"> <a href="/privacy"> Privacy Policy </a> <span class="dot ml-2"></span> </li> <li class="footer__nav-link flex items-center"> <a href="/terms"> Terms of use </a> <span class="dot ml-2"></span> </li> </ul> <div class="fs-s"> <p>Built on <a class="c-link c-link--branded" target="_blank" rel="noopener" href="https://www.forem.com">Forem</a> — the <a target="_blank" rel="noopener" class="c-link c-link--branded" href="https://dev.to/t/opensource">open source</a> software that powers <a target="_blank" rel="noopener" class="c-link c-link--branded" href="https://dev.to">DEV</a> and other inclusive communities.</p> <p>Made with love and <a target="_blank" rel="noopener" class="c-link c-link--branded" href="https://dev.to/t/rails">Ruby on Rails</a>. Forem <span title="copyright">©</span> 2016 - 2025.</p> </div> </div> </footer> <div id="snack-zone"></div> <div id="global-signup-modal" class="authentication-modal hidden"> <div class="authentication-modal__container"> <figure class="authentication-modal__image-container"> <img class="authentication-modal__image" src="https://media2.dev.to/dynamic/image/width=190,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalhydbusoe2o1pzxfwj.png" alt="Forem" loading="lazy" /> </figure> <div class="authentication-modal__content"> <p class="authentication-modal__description"> We're a blogging-forward open source social network where we learn from one another </p> </div> <div class="authentication-modal__actions"> <a href="/enter" class="crayons-btn" aria-label="Log in" data-no-instant> Log in </a> <a href="/enter?state=new-user" class="crayons-btn crayons-btn--ghost-brand js-global-signup-modal__create-account" aria-label="Create new account" data-no-instant> Create account </a> </div> </div> </div> <script src="https://assets.dev.to/assets/signupModalShortcuts-0b25469b985100a01e94cbd7fccaf7f0a4d776e129aac65c766aa32cb28ab29a.js" defer="defer"></script> <div id="cookie-consent"></div> <div id="i18n-translations" data-translations="{"en":{"core":{"add_comment":"Add comment","beta":"beta","comment":"Comment","copy_link":"Copy link","edit_profile":"Edit profile","follow":"Follow","follow_back":"Follow back","following":"Following","like":"Like","loading":"loading...","reaction":"Reaction","report_abuse":"Report abuse","search":"Search","success_settings":"Successfully updated settings.","counted_organization":{"one":"%{count} organization","other":"%{count} organizations"},"counted_user":{"one":"%{count} person","other":"%{count} people"},"not_following":"You're not following anyone","following_everyone":"You're following %{details} (everyone)","you_are_following":"You're following","and":"and"}}}"></div> <div id="reaction-category-resources" class="hidden" aria-hidden="true"> <img data-name="Like" data-slug="like" data-position="1" src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18" /> <img data-name="Unicorn" data-slug="unicorn" data-position="2" src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18" /> <img data-name="Exploding Head" data-slug="exploding_head" data-position="3" src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18" /> <img data-name="Raised Hands" data-slug="raised_hands" data-position="4" src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18" /> <img data-name="Fire" data-slug="fire" data-position="5" src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18" /> </div> <script> var userSignedIn = false; if (document.readyState === 'complete' || document.readyState === 'interactive') { initAuth(); } else { document.addEventListener('DOMContentLoaded', initAuth); } function initAuth() { var paramToken = new URLSearchParams(window.location.search).get('jwt'); if (paramToken && !userSignedIn) { authenticateUser(paramToken); } else { var iframe = document.createElement('iframe'); iframe.style.display = 'none'; iframe.src = 'https://dev.to/auth_pass/iframe'; document.body.appendChild(iframe); window.addEventListener('message', function(event) { if (event.origin !== 'https://dev.to' && event.origin !== window.location.origin) { return; } var data = event.data; if (data.authenticated && !userSignedIn) { authenticateUser(data.token); } else if(data.authenticated && window.ReactNativeWebView && window.ReactNativeWebView.postMessage) { window.ReactNativeWebView.postMessage(JSON.stringify({ action: 'login', token: data.token, })); } }); } function authenticateUser(token) { fetch('/auth_pass/token_login', { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/json', 'X-CSRF-Token': getMetaContent('csrf-token'), }, body: JSON.stringify({ token: token }), }) .then(function(response) { return response.json(); }) .then(function(data) { if (data.success) { if (document.head.querySelector('meta[name="user-signed-in"][content="false"]')) { // Reload the page to update the user's state location.reload(); } } }) .catch(function(error) { console.error('Error during authentication:', error); }); } function getMetaContent(name) { var element = document.querySelector('meta[name="' + name + '"]'); return element ? element.getAttribute('content') : ''; } } </script> </body> </html>