CINXE.COM

<!doctype html><html lang="en"><head><title data-rh="true">Angular Blog</title><meta data-rh="true" charset="utf-8"/><meta data-rh="true" name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,maximum-scale=1"/><meta data-rh="true" name="theme-color" content="#000000"/><meta data-rh="true" name="twitter:app:name:iphone" content="Medium"/><meta data-rh="true" name="twitter:app:id:iphone" content="828256236"/><meta data-rh="true" property="al:ios:app_name" content="Medium"/><meta data-rh="true" property="al:ios:app_store_id" content="828256236"/><meta data-rh="true" property="al:android:package" content="com.medium.reader"/><meta data-rh="true" property="al:android:app_name" content="Medium"/><meta data-rh="true" property="fb:app_id" content="542599432471018"/><meta data-rh="true" name="title" content="Angular Blog"/><meta data-rh="true" name="description" content="The latest news and tips from the Angular team"/><meta data-rh="true" name="twitter:card" content="summary_large_image"/><meta data-rh="true" name="twitter:creator" content="@angular"/><meta data-rh="true" name="twitter:description" content="The latest news and tips from the Angular team"/><meta data-rh="true" name="twitter:image:src" content="https://miro.medium.com/v2/resize:fit:800/1*uJa0SU-F2NXVKhHTbP1HBw.png"/><meta data-rh="true" name="twitter:site" content="@angular"/><meta data-rh="true" name="twitter:title" content="Angular Blog"/><meta data-rh="true" property="og:description" content="The latest news and tips from the Angular team"/><meta data-rh="true" property="og:image" content="https://miro.medium.com/v2/resize:fit:800/1*uJa0SU-F2NXVKhHTbP1HBw.png"/><meta data-rh="true" property="og:site_name" content="Angular Blog"/><meta data-rh="true" property="og:title" content="Angular Blog"/><meta data-rh="true" property="og:type" content="website"/><meta data-rh="true" property="og:url" content="https://blog.angular.dev"/><meta data-rh="true" property="medium-com:creator" content="https://medium.com/@angularteam"/><meta data-rh="true" name="keywords" content=""/><meta data-rh="true" name="twitter:app:url:iphone" content="medium://angular-blog"/><meta data-rh="true" property="al:android:url" content="medium://angular-blog"/><meta data-rh="true" property="al:ios:url" content="medium://angular-blog"/><meta data-rh="true" property="al:web:url" content="https://blog.angular.dev"/><meta data-rh="true" name="robots" content="index,follow"/><link data-rh="true" rel="icon" href="https://miro.medium.com/v2/resize:fill:256:256/1*uJa0SU-F2NXVKhHTbP1HBw.png"/><link data-rh="true" rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml"/><link data-rh="true" rel="apple-touch-icon" sizes="152x152" href="https://miro.medium.com/v2/resize:fill:304:304/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="120x120" href="https://miro.medium.com/v2/resize:fill:240:240/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="76x76" href="https://miro.medium.com/v2/resize:fill:152:152/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="60x60" href="https://miro.medium.com/v2/resize:fill:120:120/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="mask-icon" href="https://miro.medium.com/v2/resize:fill:1000:1000/7*GAOKVe--MXbEJmV9230oOQ.png" color="#171717"/><link data-rh="true" id="glyph_preload_link" rel="preload" as="style" type="text/css" href="https://glyph.medium.com/css/unbound.css"/><link data-rh="true" id="glyph_link" rel="stylesheet" type="text/css" href="https://glyph.medium.com/css/unbound.css"/><link data-rh="true" rel="alternate" type="application/rss+xml" title="RSS" href="https://blog.angular.dev/feed"/><link data-rh="true" rel="canonical" href="https://blog.angular.dev"/><script data-rh="true" type="application/ld+json">{"@context":"http:\u002F\u002Fschema.org","@type":"Organization","name":"Angular Blog","url":"blog.angular.dev","logo":{"@type":"ImageObject","width":60,"height":60,"url":"https:\u002F\u002Fmiro.medium.com\u002Fv2\u002Fresize:fit:120\u002F1*uJa0SU-F2NXVKhHTbP1HBw.png"}}</script><style type="text/css" data-fela-rehydration="407" data-fela-type="STATIC">html{box-sizing:border-box;-webkit-text-size-adjust:100%}*, *:before, *:after{box-sizing:inherit}body{margin:0;padding:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:rgba(0,0,0,0.8);position:relative;min-height:100vh}h1, h2, h3, h4, h5, h6, dl, dd, ol, ul, menu, figure, blockquote, p, pre, form{margin:0}menu, ol, ul{padding:0;list-style:none;list-style-image:none}main{display:block}a{color:inherit;text-decoration:none}a, button, input{-webkit-tap-highlight-color:transparent}img, svg{vertical-align:middle}button{background:transparent;overflow:visible}button, input, optgroup, select, textarea{margin:0}:root{--reach-tabs:1;--reach-menu-button:1}#speechify-root{font-family:Sohne, sans-serif}div[data-popper-reference-hidden="true"]{visibility:hidden;pointer-events:none}.grecaptcha-badge{visibility:hidden} /*XCode style (c) Angel Garcia <angelgarcia.mail@gmail.com>*/.hljs {background: #fff;color: black; }/* Gray DOCTYPE selectors like WebKit */ .xml .hljs-meta {color: #c0c0c0; }.hljs-comment, .hljs-quote {color: #007400; }.hljs-tag, .hljs-attribute, .hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-name {color: #aa0d91; }.hljs-variable, .hljs-template-variable {color: #3F6E74; }.hljs-code, .hljs-string, .hljs-meta .hljs-string {color: #c41a16; }.hljs-regexp, .hljs-link {color: #0E0EFF; }.hljs-title, .hljs-symbol, .hljs-bullet, .hljs-number {color: #1c00cf; }.hljs-section, .hljs-meta {color: #643820; }.hljs-title.class_, .hljs-class .hljs-title, .hljs-type, .hljs-built_in, .hljs-params {color: #5c2699; }.hljs-attr {color: #836C28; }.hljs-subst {color: #000; }.hljs-formula {background-color: #eee;font-style: italic; }.hljs-addition {background-color: #baeeba; }.hljs-deletion {background-color: #ffc8bd; }.hljs-selector-id, .hljs-selector-class {color: #9b703f; }.hljs-doctag, .hljs-strong {font-weight: bold; }.hljs-emphasis {font-style: italic; } </style><style type="text/css" data-fela-rehydration="407" data-fela-type="KEYFRAME">@-webkit-keyframes k1{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@-moz-keyframes k1{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes k1{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE">.a{font-family:medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif}.b{font-weight:400}.c{background-color:rgba(255, 255, 255, 1)}.l{height:100vh}.m{width:100%}.n{display:flex}.o{align-items:center}.p{justify-content:center}.q{width:40px}.r{height:40px}.s{border-radius:50%}.t{border-width:2px}.u{border-style:solid}.v{border-color:#242424 transparent #242424 #242424}.w{animation:k1 2s infinite linear;}.x{display:block}.y{position:sticky}.z{top:0}.ab{z-index:500}.ac{padding:0 24px}.ae{border-bottom:solid 1px #F2F2F2}.al{height:41px}.am{line-height:20px}.an{margin-left:8px}.ao{color:#6B6B6B}.ap{fill:inherit}.aq{font-size:13px}.ar{font-family:sohne, "Helvetica Neue", Helvetica, Arial, sans-serif}.as{letter-spacing:inherit}.at{padding:0}.au{margin:0}.av{cursor:pointer}.aw:disabled{cursor:not-allowed}.ax:disabled{color:#6B6B6B}.ay:disabled{fill:#6B6B6B}.bb{height:100%}.bt{color:#FFFFFF}.bu{fill:#FFFFFF}.bv{background:#1A8917}.bw{border-color:#1A8917}.ca:disabled{cursor:inherit !important}.cb:disabled{opacity:0.3}.cc:disabled:hover{background:#1A8917}.cd:disabled:hover{border-color:#1A8917}.ce{border-radius:99em}.cf{border-width:1px}.cg{box-sizing:border-box}.ch{display:inline-block}.ci{text-decoration:none}.cj{text-align:center}.ck{margin-left:16px}.cl{color:inherit}.cm{font-size:inherit}.cn{border:inherit}.co{font-family:inherit}.cp{font-weight:inherit}.cq{height:57px}.cr{flex:1 0 auto}.cs{width:auto}.ct path{fill:#242424}.cu{height:25px}.cv{border:none}.cw{border-radius:20px}.cx{width:240px}.cy{background:#F9F9F9}.cz path{fill:#6B6B6B}.db{outline:none}.dc{font-size:14px}.dd{padding:10px 20px 10px 0}.de{background-color:transparent}.df{color:#242424}.dg::placeholder{color:#6B6B6B}.dh{margin-left:12px}.di{margin-right:12px}.dl{margin-right:32px}.dm{position:relative}.dn{fill:#6B6B6B}.dq{background:transparent}.dr svg{margin-left:4px}.ds svg{fill:#6B6B6B}.du{box-shadow:inset 0 0 0 1px rgba(0, 0, 0, 0.05)}.dv{height:32px}.dw{width:32px}.dx{position:absolute}.dz{background-color:#F2F2F2}.ea{margin:auto}.eb{max-width:1336px}.ec{flex-direction:row}.ed{justify-content:space-evenly}.ek{flex:1 1 auto}.el{padding-right:24px}.fe{border-left:1px solid #F2F2F2}.ff{min-height:100vh}.fg{background:rgba(164, 80, 255, 1)}.fh{border-color:rgba(164, 80, 255, 1)}.fk:disabled:hover{background:rgba(164, 80, 255, 1)}.fl:disabled:hover{border-color:rgba(164, 80, 255, 1)}.fm{flex-direction:column}.fn{min-width:0}.fo{margin:0 24px}.fs{box-shadow:inset 0 -1px 0 #F2F2F2}.gv{justify-content:flex-start}.gw{margin-right:20px}.gx{align-self:flex-start}.gy{flex:0 0 auto}.gz{border-radius:2px}.ha{height:48px}.hb{width:48px}.hd{font-weight:500}.id{overflow:hidden}.ie{text-overflow:ellipsis}.if{display:-webkit-box}.ig{-webkit-box-orient:vertical}.ih{word-break:break-word}.ij{color:rgba(25, 25, 25, 1)}.ik{padding-right:8px}.in{margin-top:2px}.io{margin-top:8px}.ip{font-size:16px}.iq{line-height:24px}.ix{padding:8px 16px}.iy{overflow-x:scroll}.iz{overflow-y:hidden}.ja::-webkit-scrollbar{height:0}.jb::-webkit-scrollbar{width:0}.jc::-webkit-scrollbar{background:transparent}.jd{scrollbar-width:none}.je{-ms-overflow-style:none}.jf{min-width:-webkit-max-content}.jg{padding:0px}.ji{padding-bottom:16px}.jj{border-bottom:1px solid #242424}.jk{min-width:max-content}.jl{border-bottom:1px solid #F2F2F2}.jm{right:0}.jn{bottom:12px}.jo{padding-left:44px}.jp{pointer-events:none}.jq{opacity:0}.jr{background:linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.75) 25%, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 1) 75%)}.js{margin:2px}.jt svg path{fill:#6B6B6B}.jv{left:0}.jw{padding-right:44px}.jx{background:linear-gradient(270deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.75) 25%, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 1) 75%)}.jy{padding:8px 0}.jz{box-sizing:content-box}.ka a{position:relative}.kb a{z-index:2}.kc button{position:relative}.kd button{z-index:2}.kj{margin-right:8px}.kk{height:20px}.kl{width:20px}.kn{max-height:20px}.ko{-webkit-line-clamp:1}.kp{word-break:break-all}.kq a{position:static}.kr a::before{content:""}.ks a::before{position:absolute}.kt a::before{z-index:1}.ku a::before{top:0}.kv a::before{left:0}.kw a::before{bottom:0}.kx a::before{right:0}.ky a{display:flex}.kz a{flex-direction:column}.la{font-weight:700}.lv{padding-top:8px}.lw{max-height:40px}.lx{-webkit-line-clamp:2}.mi{justify-content:space-between}.mj{max-width:200px}.mk{height:16px}.ml{opacity:1}.mm{transition:opacity 300ms ease-out}.mn{gap:16px}.mo{width:80px}.mp{gap:4px}.mq{justify-content:flex-end}.mr{flex:0 0 0}.mt{padding:12px}.mz{background-color:#F9F9F9}.na{padding-top:12px}.nb{height:0px}.nf{margin-top:32px}.nj{top:57px}.nk{min-height:calc(100vh - 57px)}.nl{padding-bottom:0px}.nm{border-bottom:none}.nn{margin-top:40px}.no{height:88px}.np{width:88px}.nq{flex-wrap:wrap}.nr{margin-right:16px}.ns{fill:#242424}.nt{letter-spacing:0}.nu{align-items:flex-start}.nv{margin-top:4px}.of{padding:5px 12px}.og{background:0}.oh{border-color:#242424}.ok:disabled:hover{color:#242424}.ol:disabled:hover{fill:#242424}.om:disabled:hover{border-color:#242424}.on{padding-top:16px}.oo{padding:24px 0}.op{margin-right:6px}.oq{font-size:11px}.or{line-height:16px}.az:hover:not(:disabled){color:rgba(25, 25, 25, 1)}.ba:hover:not(:disabled){fill:rgba(25, 25, 25, 1)}.bx:hover{background:#156D12}.by:hover{border-color:#156D12}.bz:hover{cursor:pointer}.do:hover{color:#242424}.dp:hover{fill:#242424}.dt:hover svg{fill:#242424}.dy:hover{background-color:rgba(0, 0, 0, 0.1)}.fi:hover{background:rgba(138, 77, 230, 1)}.fj:hover{border-color:rgba(138, 77, 230, 1)}.hc:hover{background-color:none}.jh:hover{color:#000000 !important}.ju:hover svg path{fill:#000000}.km:hover{text-decoration:underline}.ms:hover{color:#000000}.oi:hover{fill:#000000}.oj:hover{border-color:#242424}.da:focus-within path{fill:#242424}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE" media="all and (min-width: 1080px)">.d{display:none}.bk{font-size:14px}.bl{line-height:20px}.br{font-size:13px}.bs{padding:5px 12px}.dk{display:flex}.ee{max-width:728px}.ef{min-width:728px}.fa{padding-left:clamp(24px, 24px + 100vw - 1080px, 40px)}.fb{display:block}.fc{min-width:368px}.fd{max-width:368px}.fr{max-width:680px}.fx{margin:52px 0 48px}.gm{margin-bottom:40px}.gn{align-items:center}.go{justify-content:flex-end}.gp{flex-wrap:nowrap}.gu{margin-right:0}.hy{font-size:42px}.hz{line-height:52px}.ia{max-height:52px}.ib{-webkit-line-clamp:1}.ic{letter-spacing:-0.011em}.ki{margin-bottom:16px}.lq{font-size:24px}.lr{line-height:30px}.ls{max-height:90px}.lt{-webkit-line-clamp:3}.lu{letter-spacing:-0.016em}.mg{padding-top:10px}.mh{width:100%}.my{margin-left:56px}.ne{margin-top:20px}.ni{width:calc(100% - (160px + 56px))}.od{max-height:40px}.oe{-webkit-line-clamp:2}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE" media="all and (max-width: 1079.98px)">.e{display:none}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE" media="all and (max-width: 903.98px)">.f{display:none}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE" media="all and (max-width: 727.98px)">.g{display:none}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE" media="all and (max-width: 551.98px)">.h{display:none}.af{display:flex}.ag{justify-content:space-between}.bc{font-size:13px}.bd{line-height:20px}.bm{padding:0px 8px 1px}.ej{min-width:0}.em{padding-left:24px}.eo{min-width:352px}.ep{max-width:352px}.ft{margin:24px 0}.fy{margin-bottom:24px}.fz{align-items:flex-start}.ga{flex-wrap:wrap}.gq{margin-right:0}.he{font-size:24px}.hf{line-height:30px}.hg{max-height:120px}.hh{-webkit-line-clamp:4}.hi{letter-spacing:-0.016em}.il{flex-wrap:nowrap}.ir{margin-top:20px}.is{flex:0 0 100%}.ke{margin-bottom:16px}.lb{font-size:20px}.lc{line-height:24px}.ld{max-height:96px}.le{letter-spacing:0}.ly{padding-top:2px}.lz{width:100%}.mu{margin-left:24px}.nw{max-height:20px}.nx{-webkit-line-clamp:1}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE" media="all and (min-width: 904px) and (max-width: 1079.98px)">.i{display:none}.bi{font-size:14px}.bj{line-height:20px}.bp{font-size:13px}.bq{padding:5px 12px}.dj{display:flex}.eg{min-width:0}.ew{padding-left:24px}.ex{display:block}.ey{min-width:352px}.ez{max-width:352px}.fq{max-width:680px}.fw{margin:52px 0 48px}.gi{margin-bottom:40px}.gj{align-items:center}.gk{justify-content:flex-end}.gl{flex-wrap:nowrap}.gt{margin-right:16px}.ht{font-size:42px}.hu{line-height:52px}.hv{max-height:52px}.hw{-webkit-line-clamp:1}.hx{letter-spacing:-0.011em}.iw{flex:0 0 content}.kh{margin-bottom:16px}.ll{font-size:24px}.lm{line-height:30px}.ln{max-height:90px}.lo{-webkit-line-clamp:3}.lp{letter-spacing:-0.016em}.me{padding-top:10px}.mf{width:100%}.mx{margin-left:56px}.nd{margin-top:20px}.nh{width:calc(100% - (160px + 56px))}.oc{max-height:20px}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE" media="all and (min-width: 728px) and (max-width: 903.98px)">.j{display:none}.aj{display:flex}.ak{justify-content:space-between}.bg{font-size:13px}.bh{line-height:20px}.bo{padding:0px 8px 1px}.eh{min-width:0}.et{padding-left:24px}.eu{min-width:352px}.ev{max-width:352px}.fp{max-width:680px}.fv{margin:52px 0 48px}.ge{margin-bottom:40px}.gf{align-items:flex-start}.gg{justify-content:flex-end}.gh{flex-wrap:nowrap}.gs{margin-right:16px}.ho{font-size:24px}.hp{line-height:30px}.hq{max-height:120px}.hr{-webkit-line-clamp:4}.hs{letter-spacing:-0.016em}.iv{flex:0 0 content}.kg{margin-bottom:16px}.lj{max-height:90px}.lk{-webkit-line-clamp:3}.mc{padding-top:10px}.md{width:100%}.mw{margin-left:56px}.nc{margin-top:20px}.ng{width:calc(100% - (160px + 56px))}.oa{max-height:20px}.ob{-webkit-line-clamp:1}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE" media="all and (min-width: 552px) and (max-width: 727.98px)">.k{display:none}.ah{display:flex}.ai{justify-content:space-between}.be{font-size:13px}.bf{line-height:20px}.bn{padding:0px 8px 1px}.ei{min-width:0}.eq{padding-left:24px}.er{min-width:352px}.es{max-width:352px}.fu{margin:24px 0}.gb{margin-bottom:24px}.gc{align-items:flex-start}.gd{flex-wrap:wrap}.gr{margin-right:0}.hj{font-size:24px}.hk{line-height:30px}.hl{max-height:120px}.hm{-webkit-line-clamp:4}.hn{letter-spacing:-0.016em}.im{flex-wrap:nowrap}.it{margin-top:20px}.iu{flex:0 0 100%}.kf{margin-bottom:16px}.lf{font-size:20px}.lg{line-height:24px}.lh{max-height:96px}.li{letter-spacing:0}.ma{padding-top:2px}.mb{width:100%}.mv{margin-left:24px}.ny{max-height:20px}.nz{-webkit-line-clamp:1}</style><style type="text/css" data-fela-rehydration="407" data-fela-type="RULE" media="(orientation: landscape) and (max-width: 903.98px)">.ii{max-height:none}</style></head><body><div id="root"><div class="a b c"><div class="d e f g h i j k"></div><script>document.domain = document.domain;</script><div class="x c"><div class="x y z ab c"><div class="ac o ae af ag ah ai aj ak i d al am"><a class="ao ap aq ar as b at au av aw ax ay az ba af ah aj i d o bb am" href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fblog.angular.dev&amp;%7Efeature=LoOpenInAppButton&amp;%7Echannel=ShowCollectionHome&amp;source=---two_column_layout_nav-----------------------------------------" rel="noopener follow">Open in app<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="none" viewBox="0 0 10 10" class="an"><path fill="currentColor" d="M.985 8.485a.375.375 0 1 0 .53.53zM8.75 1.25h.375A.375.375 0 0 0 8.75.875zM8.375 6.5a.375.375 0 1 0 .75 0zM3.5.875a.375.375 0 1 0 0 .75zm-1.985 8.14 7.5-7.5-.53-.53-7.5 7.5zm6.86-7.765V6.5h.75V1.25zM3.5 1.625h5.25v-.75H3.5z"></path></svg></a><div class="n o"><p class="ar b bc bd be bf bg bh bi bj bk bl ao"><span><a class="ar b bc bd bm be bf bn bg bh bo bp bj bq br bl bs bt bu fg fh fi fj bz ca cb fk fl ce cf u cg ch ci cj" data-testid="headerSignUpButton" href="https://medium.com/m/signin?operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2F&amp;source=collection_home---two_column_layout_nav-----------------------global_nav------------------" rel="noopener follow">Sign up</a></span></p><div class="ck x"><p class="ar b bc bd be bf bg bh bi bj bk bl ao"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" data-testid="headerSignInButton" href="https://medium.com/m/signin?operation=login&amp;redirect=https%3A%2F%2Fblog.angular.dev%2F&amp;source=collection_home---two_column_layout_nav-----------------------global_nav------------------" rel="noopener follow">Sign in</a></span></p></div></div></div><div class="ac o ae n cq"><div class="n o cr"><a class="cl ap cm cn co as cp at au av aw ax ay az ba n" aria-label="Homepage" data-testid="headerMediumLogo" href="https://medium.com/?source=---two_column_layout_nav-----------------------------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="719" height="160" fill="none" viewBox="0 0 719 160" class="cs ct cu"><path fill="#242424" d="m174.104 9.734.215-.047V8.02H130.39L89.6 103.89 48.81 8.021H1.472v1.666l.212.047c8.018 1.81 12.09 4.509 12.09 14.242V137.93c0 9.734-4.087 12.433-12.106 14.243l-.212.047v1.671h32.118v-1.665l-.213-.048c-8.018-1.809-12.089-4.509-12.089-14.242V30.586l52.399 123.305h2.972l53.925-126.743V140.75c-.687 7.688-4.721 10.062-11.982 11.701l-.215.05v1.652h55.948v-1.652l-.215-.05c-7.269-1.639-11.4-4.013-12.087-11.701l-.037-116.774h.037c0-9.733 4.071-12.432 12.087-14.242m25.555 75.488c.915-20.474 8.268-35.252 20.606-35.507 3.806.063 6.998 1.312 9.479 3.714 5.272 5.118 7.751 15.812 7.368 31.793zm-.553 5.77h65.573v-.275c-.186-15.656-4.721-27.834-13.466-36.196-7.559-7.227-18.751-11.203-30.507-11.203h-.263c-6.101 0-13.584 1.48-18.909 4.16-6.061 2.807-11.407 7.003-15.855 12.511-7.161 8.874-11.499 20.866-12.554 34.343q-.05.606-.092 1.212a50 50 0 0 0-.065 1.151 85.807 85.807 0 0 0-.094 5.689c.71 30.524 17.198 54.917 46.483 54.917 25.705 0 40.675-18.791 44.407-44.013l-1.886-.664c-6.557 13.556-18.334 21.771-31.738 20.769-18.297-1.369-32.314-19.922-31.042-42.395m139.722 41.359c-2.151 5.101-6.639 7.908-12.653 7.908s-11.513-4.129-15.418-11.63c-4.197-8.053-6.405-19.436-6.405-32.92 0-28.067 8.729-46.22 22.24-46.22 5.657 0 10.111 2.807 12.236 7.704zm43.499 20.008c-8.019-1.897-12.089-4.722-12.089-14.951V1.309l-48.716 14.353v1.757l.299-.024c6.72-.543 11.278.386 13.925 2.83 2.072 1.915 3.082 4.853 3.082 8.987v18.66c-4.803-3.067-10.516-4.56-17.448-4.56-14.059 0-26.909 5.92-36.176 16.672-9.66 11.205-14.767 26.518-14.767 44.278-.003 31.72 15.612 53.039 38.851 53.039 13.595 0 24.533-7.449 29.54-20.013v16.865h43.711v-1.746zM424.1 19.819c0-9.904-7.468-17.374-17.375-17.374-9.859 0-17.573 7.632-17.573 17.374s7.721 17.374 17.573 17.374c9.907 0 17.375-7.47 17.375-17.374m11.499 132.546c-8.019-1.897-12.089-4.722-12.089-14.951h-.035V43.635l-43.714 12.551v1.705l.263.024c9.458.842 12.047 4.1 12.047 15.152v81.086h43.751v-1.746zm112.013 0c-8.018-1.897-12.089-4.722-12.089-14.951V43.635l-41.621 12.137v1.71l.246.026c7.733.813 9.967 4.257 9.967 15.36v59.279c-2.578 5.102-7.415 8.131-13.274 8.336-9.503 0-14.736-6.419-14.736-18.073V43.638l-43.714 12.55v1.703l.262.024c9.459.84 12.05 4.097 12.05 15.152v50.17a56.3 56.3 0 0 0 .91 10.444l.787 3.423c3.701 13.262 13.398 20.197 28.59 20.197 12.868 0 24.147-7.966 29.115-20.43v17.311h43.714v-1.747zm169.818 1.788v-1.749l-.213-.05c-8.7-2.006-12.089-5.789-12.089-13.49v-63.79c0-19.89-11.171-31.761-29.883-31.761-13.64 0-25.141 7.882-29.569 20.16-3.517-13.01-13.639-20.16-28.606-20.16-13.146 0-23.449 6.938-27.869 18.657V43.643L545.487 55.68v1.715l.263.024c9.345.829 12.047 4.181 12.047 14.95v81.784h40.787v-1.746l-.215-.053c-6.941-1.631-9.181-4.606-9.181-12.239V66.998c1.836-4.289 5.537-9.37 12.853-9.37 9.086 0 13.692 6.296 13.692 18.697v77.828h40.797v-1.746l-.215-.053c-6.94-1.631-9.18-4.606-9.18-12.239V75.066a42 42 0 0 0-.578-7.26c1.947-4.661 5.86-10.177 13.475-10.177 9.214 0 13.691 6.114 13.691 18.696v77.828z"></path></svg></a><div class="ck h"><div class="n cv cw cx cy o cz da"><div class="ch" aria-hidden="false" aria-describedby="searchResults" aria-labelledby="searchResults"></div><div class="dh di n"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path></svg></div><input role="combobox" aria-controls="searchResults" aria-expanded="false" aria-label="search" data-testid="headerSearchInput" tabindex="0" class="cv db ar dc am m dd de df dg" placeholder="Search" value=""/></div></div></div><div class="h k aj dj dk"><div class="dl n"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" data-testid="headerWriteButton" href="https://medium.com/m/signin?operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2Fnew-story&amp;source=---two_column_layout_nav-----------------------new_post_topnav------------------" rel="noopener follow"><div class="ar b dc am ao dm dn n o do dp"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" aria-label="Write"><path fill="currentColor" d="M14 4a.5.5 0 0 0 0-1zm7 6a.5.5 0 0 0-1 0zm-7-7H4v1h10zM3 4v16h1V4zm1 17h16v-1H4zm17-1V10h-1v10zm-1 1a1 1 0 0 0 1-1h-1zM3 20a1 1 0 0 0 1 1v-1zM4 3a1 1 0 0 0-1 1h1z"></path><path stroke="currentColor" d="m17.5 4.5-8.458 8.458a.25.25 0 0 0-.06.098l-.824 2.47a.25.25 0 0 0 .316.316l2.47-.823a.25.25 0 0 0 .098-.06L19.5 6.5m-2-2 2.323-2.323a.25.25 0 0 1 .354 0l1.646 1.646a.25.25 0 0 1 0 .354L19.5 6.5m-2-2 2 2"></path></svg><div class="an x">Write</div></div></a></span></div></div><div class="k j i d"><div class="dl n"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" data-testid="headerSearchButton" href="https://medium.com/search?source=---two_column_layout_nav-----------------------------------------" rel="noopener follow"><div class="ar b dc am ao dm dn n o do dp"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" aria-label="Search"><path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path></svg></div></a></div></div><div class="dl h k j"><div class="n o"><p class="ar b bc bd be bf bg bh bi bj bk bl ao"><span><a class="ar b bc bd bm be bf bn bg bh bo bp bj bq br bl bs bt bu fg fh fi fj bz ca cb fk fl ce cf u cg ch ci cj" data-testid="headerSignUpButton" href="https://medium.com/m/signin?operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2F&amp;source=collection_home---two_column_layout_nav-----------------------global_nav------------------" rel="noopener follow">Sign up</a></span></p><div class="ck x"><p class="ar b bc bd be bf bg bh bi bj bk bl ao"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" data-testid="headerSignInButton" href="https://medium.com/m/signin?operation=login&amp;redirect=https%3A%2F%2Fblog.angular.dev%2F&amp;source=collection_home---two_column_layout_nav-----------------------global_nav------------------" rel="noopener follow">Sign in</a></span></p></div></div></div><div class="x" aria-hidden="false"><button class="cv dq at n o av dr ds dt" aria-label="user options menu" data-testid="headerUserIcon"><div class="x dm"><img alt="" class="x cg s dv dw dz" src="https://miro.medium.com/v2/resize:fill:64:64/1*dmbNkD5D-u45r44go_cf0g.png" width="32" height="32" loading="lazy" role="presentation"/><div class="du s x dv dw dx z cv dy"></div></div></button></div></div></div><div class="ea eb x"><div class="n ec ed"><main class="ee ef eg eh ei ej x ek"><div class="ff n fm c"><div class="x"><div class="n p"><div class="fn m fo fp fq fr"><div class="fs ft fu fv fw fx x"><div class="fy fz ag ga gb gc ai gd ge gf gg gh gi gj gk gl gm gn go gp n"><div class="m n fz gc gf gj gn"><div class="gq gr gs gt gu n o gv ek"><div class="gw i d gx gy"><div class="ch"><div class="dm"><img alt="Angular Blog" class="gz hb ha dz" src="https://miro.medium.com/v2/resize:fill:96:96/1*uJa0SU-F2NXVKhHTbP1HBw.png" width="48" height="48" loading="lazy"/><div class="gz x ha hb dx z du hc"></div></div></div></div><div class="x"><div class="n il im gh gl gp"><span class="ar hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik">Angular Blog</span><div class="in n o"></div></div><div class="io i d"><p class="ar b ip iq ao"><span class="pw-follower-count ar b ip iq ao"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/followers?source=collection_home_page----447683c3d9a3----------------------------------------">57K Followers</a></span></p></div></div></div></div><div class="ir af ag is it ah ai iu aj gg iv i gk iw d m"><span><a class="ar b dc am bt ix bu fg fh fi fj bz ca cb fk fl ce cf u cg ch ci cj" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fcollection%2Fangular-blog&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2F&amp;collection=Angular+Blog&amp;collectionId=447683c3d9a3&amp;source=collection_home----447683c3d9a3----------------------follow_header------------------" rel="noopener follow">Follow</a></span></div></div><nav class="fs id x dm"><div class="n o iy iz ja jb jc jd je"><span class="jf x"><div class="ji jj dl jk x"><a class="cv av jg" role="tab" href="https://blog.angular.dev/?source=collection_home_page----447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b dc am df"><span class="cl jh">Home</span></p></a></div></span><span class="jf x"><div class="ji jl dl jk x"><a class="cv av jg" role="tab" href="https://blog.angular.dev/about?source=collection_home_page----447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b dc am ao"><span class="cl jh">About</span></p></a></div></span><div class="dx jm z jn jo n o jp jq jr"><button class="cv at js av jt ju" aria-label="next sections" tabindex="-1"><svg width="26px" height="26px" class="svgIcon-use" viewBox="0 0 19 19" style="transform:rotate(180deg)" aria-hidden="true"><path fill-rule="evenodd" d="M11.47 13.969 6.986 9.484 11.47 5l.553.492L8.03 9.484l3.993 3.993z"></path></svg></button></div><div class="dx jv z jn jw n o jp jq jx"><button class="cv at js av jt ju" aria-label="previous sections" tabindex="-1"><svg width="26px" height="26px" class="svgIcon-use" viewBox="0 0 19 19" aria-hidden="true"><path fill-rule="evenodd" d="M11.47 13.969 6.986 9.484 11.47 5l.553.492L8.03 9.484l3.993 3.993z"></path></svg></button></div></div></nav></div></div></div></div><div class="jy x"><div><div class="n p"><div class="fn m fo fp fq fr"><div class="m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/seamless-data-fetching-with-httpresource-71ba7c4169b9" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@matthieuriegler?source=collection_home_page----447683c3d9a3-----0-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Matthieu Riegler" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/0*AlVzEVl10P09VRZx.jpg" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@matthieuriegler?source=collection_home_page----447683c3d9a3-----0-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Matthieu Riegler</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/seamless-data-fetching-with-httpresource-71ba7c4169b9?source=collection_home_page----447683c3d9a3-----0-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">Seamless data fetching with httpResource</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">Fantastic new APIs are coming to Angular. Two years ago, we proposed making Angular a reactive web framework powered by signals. Since…</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc md me mf mg mh x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn">6d ago<div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/seamless-data-fetching-with-httpresource-71ba7c4169b9?source=collection_home_page----447683c3d9a3-----0-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>3</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F71ba7c4169b9&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fseamless-data-fetching-with-httpresource-71ba7c4169b9&amp;source=----447683c3d9a3-----0-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="mu mv mw mx my x"><div aria-label="Brown dog with a large stick in the middle of a forrest."><div class="j i d"><img alt="Brown dog with a large stick in the middle of a forrest." class="mz gz" src="https://miro.medium.com/v2/da:true/resize:fill:160:106/0*n5sTRkaK5PrljeGW" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Brown dog with a large stick in the middle of a forrest." class="mz gz" src="https://miro.medium.com/v2/da:true/resize:fill:320:214/0*n5sTRkaK5PrljeGW" width="160" height="107" loading="lazy"/></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn">6d ago<div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/seamless-data-fetching-with-httpresource-71ba7c4169b9?source=collection_home_page----447683c3d9a3-----0-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>3</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F71ba7c4169b9&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fseamless-data-fetching-with-httpresource-71ba7c4169b9&amp;source=----447683c3d9a3-----0-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div class="n p"><div class="fn m fo fp fq fr"><div class="nf m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/angular-19-2-is-now-available-673ec70aea12" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----1-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Angular" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/1*jlg3PXZ6PYdUGy40tXybKw.gif" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----1-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Angular</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/angular-19-2-is-now-available-673ec70aea12?source=collection_home_page----447683c3d9a3-----1-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">Angular 19.2 Is Now Available</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">And we’re back with Angular’s latest minor release, version 19.2, bringing new APIs and experimental features to empower developers on…</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc md me mf mg mh x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Mar 5</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/angular-19-2-is-now-available-673ec70aea12?source=collection_home_page----447683c3d9a3-----1-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>10</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F673ec70aea12&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fangular-19-2-is-now-available-673ec70aea12&amp;source=----447683c3d9a3-----1-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="mu mv mw mx my x"><div aria-label="Angular 19.2 release"><div class="j i d"><img alt="Angular 19.2 release" class="mz gz" src="https://miro.medium.com/v2/da:true/resize:fill:160:106/0*MXvOz8l93IDpSbcK" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Angular 19.2 release" class="mz gz" src="https://miro.medium.com/v2/da:true/resize:fill:320:214/0*MXvOz8l93IDpSbcK" width="160" height="107" loading="lazy"/></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Mar 5</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/angular-19-2-is-now-available-673ec70aea12?source=collection_home_page----447683c3d9a3-----1-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>10</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F673ec70aea12&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fangular-19-2-is-now-available-673ec70aea12&amp;source=----447683c3d9a3-----1-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div class="n p"><div class="fn m fo fp fq fr"><div class="nf m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/micro-frontends-with-angular-and-native-federation-7623cfc5f413" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@manfredsteyer81?source=collection_home_page----447683c3d9a3-----2-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Manfred Steyer" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/0*ie_F70F4bb0alhdm" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@manfredsteyer81?source=collection_home_page----447683c3d9a3-----2-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Manfred Steyer</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/micro-frontends-with-angular-and-native-federation-7623cfc5f413?source=collection_home_page----447683c3d9a3-----2-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">Micro Frontends with Angular and Native Federation</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">Enterprise-scale software systems are often implemented by several cross-functional teams. To enable such teams to provide new features…</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc md me mf mg mh x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Feb 10</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/micro-frontends-with-angular-and-native-federation-7623cfc5f413?source=collection_home_page----447683c3d9a3-----2-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>7</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F7623cfc5f413&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fmicro-frontends-with-angular-and-native-federation-7623cfc5f413&amp;source=----447683c3d9a3-----2-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="mu mv mw mx my x"><div aria-label="A beehive as a metaphor for Micro Frontends: Several small units forming a larger one."><div class="j i d"><img alt="A beehive as a metaphor for Micro Frontends: Several small units forming a larger one." class="mz gz" src="https://miro.medium.com/v2/resize:fill:160:106/1*Sfd2NqT0EBVj0uQVUwSDnw.jpeg" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="A beehive as a metaphor for Micro Frontends: Several small units forming a larger one." class="mz gz" src="https://miro.medium.com/v2/resize:fill:320:214/1*Sfd2NqT0EBVj0uQVUwSDnw.jpeg" width="160" height="107" loading="lazy"/></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Feb 10</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/micro-frontends-with-angular-and-native-federation-7623cfc5f413?source=collection_home_page----447683c3d9a3-----2-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>7</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F7623cfc5f413&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fmicro-frontends-with-angular-and-native-federation-7623cfc5f413&amp;source=----447683c3d9a3-----2-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div class="n p"><div class="fn m fo fp fq fr"><div class="nf m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/angular-2025-strategy-9ca333dfc334" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@mgechev?source=collection_home_page----447683c3d9a3-----3-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Minko Gechev" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/1*PC5hsShK0vnUFfFVoWjMNg.jpeg" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@mgechev?source=collection_home_page----447683c3d9a3-----3-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Minko Gechev</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/angular-2025-strategy-9ca333dfc334?source=collection_home_page----447683c3d9a3-----3-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">Angular 2025 Strategy</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">For the past two and a half years, we’ve been laser focused on improving developer experience and performance for all Angular developers…</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc md me mf mg mh x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Jan 14</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/angular-2025-strategy-9ca333dfc334?source=collection_home_page----447683c3d9a3-----3-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>24</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F9ca333dfc334&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fangular-2025-strategy-9ca333dfc334&amp;source=----447683c3d9a3-----3-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="mu mv mw mx my x"><div aria-label="Banner with the Angular logo"><div class="j i d"><img alt="Banner with the Angular logo" class="mz gz" src="https://miro.medium.com/v2/resize:fill:160:106/1*aCsnm9viiL5Fo0JC-I_exQ.png" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Banner with the Angular logo" class="mz gz" src="https://miro.medium.com/v2/resize:fill:320:214/1*aCsnm9viiL5Fo0JC-I_exQ.png" width="160" height="107" loading="lazy"/></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Jan 14</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/angular-2025-strategy-9ca333dfc334?source=collection_home_page----447683c3d9a3-----3-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>24</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F9ca333dfc334&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fangular-2025-strategy-9ca333dfc334&amp;source=----447683c3d9a3-----3-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div class="n p"><div class="fn m fo fp fq fr"><div class="nf m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/try-out-the-new-signal-input-migrations-80783969ac9d" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----4-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Angular" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/1*jlg3PXZ6PYdUGy40tXybKw.gif" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----4-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Angular</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/try-out-the-new-signal-input-migrations-80783969ac9d?source=collection_home_page----447683c3d9a3-----4-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">Try Out the New Signal Input Migrations</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">Authors: Paul Gschwendtner Mark Thompson</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc md me mf mg mh x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Jan 9</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/try-out-the-new-signal-input-migrations-80783969ac9d?source=collection_home_page----447683c3d9a3-----4-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>2</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F80783969ac9d&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Ftry-out-the-new-signal-input-migrations-80783969ac9d&amp;source=----447683c3d9a3-----4-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="mu mv mw mx my x"><div aria-label="Try Out the New Signal Input Migrations"><div class="j i d"><img alt="Try Out the New Signal Input Migrations" class="mz gz" src="https://miro.medium.com/v2/resize:fill:160:106/1*KcUMhKfzcGYDqgbDQY0tkw.png" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Try Out the New Signal Input Migrations" class="mz gz" src="https://miro.medium.com/v2/resize:fill:320:214/1*KcUMhKfzcGYDqgbDQY0tkw.png" width="160" height="107" loading="lazy"/></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Jan 9</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/try-out-the-new-signal-input-migrations-80783969ac9d?source=collection_home_page----447683c3d9a3-----4-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>2</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F80783969ac9d&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Ftry-out-the-new-signal-input-migrations-80783969ac9d&amp;source=----447683c3d9a3-----4-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div class="n p"><div class="fn m fo fp fq fr"><div class="nf m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/meet-angular-v19-7b29dfd05b84" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@mgechev?source=collection_home_page----447683c3d9a3-----5-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Minko Gechev" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/1*PC5hsShK0vnUFfFVoWjMNg.jpeg" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@mgechev?source=collection_home_page----447683c3d9a3-----5-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Minko Gechev</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/meet-angular-v19-7b29dfd05b84?source=collection_home_page----447683c3d9a3-----5-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">Meet Angular v19</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">In the past two years we doubled down on our investment in developer experience and performance — in every single release we’ve been…</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc md me mf mg mh x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Nov 19, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/meet-angular-v19-7b29dfd05b84?source=collection_home_page----447683c3d9a3-----5-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>56</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F7b29dfd05b84&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fmeet-angular-v19-7b29dfd05b84&amp;source=----447683c3d9a3-----5-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="mu mv mw mx my x"><div aria-label="Banner with the Angular logo saying “v19 is now available”"><div class="j i d"><img alt="Banner with the Angular logo saying “v19 is now available”" class="mz gz" src="https://miro.medium.com/v2/resize:fill:160:106/1*IKZuN_kzUYPl37lBXQkymQ.png" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Banner with the Angular logo saying “v19 is now available”" class="mz gz" src="https://miro.medium.com/v2/resize:fill:320:214/1*IKZuN_kzUYPl37lBXQkymQ.png" width="160" height="107" loading="lazy"/></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Nov 19, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/meet-angular-v19-7b29dfd05b84?source=collection_home_page----447683c3d9a3-----5-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>56</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F7b29dfd05b84&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fmeet-angular-v19-7b29dfd05b84&amp;source=----447683c3d9a3-----5-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div class="n p"><div class="fn m fo fp fq fr"><div class="nf m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/angular-v19-release-join-the-watch-parties-45f552d49554" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----6-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Angular" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/1*jlg3PXZ6PYdUGy40tXybKw.gif" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----6-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Angular</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/angular-v19-release-join-the-watch-parties-45f552d49554?source=collection_home_page----447683c3d9a3-----6-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">Angular v19 Release: Join the Watch Parties!</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">The Angular v19 release is just around the corner, and developers around the world are gearing up to celebrate.</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc ng me nh mg ni x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Nov 14, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/angular-v19-release-join-the-watch-parties-45f552d49554?source=collection_home_page----447683c3d9a3-----6-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>3</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F45f552d49554&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fangular-v19-release-join-the-watch-parties-45f552d49554&amp;source=----447683c3d9a3-----6-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Nov 14, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/angular-v19-release-join-the-watch-parties-45f552d49554?source=collection_home_page----447683c3d9a3-----6-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>3</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F45f552d49554&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fangular-v19-release-join-the-watch-parties-45f552d49554&amp;source=----447683c3d9a3-----6-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div class="n p"><div class="fn m fo fp fq fr"><div class="nf m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/latest-updates-to-effect-in-angular-f2d2648defcd" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----7-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Angular" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/1*jlg3PXZ6PYdUGy40tXybKw.gif" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----7-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Angular</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/latest-updates-to-effect-in-angular-f2d2648defcd?source=collection_home_page----447683c3d9a3-----7-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">Latest updates to effect() in Angular</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">Authors: Alex Rickabaugh Mark Thompson</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc md me mf mg mh x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Oct 7, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/latest-updates-to-effect-in-angular-f2d2648defcd?source=collection_home_page----447683c3d9a3-----7-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>2</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Ff2d2648defcd&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Flatest-updates-to-effect-in-angular-f2d2648defcd&amp;source=----447683c3d9a3-----7-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="mu mv mw mx my x"><div aria-label="Updates to effect"><div class="j i d"><img alt="Updates to effect" class="mz gz" src="https://miro.medium.com/v2/resize:fill:160:106/1*0VCw1SdSMbXUci5dQac7Gg.png" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Updates to effect" class="mz gz" src="https://miro.medium.com/v2/resize:fill:320:214/1*0VCw1SdSMbXUci5dQac7Gg.png" width="160" height="107" loading="lazy"/></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Oct 7, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/latest-updates-to-effect-in-angular-f2d2648defcd?source=collection_home_page----447683c3d9a3-----7-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>2</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Ff2d2648defcd&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Flatest-updates-to-effect-in-angular-f2d2648defcd&amp;source=----447683c3d9a3-----7-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div class="n p"><div class="fn m fo fp fq fr"><div class="nf m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/the-future-is-standalone-475d7edbc706" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@synalx?source=collection_home_page----447683c3d9a3-----8-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Alex Rickabaugh" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/1*yNCBVxf7m7JX0QAJQBEEAA.jpeg" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@synalx?source=collection_home_page----447683c3d9a3-----8-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Alex Rickabaugh</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/the-future-is-standalone-475d7edbc706?source=collection_home_page----447683c3d9a3-----8-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">The future is standalone!</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">Angular v19 will make standalone: true the default for components, directives, and pipes.</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc md me mf mg mh x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Sep 3, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/the-future-is-standalone-475d7edbc706?source=collection_home_page----447683c3d9a3-----8-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>6</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F475d7edbc706&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fthe-future-is-standalone-475d7edbc706&amp;source=----447683c3d9a3-----8-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="mu mv mw mx my x"><div aria-label="The future is standalone!"><div class="j i d"><img alt="The future is standalone!" class="mz gz" src="https://miro.medium.com/v2/resize:fill:160:106/1*KSsGo7ZogfbS0w5DPj-Q8g.png" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="The future is standalone!" class="mz gz" src="https://miro.medium.com/v2/resize:fill:320:214/1*KSsGo7ZogfbS0w5DPj-Q8g.png" width="160" height="107" loading="lazy"/></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Sep 3, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/the-future-is-standalone-475d7edbc706?source=collection_home_page----447683c3d9a3-----8-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>6</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F475d7edbc706&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fthe-future-is-standalone-475d7edbc706&amp;source=----447683c3d9a3-----8-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div class="n p"><div class="fn m fo fp fq fr"><div class="nf m x"><article class=""><div class="jz x"><div class="m bb"><div class="x"><div class="m x"><div style="position:relative;display:flex" role="link" data-href="https://blog.angular.dev/using-isolatedmodules-in-angular-18-2-68a7d3a6c03d" tabindex="0"><div class="m ka kb kc kd"><div class="n"><div class="ke kf kg kh ki n o"><div class="kj x"><div><div class="x" aria-hidden="false"><a tabindex="-1" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----9-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Angular" class="x cg s kk kl dz" src="https://miro.medium.com/v2/resize:fill:40:40/1*jlg3PXZ6PYdUGy40tXybKw.gif" width="20" height="20" loading="lazy"/><div class="du s x kk kl dx z cv dy"></div></div></a></div></div></div><div><div class="x" aria-hidden="false"><a class="cl ap cm cn co as cp at au av aw ax ay km n o" href="https://medium.com/@angularteam?source=collection_home_page----447683c3d9a3-----9-----------------------------------" rel="noopener follow"><p class="ar b aq am id kn ie if ko ig kp ii df">Angular</p></a></div></div></div></div><div class="n"><div class="x ek ih"><div class="kq kr ks kt ku kv kw kx ky kz"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" rel="noopener follow" href="/using-isolatedmodules-in-angular-18-2-68a7d3a6c03d?source=collection_home_page----447683c3d9a3-----9-----------------------------------"><h2 class="ar la lb lc ld hh le lf lg lh hm li ho hp lj lk hs ll lm ln lo lp lq lr ls lt lu id ie if ig ii df">Using isolatedModules in Angular 18.2</h2><div class="lv"><h3 class="ar b ip am id lw ie if lx ig ii ao">Authors: Mark Thompson Charles Lyding</h3></div></a></div><div class="h k"><div class="ly lz ma mb mc md me mf mg mh x"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Aug 19, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/using-isolatedmodules-in-angular-18-2-68a7d3a6c03d?source=collection_home_page----447683c3d9a3-----9-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>4</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F68a7d3a6c03d&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fusing-isolatedmodules-in-angular-18-2-68a7d3a6c03d&amp;source=----447683c3d9a3-----9-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="mu mv mw mx my x"><div aria-label="Support for isolatedModules available in angular v18.2"><div class="j i d"><img alt="Support for isolatedModules available in angular v18.2" class="mz gz" src="https://miro.medium.com/v2/da:true/resize:fill:160:106/0*jcAXrvX40O0dYbez" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Support for isolatedModules available in angular v18.2" class="mz gz" src="https://miro.medium.com/v2/da:true/resize:fill:320:214/0*jcAXrvX40O0dYbez" width="160" height="107" loading="lazy"/></div></div></div></div><div class="na j i d"><span class="ar b aq am ao"><div class="ha n mi cr"><div class="n o mn"><span>Aug 19, 2024</span><div class="h k j i d"><div class="dm mj mk n o"><div class="dx ml mm n o mn"><div class="ck mk mo x dz"></div></div><a class="dx jq mm n o mn" tabindex="-1" rel="noopener follow" href="/using-isolatedmodules-in-angular-18-2-68a7d3a6c03d?source=collection_home_page----447683c3d9a3-----9-----------------------------------"><div><div class="n" aria-hidden="false"><div class="n o mp"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>4</span></div></div></div></a></div></div></div><div class="n o mq mr"><div class="h k j i d"><div><div class="ch" aria-hidden="false"><span><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F68a7d3a6c03d&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2Fusing-isolatedmodules-in-angular-18-2-68a7d3a6c03d&amp;source=----447683c3d9a3-----9-----------------bookmark_preview------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ao ms mt" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="nb m ae ir it nc nd ne"></div></div></div></div></div></article></div></div></div><div></div></div></div></div></main><div class="el em h eo ep eq k er es et j eu ev ew ex ey ez fa fb fc fd cg c fe ff"><div class="bb m ch dm"><div class="x y nj"><div class="nk n fm"><div class="x cr"><div class="nl nm nn x"><div class="ji x"><div class="x dm"><img alt="Angular Blog" class="x cg s no np dz" src="https://miro.medium.com/v2/resize:fill:176:176/1*uJa0SU-F2NXVKhHTbP1HBw.png" width="88" height="88" loading="lazy"/><div class="du s x no np dx z cv hc"></div></div></div><div class="ji x"><p class="ar b dc am ao"><span class="ih">The latest news and tips from the Angular team</span></p></div><div class="ji x"><span><a class="ar b dc am bt ix bu fg fh fi fj bz ca cb fk fl ce cf u cg ch ci cj" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fcollection%2Fangular-blog&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2F&amp;collection=Angular+Blog&amp;collectionId=447683c3d9a3&amp;source=collection_home---collection_sidebar-447683c3d9a3----------------------follow_sidebar------------------" rel="noopener follow">Follow</a></span></div><div class="n o nq"><div class="nr n o gy"><p class="ar b ip iq ao">Connect with <!-- -->Angular Blog</p></div><div class="n o gy"><div class="x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://twitter.com/angular?source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow" target="_blank"><span aria-label="Twitter (link opens in new tab)"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" class="ns"><path fill="#242424" d="M13.346 10.932 18.88 4.5h-1.311l-4.805 5.585L8.926 4.5H4.5l5.803 8.446L4.5 19.69h1.311l5.074-5.898 4.053 5.898h4.426zM11.55 13.02l-.588-.84-4.678-6.693h2.014l3.776 5.4.588.842 4.907 7.02h-2.014z"></path></svg></span></a></div></div></div></div><div class="nl nm nn x"><div class="x"><div class="x"><div class="ji x"><h2 class="ar hd ip am nt df">Editors</h2></div></div><div class="x"><div class="bb m x"><div class="ji m n nu mi"><div class="kj n"><a tabindex="0" href="https://medium.com/@angularteam?source=collection_home_page---collection_editors-447683c3d9a3-----0-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Angular" class="x cg s dv dw dz" src="https://miro.medium.com/v2/resize:fill:64:64/1*jlg3PXZ6PYdUGy40tXybKw.gif" width="32" height="32" loading="lazy"/><div class="du s x dv dw dx z cv hc"></div></div></a><div class="ck kj x"><div class="n o"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/@angularteam?source=collection_home_page---collection_editors-447683c3d9a3-----0-----------------------------------" rel="noopener follow"><h2 class="ar la ip am id lw ie if lx ig ih ii nt df">Angular</h2></a></div><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/@angularteam?source=collection_home_page---collection_editors-447683c3d9a3-----0-----------------------------------" rel="noopener follow"><div class="nv x ih"><p class="ar b aq am id nw nx ny nz oa ob oc hw od oe ie if ig ii ao">Angular team at Google</p></div></a></div></div><span><a class="ar b aq am df of ns og oh ms oi oj bz ca cb ok ol om ce cf u cg ch ci cj" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fuser%2Fb9c466d8885d&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2F&amp;user=Angular&amp;userId=b9c466d8885d&amp;source=collection_home-b9c466d8885d--collection_editors-447683c3d9a3-----0-----------------follow_sidebar------------------" rel="noopener follow">Follow</a></span></div></div><div class="bb m x"><div class="ji m n nu mi"><div class="kj n"><a tabindex="0" href="https://medium.com/@mgechev?source=collection_home_page---collection_editors-447683c3d9a3-----1-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Minko Gechev" class="x cg s dv dw dz" src="https://miro.medium.com/v2/resize:fill:64:64/1*PC5hsShK0vnUFfFVoWjMNg.jpeg" width="32" height="32" loading="lazy"/><div class="du s x dv dw dx z cv hc"></div></div></a><div class="ck kj x"><div class="n o"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/@mgechev?source=collection_home_page---collection_editors-447683c3d9a3-----1-----------------------------------" rel="noopener follow"><h2 class="ar la ip am id lw ie if lx ig ih ii nt df">Minko Gechev</h2></a></div><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/@mgechev?source=collection_home_page---collection_editors-447683c3d9a3-----1-----------------------------------" rel="noopener follow"><div class="nv x ih"><p class="ar b aq am id nw nx ny nz oa ob oc hw od oe ie if ig ii ao">Product and DevRel lead for Angular at Google.</p></div></a></div></div><span><a class="ar b aq am df of ns og oh ms oi oj bz ca cb ok ol om ce cf u cg ch ci cj" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fuser%2Fa7db01a91fcb&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2F&amp;user=Minko+Gechev&amp;userId=a7db01a91fcb&amp;source=collection_home-a7db01a91fcb--collection_editors-447683c3d9a3-----1-----------------follow_sidebar------------------" rel="noopener follow">Follow</a></span></div></div><div class="bb m x"><div class="m n nu mi"><div class="kj n"><a tabindex="0" href="https://medium.com/@markathompson?source=collection_home_page---collection_editors-447683c3d9a3-----2-----------------------------------" rel="noopener follow"><div class="x dm"><img alt="Mark Thompson (@marktechson)" class="x cg s dv dw dz" src="https://miro.medium.com/v2/resize:fill:64:64/1*2hqK0rVXWghtk_RLFx33oA.jpeg" width="32" height="32" loading="lazy"/><div class="du s x dv dw dx z cv hc"></div></div></a><div class="ck kj x"><div class="n o"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/@markathompson?source=collection_home_page---collection_editors-447683c3d9a3-----2-----------------------------------" rel="noopener follow"><h2 class="ar la ip am id lw ie if lx ig ih ii nt df">Mark Thompson (@marktechson)</h2></a></div><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/@markathompson?source=collection_home_page---collection_editors-447683c3d9a3-----2-----------------------------------" rel="noopener follow"><div class="nv x ih"><p class="ar b aq am id nw nx ny nz oa ob oc hw od oe ie if ig ii ao">Mark is a Developer Advocate on the Angular Team at Google.</p></div></a></div></div><span><a class="ar b aq am df of ns og oh ms oi oj bz ca cb ok ol om ce cf u cg ch ci cj" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fuser%2Fc8e30afa4390&amp;operation=register&amp;redirect=https%3A%2F%2Fblog.angular.dev%2F&amp;user=Mark+Thompson+%28%40marktechson%29&amp;userId=c8e30afa4390&amp;source=collection_home-c8e30afa4390--collection_editors-447683c3d9a3-----2-----------------follow_sidebar------------------" rel="noopener follow">Follow</a></span></div></div></div></div><div class="x"><div class="on x"><button type="button" class="cv at dq av"><p class="ar b dc am df">See all</p></button></div></div></div><div class="nl nm nn x"></div></div><div class="oo n ec nq"><div class="op x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://help.medium.com/hc/en-us?source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b oq or ao">Help</p></a></div><div class="op x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.statuspage.io/?source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b oq or ao">Status</p></a></div><div class="op x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/about?autoplay=1&amp;source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b oq or ao">About</p></a></div><div class="op x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/jobs-at-medium/work-at-medium-959d1a85284e?source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b oq or ao">Careers</p></a></div><div class="op x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="mailto:pressinquiries@medium.com" rel="noopener follow"><p class="ar b oq or ao">Press</p></a></div><div class="op x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://blog.medium.com/?source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b oq or ao">Blog</p></a></div><div class="op x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://policy.medium.com/medium-privacy-policy-f03bf92035c9?source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b oq or ao">Privacy</p></a></div><div class="op x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://policy.medium.com/medium-terms-of-service-9db0094a1e0f?source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b oq or ao">Terms</p></a></div><div class="op x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://speechify.com/medium?source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b oq or ao">Text to speech</p></a></div><div class="x"><a class="cl ap cm cn co as cp at au av aw ax ay az ba" href="https://medium.com/business?source=collection_home_page---collection_sidebar-447683c3d9a3----------------------------------------" rel="noopener follow"><p class="ar b oq or ao">Teams</p></a></div></div></div></div></div></div></div></div></div></div></div><script>window.__BUILD_ID__="main-20250313-223030-5cce16a2ac"</script><script>window.__GRAPHQL_URI__ = "https://blog.angular.dev/_/graphql"</script><script>window.__PRELOADED_STATE__ = {"algolia":{"queries":{}},"cache":{"experimentGroupSet":true,"reason":"This request is not using the cache middleware worker","group":"disabled","tags":[],"serverVariantState":"","middlewareEnabled":false,"cacheStatus":"DYNAMIC","shouldUseCache":false,"vary":[],"pubFeaturingPostPageLabelEnabled":false,"pubHierarchyFlagGroup":"control"},"client":{"hydrated":false,"isUs":false,"isNativeMedium":false,"isSafariMobile":false,"isSafari":false,"isFirefox":false,"routingEntity":{"type":"COLLECTION","id":"447683c3d9a3","explicit":true},"viewerIsBot":false},"debug":{"requestId":"e542558f-3222-41a1-997f-b3d82950da7b","requestTag":"","hybridDevServices":[],"originalSpanCarrier":{"traceparent":"00-fca1219d62e073808e38304e18c5ecfc-9900b8e359390c47-01"}},"multiVote":{"clapsPerPost":{}},"navigation":{"branch":{"show":null,"hasRendered":null,"blockedByCTA":false},"hideGoogleOneTap":false,"hasRenderedAlternateUserBanner":null,"currentLocation":"https:\u002F\u002Fblog.angular.dev\u002F","host":"blog.angular.dev","hostname":"blog.angular.dev","referrer":"","hasSetReferrer":false,"susiModal":{"step":null,"operation":"register"},"postRead":false,"partnerProgram":{"selectedCountryCode":null}},"config":{"nodeEnv":"production","version":"main-20250313-223030-5cce16a2ac","target":"production","productName":"Medium","publicUrl":"https:\u002F\u002Fcdn-client.medium.com\u002Flite","authDomain":"medium.com","authGoogleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","favicon":"production","glyphUrl":"https:\u002F\u002Fglyph.medium.com","branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","algolia":{"appId":"MQ57UUUQZ2","apiKeySearch":"394474ced050e3911ae2249ecc774921","indexPrefix":"medium_","host":"-dsn.algolia.net"},"recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","recaptchaEnterpriseKeyId":"6Le-uGgpAAAAAPprRaokM8AKthQ9KNGdoxaGUvVp","datadog":{"applicationId":"6702d87d-a7e0-42fe-bbcb-95b469547ea0","clientToken":"pub853ea8d17ad6821d9f8f11861d23dfed","rumToken":"pubf9cc52896502b9413b68ba36fc0c7162","context":{"deployment":{"target":"production","tag":"main-20250313-223030-5cce16a2ac","commit":"5cce16a2ac5ae89ff4c80a64448a063f87c168fd"}},"datacenter":"us"},"googleAnalyticsCode":"G-7JY7T788PK","googlePay":{"apiVersion":"2","apiVersionMinor":"0","merchantId":"BCR2DN6TV7EMTGBM","merchantName":"Medium","instanceMerchantId":"13685562959212738550"},"applePay":{"version":3},"signInWallCustomDomainCollectionIds":["3a8144eabfe3","336d898217ee","61061eb0c96b","138adf9c44c","819cc2aaeee0"],"mediumMastodonDomainName":"me.dm","mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"],"tierOneDomains":["medium.com","thebolditalic.com","arcdigital.media","towardsdatascience.com","uxdesign.cc","codeburst.io","psiloveyou.xyz","writingcooperative.com","entrepreneurshandbook.co","prototypr.io","betterhumans.coach.me","theascent.pub"],"topicsToFollow":["d61cf867d93f","8a146bc21b28","1eca0103fff3","4d562ee63426","aef1078a3ef5","e15e46793f8d","6158eb913466","55f1c20aba7a","3d18b94f6858","4861fee224fd","63c6f1f93ee","1d98b3a9a871","decb52b64abf","ae5d4995e225","830cded25262"],"topicToTagMappings":{"accessibility":"accessibility","addiction":"addiction","android-development":"android-development","art":"art","artificial-intelligence":"artificial-intelligence","astrology":"astrology","basic-income":"basic-income","beauty":"beauty","biotech":"biotech","blockchain":"blockchain","books":"books","business":"business","cannabis":"cannabis","cities":"cities","climate-change":"climate-change","comics":"comics","coronavirus":"coronavirus","creativity":"creativity","cryptocurrency":"cryptocurrency","culture":"culture","cybersecurity":"cybersecurity","data-science":"data-science","design":"design","digital-life":"digital-life","disability":"disability","economy":"economy","education":"education","equality":"equality","family":"family","feminism":"feminism","fiction":"fiction","film":"film","fitness":"fitness","food":"food","freelancing":"freelancing","future":"future","gadgets":"gadgets","gaming":"gaming","gun-control":"gun-control","health":"health","history":"history","humor":"humor","immigration":"immigration","ios-development":"ios-development","javascript":"javascript","justice":"justice","language":"language","leadership":"leadership","lgbtqia":"lgbtqia","lifestyle":"lifestyle","machine-learning":"machine-learning","makers":"makers","marketing":"marketing","math":"math","media":"media","mental-health":"mental-health","mindfulness":"mindfulness","money":"money","music":"music","neuroscience":"neuroscience","nonfiction":"nonfiction","outdoors":"outdoors","parenting":"parenting","pets":"pets","philosophy":"philosophy","photography":"photography","podcasts":"podcast","poetry":"poetry","politics":"politics","privacy":"privacy","product-management":"product-management","productivity":"productivity","programming":"programming","psychedelics":"psychedelics","psychology":"psychology","race":"race","relationships":"relationships","religion":"religion","remote-work":"remote-work","san-francisco":"san-francisco","science":"science","self":"self","self-driving-cars":"self-driving-cars","sexuality":"sexuality","social-media":"social-media","society":"society","software-engineering":"software-engineering","space":"space","spirituality":"spirituality","sports":"sports","startups":"startup","style":"style","technology":"technology","transportation":"transportation","travel":"travel","true-crime":"true-crime","tv":"tv","ux":"ux","venture-capital":"venture-capital","visual-design":"visual-design","work":"work","world":"world","writing":"writing"},"defaultImages":{"avatar":{"imageId":"1*dmbNkD5D-u45r44go_cf0g.png","height":150,"width":150},"orgLogo":{"imageId":"7*V1_7XP4snlmqrc_0Njontw.png","height":110,"width":500},"postLogo":{"imageId":"bd978bb536350a710e8efb012513429cabdc4c28700604261aeda246d0f980b7","height":810,"width":1440},"postPreviewImage":{"imageId":"1*hn4v1tCaJy7cWMyb0bpNpQ.png","height":386,"width":579}},"collectionStructuredData":{"8d6b8a439e32":{"name":"Elemental","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F980\u002F1*9ygdqoKprhwuTVKUM0DLPA@2x.png","width":980,"height":159}}},"3f6ecf56618":{"name":"Forge","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F596\u002F1*uULpIlImcO5TDuBZ6lm7Lg@2x.png","width":596,"height":183}}},"ae2a65f35510":{"name":"GEN","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F264\u002F1*RdVZMdvfV3YiZTw6mX7yWA.png","width":264,"height":140}}},"88d9857e584e":{"name":"LEVEL","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*JqYMhNX6KNNb2UlqGqO2WQ.png","width":540,"height":108}}},"7b6769f2748b":{"name":"Marker","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F383\u002F1*haCUs0wF6TgOOvfoY-jEoQ@2x.png","width":383,"height":92}}},"444d13b52878":{"name":"OneZero","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*cw32fIqCbRWzwJaoQw6BUg.png","width":540,"height":123}}},"8ccfed20cbb2":{"name":"Zora","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*tZUQqRcCCZDXjjiZ4bDvgQ.png","width":540,"height":106}}}},"embeddedPostIds":{"coronavirus":"cd3010f9d81f"},"sharedCdcMessaging":{"COVID_APPLICABLE_TAG_SLUGS":[],"COVID_APPLICABLE_TOPIC_NAMES":[],"COVID_APPLICABLE_TOPIC_NAMES_FOR_TOPIC_PAGE":[],"COVID_MESSAGES":{"tierA":{"text":"For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":66,"end":73,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"tierB":{"text":"Anyone can publish on Medium per our Policies, but we don’t fact-check every story. For more info about the coronavirus, see cdc.gov.","markups":[{"start":37,"end":45,"href":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Fcategories\u002F201931128-Policies-Safety"},{"start":125,"end":132,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"paywall":{"text":"This article has been made free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":56,"end":70,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":138,"end":145,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"unbound":{"text":"This article is free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":45,"end":59,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":127,"end":134,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]}},"COVID_BANNER_POST_ID_OVERRIDE_WHITELIST":["3b31a67bff4a"]},"sharedVoteMessaging":{"TAGS":["politics","election-2020","government","us-politics","election","2020-presidential-race","trump","donald-trump","democrats","republicans","congress","republican-party","democratic-party","biden","joe-biden","maga"],"TOPICS":["politics","election"],"MESSAGE":{"text":"Find out more about the U.S. election results here.","markups":[{"start":46,"end":50,"href":"https:\u002F\u002Fcookpolitical.com\u002F2020-national-popular-vote-tracker"}]},"EXCLUDE_POSTS":["397ef29e3ca5"]},"embedPostRules":[],"recircOptions":{"v1":{"limit":3},"v2":{"limit":8}},"braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","braintree":{"enabled":true,"merchantId":"m56f8fqpf7ngnrd4","merchantAccountId":{"usd":"AMediumCorporation_instant","eur":"amediumcorporation_EUR","cad":"amediumcorporation_CAD"},"publicKey":"ds2nn34bg2z7j5gd","braintreeEnvironment":"production","dashboardUrl":"https:\u002F\u002Fwww.braintreegateway.com\u002Fmerchants","gracePeriodDurationInDays":14,"mediumMembershipPlanId":{"monthly":"ce105f8c57a3","monthlyV2":"e8a5e126-792b-4ee6-8fba-d574c1b02fc5","monthlyWithTrial":"d5ee3dbe3db8","monthlyPremium":"fa741a9b47a2","yearly":"a40ad4a43185","yearlyV2":"3815d7d6-b8ca-4224-9b8c-182f9047866e","yearlyStaff":"d74fb811198a","yearlyWithTrial":"b3bc7350e5c7","yearlyPremium":"e21bd2c12166","monthlyOneYearFree":"e6c0637a-2bad-4171-ab4f-3c268633d83c","monthly25PercentOffFirstYear":"235ecc62-0cdb-49ae-9378-726cd21c504b","monthly20PercentOffFirstYear":"ba518864-9c13-4a99-91ca-411bf0cac756","monthly15PercentOffFirstYear":"594c029b-9f89-43d5-88f8-8173af4e070e","monthly10PercentOffFirstYear":"c6c7bc9a-40f2-4b51-8126-e28511d5bdb0","monthlyForStudents":"629ebe51-da7d-41fd-8293-34cd2f2030a8","yearlyOneYearFree":"78ba7be9-0d9f-4ece-aa3e-b54b826f2bf1","yearly25PercentOffFirstYear":"2dbb010d-bb8f-4eeb-ad5c-a08509f42d34","yearly20PercentOffFirstYear":"47565488-435b-47f8-bf93-40d5fbe0ebc8","yearly15PercentOffFirstYear":"8259809b-0881-47d9-acf7-6c001c7f720f","yearly10PercentOffFirstYear":"9dd694fb-96e1-472c-8d9e-3c868d5c1506","yearlyForStudents":"e29345ef-ab1c-4234-95c5-70e50fe6bc23","monthlyCad":"p52orjkaceei","yearlyCad":"h4q9g2up9ktt"},"braintreeDiscountId":{"oneMonthFree":"MONTHS_FREE_01","threeMonthsFree":"MONTHS_FREE_03","sixMonthsFree":"MONTHS_FREE_06","fiftyPercentOffOneYear":"FIFTY_PERCENT_OFF_ONE_YEAR"},"3DSecureVersion":"2","defaultCurrency":"usd","providerPlanIdCurrency":{"4ycw":"usd","rz3b":"usd","3kqm":"usd","jzw6":"usd","c2q2":"usd","nnsw":"usd","q8qw":"usd","d9y6":"usd","fx7w":"cad","nwf2":"cad"}},"paypalClientId":"AXj1G4fotC2GE8KzWX9mSxCH1wmPE3nJglf4Z2ig_amnhvlMVX87otaq58niAg9iuLktVNF_1WCMnN7v","paypal":{"host":"https:\u002F\u002Fapi.paypal.com:443","clientMode":"production","serverMode":"live","webhookId":"4G466076A0294510S","monthlyPlan":{"planId":"P-9WR0658853113943TMU5FDQA","name":"Medium Membership (Monthly) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"yearlyPlan":{"planId":"P-7N8963881P8875835MU5JOPQ","name":"Medium Membership (Annual) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com\u002Fredeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"},"oldMonthlyPlan":{"planId":"P-96U02458LM656772MJZUVH2Y","name":"Medium Membership (Monthly)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"oldYearlyPlan":{"planId":"P-59P80963JF186412JJZU3SMI","name":"Medium Membership (Annual)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"monthlyPlanWithTrial":{"planId":"P-66C21969LR178604GJPVKUKY","name":"Medium Membership (Monthly) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"yearlyPlanWithTrial":{"planId":"P-6XW32684EX226940VKCT2MFA","name":"Medium Membership (Annual) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"oldMonthlyPlanNoSetupFee":{"planId":"P-4N046520HR188054PCJC7LJI","name":"Medium Membership (Monthly)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"oldYearlyPlanNoSetupFee":{"planId":"P-7A4913502Y5181304CJEJMXQ","name":"Medium Membership (Annual)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"sdkUrl":"https:\u002F\u002Fwww.paypal.com\u002Fsdk\u002Fjs"},"stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","log":{"json":true,"level":"info"},"imageUploadMaxSizeMb":25,"staffPicks":{"title":"Staff Picks","catalogId":"c7bc6e1ee00f"}},"session":{"xsrf":""}}</script><script>window.__APOLLO_STATE__ = {"ROOT_QUERY":{"__typename":"Query","viewer":null,"variantFlags":[{"__typename":"VariantFlag","name":"enable_sprig","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_cancellation_discount_v1_1","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_boost_nia_v01","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_server_upstream_deadlines","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_moc_load_processor_all_recs_surfaces","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pill_based_home_feed","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_speechify_widget","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_apple_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tipping_v0_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_new_push_notification_endpoint","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_dynamic_aspirational_paywall","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"allow_access","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_response_markup","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_switch_plan_premium_tier","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_friend_links_postpage_banners","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_diversification_rex","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_maim_the_meter","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_intrinsic_automatic_actions","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_deprecate_legacy_providers_v3","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_plans_page_branding_v2","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"enable_bg_post_post","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_marketing_emails","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mastodon_for_members","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_monthly_premium_plan","valueType":{"__typename":"VariantFlagString","value":"12a660186432"}},{"__typename":"VariantFlag","name":"textshots_userid","valueType":{"__typename":"VariantFlagString","value":""}},{"__typename":"VariantFlag","name":"limit_user_follows","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_group_gifting","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_social_share_sheet","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_app_flirty_thirty","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tipping_v0_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_lists_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rito_upstream_deadlines","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"can_receive_tips_v0","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_trial_membership","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_archive_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ml_rank_rex_anno","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_editor_new_publishing_flow","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_recommended_publishers_query","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_continue_this_thread","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ranker_v10","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"enable_starspace","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_verifications_service","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_speechify_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_engagement_service_publish_response","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_seamless_social_sharing","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"skip_fs_cache_user_vals","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_cancellation_discount_v1_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_apple_sign_in","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"disable_rex_pub_featuring_recirc","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pub_featuring_notifications","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_susi_redesign_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"coronavirus_topic_recirc","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_abandoned_paywall_promotion_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_conversion_ranker_v2","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"price_smoke_test_monthly","valueType":{"__typename":"VariantFlagString","value":""}},{"__typename":"VariantFlag","name":"enable_newsletter_lo_flow_custom_domains","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_publish_permission_check","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_recaptcha_enterprise","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_topic_portals","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_bottom_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_monthly_plan","valueType":{"__typename":"VariantFlagString","value":"60e220181034"}},{"__typename":"VariantFlag","name":"enable_mastodon_avatar_upload","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"num_post_bottom_responses_to_show","valueType":{"__typename":"VariantFlagNumber","value":3}},{"__typename":"VariantFlag","name":"enable_eventstats_event_processing","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_inline_comments","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_legacy_feed_in_iceland","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"can_send_tips_v0","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_bottom_responses_input","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_dense_post_preview","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"enable_pub_featuring_post_page_label","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pp_country_expansion","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_author_cards_byline","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_apple_pay","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_footer_app_buttons","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_premium_tier","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"price_smoke_test_yearly","valueType":{"__typename":"VariantFlagString","value":""}},{"__typename":"VariantFlag","name":"allow_signup","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"mobile_custom_app_icon","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_offline_reading","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_medium2_kbfd","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_new_manage_membership_flow","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_client","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mastodon_for_members_username_selection","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_update_explore_wtf","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_updated_pub_recs_ui","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_two_hour_refresh","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_annual_plan","valueType":{"__typename":"VariantFlagString","value":"2c754bcc2995"}},{"__typename":"VariantFlag","name":"enable_android_verified_author","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_boost_experiment","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"enable_import","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_autorefresh","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_update_topic_portals_wtf","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_iceland_forced_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lo_homepage","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"enable_premium_tier_badge","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tribute_landing_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_configure_pronouns","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_offline_reading","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_homepage","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_bottom_responses_native","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_publication_hierarchy_v2_web_multivariate","valueType":{"__typename":"VariantFlagString","value":"publication_hierarchy"}},{"__typename":"VariantFlag","name":"limit_post_referrers","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_auto_follow_on_subscribe","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_sharer_create_post_share_key","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_lock_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"reengagement_notification_duration","valueType":{"__typename":"VariantFlagNumber","value":3}},{"__typename":"VariantFlag","name":"browsable_stream_config_bucket","valueType":{"__typename":"VariantFlagString","value":"curated-topics"}},{"__typename":"VariantFlag","name":"enable_ios_easy_resubscribe","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pre_pp_v4","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_aggregator_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_author_cards","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_google_one_tap","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_friend_links_creation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_miro_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"allow_test_auth","valueType":{"__typename":"VariantFlagString","value":"disallow"}},{"__typename":"VariantFlag","name":"enable_abandoned_cart_promotion_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"onboarding_tags_from_top_views","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"redefined_top_posts","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_annual_premium_plan","valueType":{"__typename":"VariantFlagString","value":"4a442ace1476"}},{"__typename":"VariantFlag","name":"enable_ios_dynamic_paywall_programming","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_new_stripe_customers","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_homepage_featured_feed","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_custom_moc_preview_for_google_referrer","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_simplified_digest_v2_b","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_susi_redesign_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_iceland_nux","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_syntax_highlight","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_moc_load_processor_c","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pub_featuring","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_see_pronouns","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tick_landing_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_display_paywall_after_onboarding","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"rex_generator_max_candidates","valueType":{"__typename":"VariantFlagNumber","value":1000}},{"__typename":"VariantFlag","name":"android_enable_friend_links_postpage_banners","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_reading_history","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_image_sharer","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tag_recs","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_paypal","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_deviant_get_variant_flag_from_medium2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_pub_follower_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"glyph_font_set","valueType":{"__typename":"VariantFlagString","value":"m2-unbound-source-serif-pro"}},{"__typename":"VariantFlag","name":"ios_enable_verified_book_author","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_google_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_medium_banner_survey","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_medium_com_canonical_urls","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_sharer_validate_post_share_key","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_friend_links_creation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_dynamic_programming_paywall","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pub_featuring_stats","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_trust_service_recaptcha","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_entities_to_follow_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_hybrid_ranking_model","valueType":{"__typename":"VariantFlagString","value":"experiment"}},{"__typename":"VariantFlag","name":"enable_pp_v4","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"disable_partner_program_enrollment","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_automod","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_google_pay","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_integration","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_branch_io","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_conversion_model_v2","valueType":{"__typename":"VariantFlagString","value":"group_2"}},{"__typename":"VariantFlag","name":"enable_winback_promotion_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_home_post_menu","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_in_app_free_trial","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_publication_hierarchy_v2_web","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_recirc_model","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_dynamic_paywall_aspiriational","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_members_only_audio","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"goliath_externalsearch_enable_comment_deindexation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_rating_prompt_stories_read_threshold","valueType":{"__typename":"VariantFlagNumber","value":2}},{"__typename":"VariantFlag","name":"enable_moc_load_processor_first_story","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_abandoned_paywall_email_experiment","valueType":{"__typename":"VariantFlagString","value":"experiment"}},{"__typename":"VariantFlag","name":"enable_creator_welcome_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"get_highlights_from_engagement","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"reader_fair_distribution_non_qp","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"signup_services","valueType":{"__typename":"VariantFlagString","value":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple"}},{"__typename":"VariantFlag","name":"enable_braintree_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_cache_less_following_feed","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_remove_twitter_onboarding_step","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"signin_services","valueType":{"__typename":"VariantFlagString","value":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple"}}],"collectionByDomainOrSlug({\"domainOrSlug\":\"blog.angular.dev\"})":{"__ref":"Collection:447683c3d9a3"},"collection({\"id\":\"447683c3d9a3\"})":{"__ref":"Collection:447683c3d9a3"}},"ImageMetadata:1*uJa0SU-F2NXVKhHTbP1HBw.png":{"__typename":"ImageMetadata","id":"1*uJa0SU-F2NXVKhHTbP1HBw.png","originalHeight":800,"originalWidth":800,"focusPercentX":null,"focusPercentY":null},"Collection:447683c3d9a3":{"__typename":"Collection","id":"447683c3d9a3","favicon":{"__ref":"ImageMetadata:1*uJa0SU-F2NXVKhHTbP1HBw.png"},"customDomainState":{"__typename":"CustomDomainState","live":{"__typename":"CustomDomain","domain":"blog.angular.dev","status":"ACTIVE","isSubdomain":false}},"slug":"angular-blog","name":"Angular Blog","domain":"blog.angular.dev","customStyleSheet":{"__ref":"CustomStyleSheet:5481980c729d"},"colorPalette":{"__typename":"ColorPalette","highlightSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FFF4F2F2","point":0},{"__typename":"ColorPoint","color":"#FFF2F0F0","point":0.1},{"__typename":"ColorPoint","color":"#FFF0EEEE","point":0.2},{"__typename":"ColorPoint","color":"#FFEEECEC","point":0.3},{"__typename":"ColorPoint","color":"#FFECEBEA","point":0.4},{"__typename":"ColorPoint","color":"#FFEAE9E8","point":0.5},{"__typename":"ColorPoint","color":"#FFE8E7E7","point":0.6},{"__typename":"ColorPoint","color":"#FFE6E5E5","point":0.7},{"__typename":"ColorPoint","color":"#FFE4E3E3","point":0.8},{"__typename":"ColorPoint","color":"#FFE2E1E1","point":0.9},{"__typename":"ColorPoint","color":"#FFE0DFDF","point":1}]},"defaultBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FF848585","point":0},{"__typename":"ColorPoint","color":"#FF7B7B7B","point":0.1},{"__typename":"ColorPoint","color":"#FF717272","point":0.2},{"__typename":"ColorPoint","color":"#FF686868","point":0.3},{"__typename":"ColorPoint","color":"#FF5E5E5E","point":0.4},{"__typename":"ColorPoint","color":"#FF545454","point":0.5},{"__typename":"ColorPoint","color":"#FF494A4A","point":0.6},{"__typename":"ColorPoint","color":"#FF3F3F3F","point":0.7},{"__typename":"ColorPoint","color":"#FF333333","point":0.8},{"__typename":"ColorPoint","color":"#FF272727","point":0.9},{"__typename":"ColorPoint","color":"#FF1A1A1A","point":1}]},"tintBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FFFFFFFF","point":0},{"__typename":"ColorPoint","color":"#FFECECEC","point":0.1},{"__typename":"ColorPoint","color":"#FFD9D9D9","point":0.2},{"__typename":"ColorPoint","color":"#FFC5C6C6","point":0.3},{"__typename":"ColorPoint","color":"#FFB1B1B1","point":0.4},{"__typename":"ColorPoint","color":"#FF9C9D9D","point":0.5},{"__typename":"ColorPoint","color":"#FF868787","point":0.6},{"__typename":"ColorPoint","color":"#FF6F7071","point":0.7},{"__typename":"ColorPoint","color":"#FF575959","point":0.8},{"__typename":"ColorPoint","color":"#FF3D3F3F","point":0.9},{"__typename":"ColorPoint","color":"#FF202122","point":1}]}},"description":"The latest news and tips from the Angular team","editorsNote":"Angular is a web framework that empowers developers to build fast, reliable applications.\nMaintained by a dedicated team at Google, Angular provides a broad suite of tools, APIs, and libraries to simplify and streamline your development workflow. Angular gives you a solid platform on which to build fast, reliable applications that scale with both the size of your team and the size of your codebase.","avatar":{"__ref":"ImageMetadata:1*uJa0SU-F2NXVKhHTbP1HBw.png"},"facebookPageName":null,"instagramUsername":null,"twitterUsername":"angular","editors":[{"__typename":"CollectionMastheadUserItem","isExcluded":null,"user":{"__ref":"User:b9c466d8885d"}},{"__typename":"CollectionMastheadUserItem","isExcluded":null,"user":{"__ref":"User:a7db01a91fcb"}},{"__typename":"CollectionMastheadUserItem","isExcluded":null,"user":{"__ref":"User:c8e30afa4390"}},{"__typename":"CollectionMastheadUserItem","isExcluded":null,"user":{"__ref":"User:6b9d8506b756"}},{"__typename":"CollectionMastheadUserItem","isExcluded":null,"user":{"__ref":"User:ea78c8358e83"}},{"__typename":"CollectionMastheadUserItem","isExcluded":null,"user":{"__ref":"User:6379929b352"}}],"newsletterV3":null,"viewerEdge":{"__ref":"CollectionViewerEdge:collectionId:447683c3d9a3-viewerId:lo_d2441f8e67fe"},"subscriberCount":57209,"isAuroraVisible":true,"legacyHeaderBackgroundImage":{"__ref":"ImageMetadata:1*Ax_AEqeNfZSPrqTYkmKzZQ@2x.png"},"logo":{"__ref":"ImageMetadata:1*uJa0SU-F2NXVKhHTbP1HBw.png"},"navItems":[],"homepagePostsConnection:{\"paging\":{\"limit\":10},\"includeDistributedResponses\":false}":{"__typename":"PostConnection","posts":[{"__ref":"Post:71ba7c4169b9"},{"__ref":"Post:673ec70aea12"},{"__ref":"Post:7623cfc5f413"},{"__ref":"Post:9ca333dfc334"},{"__ref":"Post:80783969ac9d"},{"__ref":"Post:7b29dfd05b84"},{"__ref":"Post:45f552d49554"},{"__ref":"Post:f2d2648defcd"},{"__ref":"Post:475d7edbc706"},{"__ref":"Post:68a7d3a6c03d"}],"pagingInfo":{"__typename":"Paging","next":{"__typename":"PageParams","from":"L1724082172747","limit":10}}},"googleAnalyticsId":"UA-8594346-15","creator":{"__ref":"User:b9c466d8885d"},"facebookPageId":null,"tags":[],"createdAt":0,"ptsQualifiedAt":1616092925311},"CustomStyleSheet:5481980c729d":{"__typename":"CustomStyleSheet","id":"5481980c729d","global":{"__typename":"GlobalStyles","colorPalette":{"__typename":"StyleSheetColorPalette","primary":{"__typename":"ColorValue","colorPalette":{"__typename":"ColorPalette","highlightSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FFFAEBFF","point":0},{"__typename":"ColorPoint","color":"#FFF9E8FF","point":0.1},{"__typename":"ColorPoint","color":"#FFF9E5FF","point":0.2},{"__typename":"ColorPoint","color":"#FFF8E1FF","point":0.3},{"__typename":"ColorPoint","color":"#FFF7DDFF","point":0.4},{"__typename":"ColorPoint","color":"#FFF7DAFF","point":0.5},{"__typename":"ColorPoint","color":"#FFF7D6FF","point":0.6},{"__typename":"ColorPoint","color":"#FFF6D2FF","point":0.7},{"__typename":"ColorPoint","color":"#FFF6CDFF","point":0.8},{"__typename":"ColorPoint","color":"#FFF6C9FF","point":0.9},{"__typename":"ColorPoint","color":"#FFF6C4FF","point":1}]},"defaultBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FFA450FF","point":0},{"__typename":"ColorPoint","color":"#FF974FFF","point":0.1},{"__typename":"ColorPoint","color":"#FF8A4DE6","point":0.2},{"__typename":"ColorPoint","color":"#FF7D49CD","point":0.3},{"__typename":"ColorPoint","color":"#FF7044B6","point":0.4},{"__typename":"ColorPoint","color":"#FF633F9E","point":0.5},{"__typename":"ColorPoint","color":"#FF563987","point":0.6},{"__typename":"ColorPoint","color":"#FF493171","point":0.7},{"__typename":"ColorPoint","color":"#FF3B295B","point":0.8},{"__typename":"ColorPoint","color":"#FF2D2045","point":0.9},{"__typename":"ColorPoint","color":"#FF1E152E","point":1}]},"tintBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FF8514f5","colorPoints":[{"__typename":"ColorPoint","color":"#FF8514F5","point":0},{"__typename":"ColorPoint","color":"#FF9147F8","point":0.1},{"__typename":"ColorPoint","color":"#FF9E63FB","point":0.2},{"__typename":"ColorPoint","color":"#FFAB7BFF","point":0.3},{"__typename":"ColorPoint","color":"#FFB890FF","point":0.4},{"__typename":"ColorPoint","color":"#FFC5A3FF","point":0.5},{"__typename":"ColorPoint","color":"#FFD2B6FF","point":0.6},{"__typename":"ColorPoint","color":"#FFDFC7FF","point":0.7},{"__typename":"ColorPoint","color":"#FFECD8FF","point":0.8},{"__typename":"ColorPoint","color":"#FFF9E9FF","point":0.9},{"__typename":"ColorPoint","color":"#FFFFF9FF","point":1}]}}},"background":null},"fonts":{"__typename":"StyleSheetFonts","font1":{"__typename":"StyleSheetFont","name":"SANS_SERIF_1"},"font2":{"__typename":"StyleSheetFont","name":"SANS_SERIF_1"},"font3":{"__typename":"StyleSheetFont","name":"SERIF_2"}}},"header":{"__typename":"HeaderStyles","headerScale":"HEADER_SCALE_SMALL","backgroundImageDisplayMode":"IMAGE_DISPLAY_MODE_FILL","backgroundImageVerticalAlignment":"START","backgroundColorDisplayMode":"COLOR_DISPLAY_MODE_SOLID","backgroundColor":null,"secondaryBackgroundColor":null,"postBackgroundColor":null,"backgroundImage":null,"appNameColor":null,"logoImage":{"__ref":"ImageMetadata:1*uJa0SU-F2NXVKhHTbP1HBw.png"},"appNameTreatment":"NAME_TREATMENT_TEXT"},"navigation":{"__typename":"HeaderNavigation","navItems":[]}},"Membership:9c24e247-ce08-44ed-b441-a64ec544ff82":{"__typename":"Membership","tier":"MEMBER","id":"9c24e247-ce08-44ed-b441-a64ec544ff82"},"User:b9c466d8885d":{"__typename":"User","id":"b9c466d8885d","algoliaObjectId":null,"name":"Angular","bio":"Angular team at Google","imageId":"1*jlg3PXZ6PYdUGy40tXybKw.gif","membership":{"__ref":"Membership:9c24e247-ce08-44ed-b441-a64ec544ff82"},"username":"angularteam","customDomainState":null,"hasSubdomain":false,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false},"viewerEdge":{"__ref":"UserViewerEdge:userId:b9c466d8885d-viewerId:lo_d2441f8e67fe"},"twitterScreenName":""},"User:a7db01a91fcb":{"__typename":"User","id":"a7db01a91fcb","algoliaObjectId":null,"name":"Minko Gechev","bio":"Product and DevRel lead for Angular at Google.","imageId":"1*PC5hsShK0vnUFfFVoWjMNg.jpeg","membership":null,"username":"mgechev","customDomainState":null,"hasSubdomain":false,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false},"viewerEdge":{"__ref":"UserViewerEdge:userId:a7db01a91fcb-viewerId:lo_d2441f8e67fe"}},"User:c8e30afa4390":{"__typename":"User","id":"c8e30afa4390","algoliaObjectId":null,"name":"Mark Thompson (@marktechson)","bio":"Mark is a Developer Advocate on the Angular Team at Google.","imageId":"1*2hqK0rVXWghtk_RLFx33oA.jpeg","membership":null,"username":"markathompson","customDomainState":null,"hasSubdomain":false,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false}},"User:6b9d8506b756":{"__typename":"User","id":"6b9d8506b756","algoliaObjectId":null,"name":"Jane Doe","bio":"","imageId":"0*Uol4BSSNgjkV_29i","membership":null,"username":"npcteam2021","customDomainState":null,"hasSubdomain":false,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false}},"User:ea78c8358e83":{"__typename":"User","id":"ea78c8358e83","algoliaObjectId":null,"name":"Kcallanan","bio":"","imageId":"0*sFOTrCScS130BdIt","membership":null,"username":"kcallanan_10937","customDomainState":null,"hasSubdomain":false,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false}},"User:6379929b352":{"__typename":"User","id":"6379929b352","algoliaObjectId":null,"name":"Simona Cotin","bio":"Cloud Developer Advocate @Microsoft","imageId":"1*7TDr5D4Uk_l8SNpukRi2JA.jpeg","membership":null,"username":"simonaco","customDomainState":null,"hasSubdomain":false,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false}},"ImageMetadata:1*Ax_AEqeNfZSPrqTYkmKzZQ@2x.png":{"__typename":"ImageMetadata","id":"1*Ax_AEqeNfZSPrqTYkmKzZQ@2x.png","originalWidth":4080,"focusPercentX":null,"focusPercentY":null},"ImageMetadata:0*n5sTRkaK5PrljeGW":{"__typename":"ImageMetadata","id":"0*n5sTRkaK5PrljeGW","focusPercentX":null,"focusPercentY":null,"alt":"Brown dog with a large stick in the middle of a forrest."},"User:2668792322ea":{"__typename":"User","id":"2668792322ea","name":"Matthieu Riegler","viewerEdge":{"__ref":"UserViewerEdge:userId:2668792322ea-viewerId:lo_d2441f8e67fe"},"bio":"","imageId":"0*AlVzEVl10P09VRZx.jpg","membership":null,"username":"matthieuriegler","customDomainState":null,"hasSubdomain":false,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false}},"UserViewerEdge:userId:2668792322ea-viewerId:lo_d2441f8e67fe":{"__typename":"UserViewerEdge","id":"userId:2668792322ea-viewerId:lo_d2441f8e67fe","isMuting":false},"CollectionViewerEdge:collectionId:447683c3d9a3-viewerId:lo_d2441f8e67fe":{"__typename":"CollectionViewerEdge","id":"collectionId:447683c3d9a3-viewerId:lo_d2441f8e67fe","isMuting":false},"Post:71ba7c4169b9":{"__typename":"Post","id":"71ba7c4169b9","title":"Seamless data fetching with httpResource","previewImage":{"__ref":"ImageMetadata:0*n5sTRkaK5PrljeGW"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Fantastic new APIs are coming to Angular. Two years ago, we proposed making Angular a reactive web framework powered by signals. Since…","isFullContent":false},"creator":{"__ref":"User:2668792322ea"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Fseamless-data-fetching-with-httpresource-71ba7c4169b9","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":3},"visibility":"PUBLIC","clapCount":474,"isLocked":false,"firstPublishedAt":1741359772709,"latestPublishedAt":1741366610188,"pinnedAt":0,"readingTime":3.3509433962264152,"sequence":null,"isSeries":false,"uniqueSlug":"seamless-data-fetching-with-httpresource-71ba7c4169b9","pinnedByCreatorAt":0},"ImageMetadata:0*MXvOz8l93IDpSbcK":{"__typename":"ImageMetadata","id":"0*MXvOz8l93IDpSbcK","focusPercentX":null,"focusPercentY":null,"alt":"Angular 19.2 release"},"UserViewerEdge:userId:b9c466d8885d-viewerId:lo_d2441f8e67fe":{"__typename":"UserViewerEdge","id":"userId:b9c466d8885d-viewerId:lo_d2441f8e67fe","isMuting":false},"Post:673ec70aea12":{"__typename":"Post","id":"673ec70aea12","title":"Angular 19.2 Is Now Available","previewImage":{"__ref":"ImageMetadata:0*MXvOz8l93IDpSbcK"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"And we’re back with Angular’s latest minor release, version 19.2, bringing new APIs and experimental features to empower developers on…","isFullContent":false},"creator":{"__ref":"User:b9c466d8885d"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Fangular-19-2-is-now-available-673ec70aea12","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":10},"visibility":"PUBLIC","clapCount":495,"isLocked":false,"firstPublishedAt":1741193707267,"latestPublishedAt":1741291585603,"pinnedAt":0,"readingTime":2.750943396226415,"sequence":null,"isSeries":false,"uniqueSlug":"angular-19-2-is-now-available-673ec70aea12","pinnedByCreatorAt":0},"ImageMetadata:1*Sfd2NqT0EBVj0uQVUwSDnw.jpeg":{"__typename":"ImageMetadata","id":"1*Sfd2NqT0EBVj0uQVUwSDnw.jpeg","focusPercentX":null,"focusPercentY":null,"alt":"A beehive as a metaphor for Micro Frontends: Several small units forming a larger one."},"User:a63cf309191b":{"__typename":"User","id":"a63cf309191b","name":"Manfred Steyer","viewerEdge":{"__ref":"UserViewerEdge:userId:a63cf309191b-viewerId:lo_d2441f8e67fe"},"bio":"","imageId":"0*ie_F70F4bb0alhdm","membership":null,"username":"manfredsteyer81","customDomainState":null,"hasSubdomain":false,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false}},"UserViewerEdge:userId:a63cf309191b-viewerId:lo_d2441f8e67fe":{"__typename":"UserViewerEdge","id":"userId:a63cf309191b-viewerId:lo_d2441f8e67fe","isMuting":false},"Post:7623cfc5f413":{"__typename":"Post","id":"7623cfc5f413","title":"Micro Frontends with Angular and Native Federation","previewImage":{"__ref":"ImageMetadata:1*Sfd2NqT0EBVj0uQVUwSDnw.jpeg"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Enterprise-scale software systems are often implemented by several cross-functional teams. To enable such teams to provide new features…","isFullContent":false},"creator":{"__ref":"User:a63cf309191b"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Fmicro-frontends-with-angular-and-native-federation-7623cfc5f413","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":7},"visibility":"PUBLIC","clapCount":475,"isLocked":false,"firstPublishedAt":1739199751642,"latestPublishedAt":1739199751642,"pinnedAt":0,"readingTime":8.383962264150943,"sequence":null,"isSeries":false,"uniqueSlug":"micro-frontends-with-angular-and-native-federation-7623cfc5f413","pinnedByCreatorAt":0},"ImageMetadata:1*aCsnm9viiL5Fo0JC-I_exQ.png":{"__typename":"ImageMetadata","id":"1*aCsnm9viiL5Fo0JC-I_exQ.png","focusPercentX":null,"focusPercentY":null,"alt":"Banner with the Angular logo"},"UserViewerEdge:userId:a7db01a91fcb-viewerId:lo_d2441f8e67fe":{"__typename":"UserViewerEdge","id":"userId:a7db01a91fcb-viewerId:lo_d2441f8e67fe","isMuting":false},"Post:9ca333dfc334":{"__typename":"Post","id":"9ca333dfc334","title":"Angular 2025 Strategy","previewImage":{"__ref":"ImageMetadata:1*aCsnm9viiL5Fo0JC-I_exQ.png"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"For the past two and a half years, we’ve been laser focused on improving developer experience and performance for all Angular developers…","isFullContent":false},"creator":{"__ref":"User:a7db01a91fcb"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Fangular-2025-strategy-9ca333dfc334","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":24},"visibility":"PUBLIC","clapCount":1398,"isLocked":false,"firstPublishedAt":1736812901183,"latestPublishedAt":1736812901183,"pinnedAt":0,"readingTime":6.518867924528302,"sequence":null,"isSeries":false,"uniqueSlug":"angular-2025-strategy-9ca333dfc334","pinnedByCreatorAt":0},"ImageMetadata:1*KcUMhKfzcGYDqgbDQY0tkw.png":{"__typename":"ImageMetadata","id":"1*KcUMhKfzcGYDqgbDQY0tkw.png","focusPercentX":null,"focusPercentY":null,"alt":null},"Post:80783969ac9d":{"__typename":"Post","id":"80783969ac9d","title":"Try Out the New Signal Input Migrations","previewImage":{"__ref":"ImageMetadata:1*KcUMhKfzcGYDqgbDQY0tkw.png"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Authors: Paul Gschwendtner Mark Thompson","isFullContent":false},"creator":{"__ref":"User:b9c466d8885d"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Ftry-out-the-new-signal-input-migrations-80783969ac9d","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":2},"visibility":"PUBLIC","clapCount":343,"isLocked":false,"firstPublishedAt":1736454215432,"latestPublishedAt":1736783701037,"pinnedAt":0,"readingTime":2,"sequence":null,"isSeries":false,"uniqueSlug":"try-out-the-new-signal-input-migrations-80783969ac9d","pinnedByCreatorAt":0},"ImageMetadata:1*IKZuN_kzUYPl37lBXQkymQ.png":{"__typename":"ImageMetadata","id":"1*IKZuN_kzUYPl37lBXQkymQ.png","focusPercentX":null,"focusPercentY":null,"alt":"Banner with the Angular logo saying “v19 is now available”"},"Post:7b29dfd05b84":{"__typename":"Post","id":"7b29dfd05b84","title":"Meet Angular v19","previewImage":{"__ref":"ImageMetadata:1*IKZuN_kzUYPl37lBXQkymQ.png"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"In the past two years we doubled down on our investment in developer experience and performance — in every single release we’ve been…","isFullContent":false},"creator":{"__ref":"User:a7db01a91fcb"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Fmeet-angular-v19-7b29dfd05b84","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":56},"visibility":"PUBLIC","clapCount":3588,"isLocked":false,"firstPublishedAt":1732035485193,"latestPublishedAt":1733366714930,"pinnedAt":0,"readingTime":17.65,"sequence":null,"isSeries":false,"uniqueSlug":"meet-angular-v19-7b29dfd05b84","pinnedByCreatorAt":0},"ImageMetadata:":{"__typename":"ImageMetadata","id":"","focusPercentX":null,"focusPercentY":null,"alt":null},"Post:45f552d49554":{"__typename":"Post","id":"45f552d49554","title":"Angular v19 Release: Join the Watch Parties!","previewImage":{"__ref":"ImageMetadata:"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"The Angular v19 release is just around the corner, and developers around the world are gearing up to celebrate.","isFullContent":false},"creator":{"__ref":"User:b9c466d8885d"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Fangular-v19-release-join-the-watch-parties-45f552d49554","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":3},"visibility":"PUBLIC","clapCount":266,"isLocked":false,"firstPublishedAt":1731610352435,"latestPublishedAt":1731682660515,"pinnedAt":0,"readingTime":0.720754716981132,"sequence":null,"isSeries":false,"uniqueSlug":"angular-v19-release-join-the-watch-parties-45f552d49554","pinnedByCreatorAt":0},"ImageMetadata:1*0VCw1SdSMbXUci5dQac7Gg.png":{"__typename":"ImageMetadata","id":"1*0VCw1SdSMbXUci5dQac7Gg.png","focusPercentX":null,"focusPercentY":null,"alt":"Updates to effect"},"Post:f2d2648defcd":{"__typename":"Post","id":"f2d2648defcd","title":"Latest updates to effect() in Angular","previewImage":{"__ref":"ImageMetadata:1*0VCw1SdSMbXUci5dQac7Gg.png"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Authors: Alex Rickabaugh Mark Thompson","isFullContent":false},"creator":{"__ref":"User:b9c466d8885d"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Flatest-updates-to-effect-in-angular-f2d2648defcd","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":2},"visibility":"PUBLIC","clapCount":635,"isLocked":false,"firstPublishedAt":1728324401111,"latestPublishedAt":1728325460121,"pinnedAt":0,"readingTime":2.505660377358491,"sequence":null,"isSeries":false,"uniqueSlug":"latest-updates-to-effect-in-angular-f2d2648defcd","pinnedByCreatorAt":0},"ImageMetadata:1*KSsGo7ZogfbS0w5DPj-Q8g.png":{"__typename":"ImageMetadata","id":"1*KSsGo7ZogfbS0w5DPj-Q8g.png","focusPercentX":null,"focusPercentY":null,"alt":"The future is standalone!"},"User:f91bdfa99b73":{"__typename":"User","id":"f91bdfa99b73","name":"Alex Rickabaugh","viewerEdge":{"__ref":"UserViewerEdge:userId:f91bdfa99b73-viewerId:lo_d2441f8e67fe"},"bio":"","imageId":"1*yNCBVxf7m7JX0QAJQBEEAA.jpeg","membership":{"__ref":"Membership:f955caa211d2"},"username":"synalx","customDomainState":null,"hasSubdomain":false,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false}},"UserViewerEdge:userId:f91bdfa99b73-viewerId:lo_d2441f8e67fe":{"__typename":"UserViewerEdge","id":"userId:f91bdfa99b73-viewerId:lo_d2441f8e67fe","isMuting":false},"Membership:f955caa211d2":{"__typename":"Membership","tier":"MEMBER","id":"f955caa211d2"},"Post:475d7edbc706":{"__typename":"Post","id":"475d7edbc706","title":"The future is standalone!","previewImage":{"__ref":"ImageMetadata:1*KSsGo7ZogfbS0w5DPj-Q8g.png"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Angular v19 will make standalone: true the default for components, directives, and pipes.","isFullContent":false},"creator":{"__ref":"User:f91bdfa99b73"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Fthe-future-is-standalone-475d7edbc706","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":6},"visibility":"PUBLIC","clapCount":1373,"isLocked":false,"firstPublishedAt":1725380326542,"latestPublishedAt":1725380326542,"pinnedAt":0,"readingTime":1.758490566037736,"sequence":null,"isSeries":false,"uniqueSlug":"the-future-is-standalone-475d7edbc706","pinnedByCreatorAt":0},"ImageMetadata:0*jcAXrvX40O0dYbez":{"__typename":"ImageMetadata","id":"0*jcAXrvX40O0dYbez","focusPercentX":null,"focusPercentY":null,"alt":"Support for isolatedModules available in angular v18.2"},"Post:68a7d3a6c03d":{"__typename":"Post","id":"68a7d3a6c03d","title":"Using isolatedModules in Angular 18.2","previewImage":{"__ref":"ImageMetadata:0*jcAXrvX40O0dYbez"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Authors: Mark Thompson Charles Lyding","isFullContent":false},"creator":{"__ref":"User:b9c466d8885d"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fblog.angular.dev\u002Fusing-isolatedmodules-in-angular-18-2-68a7d3a6c03d","collection":{"__ref":"Collection:447683c3d9a3"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":4},"visibility":"PUBLIC","clapCount":575,"isLocked":false,"firstPublishedAt":1724082172747,"latestPublishedAt":1724082172747,"pinnedAt":0,"readingTime":1.3358490566037735,"sequence":null,"isSeries":false,"uniqueSlug":"using-isolatedmodules-in-angular-18-2-68a7d3a6c03d","pinnedByCreatorAt":0}}</script><script src="https://cdn-client.medium.com/lite/static/js/manifest.e97c1cba.js"></script><script src="https://cdn-client.medium.com/lite/static/js/9865.1496d74a.js"></script><script src="https://cdn-client.medium.com/lite/static/js/main.f63e0c8f.js"></script><script src="https://cdn-client.medium.com/lite/static/js/instrumentation.5bef8967.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/reporting.ff22a7a5.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/9120.5df29668.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5049.d1ead72d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4505.6dfaf853.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2707.2278ed76.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/9977.933c1c9a.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8599.2418028f.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3045.1cc3d8cb.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6349.3329b100.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2648.26563adf.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8393.67b7130d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6428.1164cc97.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6199.3b90990d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5642.472363b5.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3735.14a96d81.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4124.0567a444.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4769.e7f80c12.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3591.8b4ac29e.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/1676.50cd0d55.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6858.06a7a915.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6594.e5e4a306.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/PublicationProfilePage.MainContent.8d66130e.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5492.9bc0c437.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2278.39be40be.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3346.9762dab3.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8461.8e85728d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/PublicationProfilePage.RightColumnContent.fa27cca4.chunk.js"></script><script>window.main();</script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'91ff46e17cf3c9c6',t:'MTc0MTkwODE4My4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10