<!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html charset=UTF-8"><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><meta name="x-apple-disable-message-reformatting"><title>TLDR WebDev</title><meta name="color-scheme" content="light dark"><meta name="supported-color-schemes" content="light dark"><style type="text/css"> :root { color-scheme: light dark; supported-color-schemes: light dark; } *, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } * { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; } html, body, .document { width: 100% !important; height: 100% !important; margin: 0; padding: 0; } body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; } div[style*="margin: 16px 0"] { margin: 0 !important; } table, td { mso-table-lspace: 0pt; mso-table-rspace: 0pt; } table { border-spacing: 0; border-collapse: collapse; table-layout: fixed; margin: 0 auto; } img { -ms-interpolation-mode: bicubic; max-width: 100%; border: 0; } *[x-apple-data-detectors] { color: inherit !important; text-decoration: none !important; } .x-gmail-data-detectors, .x-gmail-data-detectors *, .aBn { border-bottom: 0 !important; cursor: default !important; } .btn { -webkit-transition: all 200ms ease; transition: all 200ms ease; } .btn:hover { background-color: #f67575; border-color: #f67575; } * { font-family: Arial, Helvetica, sans-serif; font-size: 18px; } @media screen and (max-width: 600px) { .container { width: 100%; margin: auto; } .stack { display: block!important; width: 100%!important; max-width: 100%!important; } .btn { display: block; width: 100%; text-align: center; } } body, p, td, tr, .body, table, h1, h2, h3, h4, h5, h6, div, span { background-color: #FEFEFE !important; color: #010101 !important; } @media (prefers-color-scheme: dark) { body, p, td, tr, .body, table, h1, h2, h3, h4, h5, h6, div, span { background-color: #27292D !important; color: #FEFEFE !important; } } a { color: inherit !important; text-decoration: underline !important; } </style><!--[if mso | ie]> <style type="text/css"> a { background-color: #FEFEFE !important; color: #010101 !important; } @media (prefers-color-scheme: dark) { a { background-color: #27292D !important; color: #FEFEFE !important; } } </style> <![endif]--></head><body class=""> <div style="display: none; max-height: 0px; overflow: hidden;">Chrome's AI team is building web APIs that let users run AI models directly in the browser, aiming to make these capabilities standard β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β </div> <div style="display: none; max-height: 0px; overflow: hidden;"> <br> </div> <table align="center" class="document"><tbody><tr><td valign="top"> <table align="center" border="0" cellpadding="0" cellspacing="0" class="container" width="600"><tbody><tr class="inner-body"><td> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr class="header"><td bgcolor="" class="container"> <table width="100%"><tbody><tr><td class="container"> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" style="margin-top: 0px;" width="100%"><tbody><tr><td style="padding: 0px;"> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div style="text-align: center;"> <span style="margin-right: 0px;"><a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Ftldr.tech%2Fwebdev%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/lBGy6p6b-januITovXS1FR0JIwlzpSrL3k2RcZI9n2k=420" rel="noopener noreferrer" target="_blank"><span>Sign Up</span></a> |<span style="margin-right: 2px; margin-left: 2px;"><a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fadvertise.tldr.tech%2F%3Futm_source=tldrwebdev%26utm_medium=newsletter%26utm_campaign=advertisetopnav/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/rgOLduhVHTXYO_tEXeDNHFFryQ2_ZcLs2nSdfRDtsNk=420" rel="noopener noreferrer" target="_blank"><span>Advertise</span></a></span>|<span style="margin-left: 2px;"><a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fa.tldrnewsletter.com%2Fweb-version%3Fep=1%26lc=156b9020-84b7-11f0-a976-55fc1d40139c%26p=5442ff08-84bd-11f0-9d77-590dc827b243%26pt=campaign%26t=1756465646%26s=b67aa7813befe3ee4ffb6f63444d6d9b5a46b19f0c4ffc5b3ce32431b1253fdf/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/P0boKxYSI091Odyx0ROFJULnyxzke9OsLxAgkjeAKqc=420"><span>View Online</span></a></span> <br> </span></div> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="text-align: center;"><span data-darkreader-inline-color="" style="--darkreader-inline-color:#3db3ff; color: rgb(51, 175, 255) !important; font-size: 30px;">T</span><span style="font-size: 30px;"><span data-darkreader-inline-color="" style="color: rgb(232, 192, 96) !important; --darkreader-inline-color:#e8c163; font-size:30px;">L</span><span data-darkreader-inline-color="" style="color: rgb(101, 195, 173) !important; --darkreader-inline-color:#6ec7b2; font-size:30px;">D</span></span><span data-darkreader-inline-color="" style="--darkreader-inline-color:#dd6e6e; color: rgb(220, 107, 107) !important; font-size: 30px;">R</span> <br> </td></tr></tbody></table> <br> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody></tbody></table> <table style="table-layout: fixed; width:100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;"> <div style="text-align: center;"> <h1><strong> TLDR Web Dev <span id="date">2025-08-29</span></strong></h1> </div> </td></tr></tbody></table> <table style="table-layout: fixed; width:100%;" width="100%"><tbody></tbody></table> </td></tr></tbody></table> </td></tr></tbody></table> </td></tr> <tr bgcolor=""><td class="container"> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td style="padding: 0px;"> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"><span style="font-size: 36px;">π§βπ»</span></div> </div> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"> <h1><strong>Articles & Tutorials</strong></h1> </div> </div> </td></tr></tbody></table> <table style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.jonoalderson.com%2Fconjecture%2Fyoure-loading-fonts-wrong%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/pbpZBbMHKdXLoDnddGHBepbqEvDeAYsa0oGo8BmGT_0=420"> <span> <strong>You're loading fonts wrong (and it's crippling your performance) (8 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> Most websites handle fonts terribly, creating unnecessary performance bottlenecks even though typography directly impacts user experience and business results. This deep dive traces how we got here - from early "web-safe" fonts through clunky Flash workarounds to today's Google Fonts - and explains why outdated practices and misconceptions still plague modern web development. The author makes the case that fonts deserve as much optimization attention as images or JavaScript, and promises to show you how browsers actually load fonts and how to do it right. </span> </span> </div> </td></tr></tbody></table> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.rahuljuliato.com%2Fposts%2Freact-workers%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/P5tUdOxA6nmHxnNEwmDo-KZ_FvgmM0wF6MqntyhW1Kc=420"> <span> <strong>Unlocking Web Workers with React: A Step-by-Step Guide (8 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> This guide shows React devs how to use Web Workers to prevent their apps from freezing during heavy computations. Starting with a common problem - UI that locks up when calculating something like Fibonacci numbers - the author walks through moving these tasks off the main thread. The tutorial covers practical implementation details and progresses to more advanced patterns like task queuing, caching results, and using Shared Workers to communicate between different browser tabs. </span> </span> </div> </td></tr></tbody></table> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwebkit.org%2Fblog%2F17285%2Frolling-the-dice-with-css-random%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/wt9Za4T-dh_eGVolD5p8bBAnW4rBrz9QwZVTGdrNe08=420"> <span> <strong>Rolling the Dice with CSS random() (8 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> Until now, there hasn't been a way to create random numbers in CSS. CSS is getting a built-in random() function that can be useful for adding natural variation to animations, layouts, colors, and positioning. The function works with different number types like pixels, percentages, and angles, opening up possibilities for randomly scattered star backgrounds, organic grid layouts, and tilted photo stacks. You can even share the same random values across multiple elements using named identifiers. </span> </span> </div> </td></tr></tbody></table> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"><span style="font-size: 36px;">π§ </span></div> </div> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"> <h1><strong>Opinions & Advice</strong></h1> </div> </div> </td></tr></tbody></table> <table style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fsiliconangle.com%2F2025%2F08%2F26%2Fstanford-study-finds-ai-reduced-availability-entry-level-programming-jobs%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/NO1x97ruFR83plrwSXUyMvv31QQuFFDIzdh7YVHyOJc=420"> <span> <strong>Stanford study finds AI has reduced availability of entry-level programming jobs (5 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> A Stanford study tracking millions of payroll records revealed that entry-level programming jobs for recent graduates have dropped 20% since ChatGPT launched in late 2022. The researchers found that AI automation - not broader economic trends - is driving job losses across software development, customer service, accounting, and admin roles. Overall, entry-level positions in AI-exposed fields are down 6%. Meanwhile, older workers and people in jobs where AI serves as a helpful tool rather than a replacement are actually seeing 6-13% job growth. </span> </span> </div> </td></tr></tbody></table> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fmartinfowler.com%2Farticles%2F202508-ai-thoughts.html%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/vjXk3scCJSaAWaST_ZeQVPBuYY7or2Dei8iyVi14L7I=420"> <span> <strong>Some thoughts on LLMs and Software Development (4 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> We're measuring AI adoption all wrong - most surveys focus on basic autocomplete features instead of more powerful workflows where AI directly modifies your codebase. We're in an AI bubble that will eventually burst, but it might deliver genuine value first. There are some concerning security risks, especially AI browser extensions that could be manipulated into accessing private accounts. It is unknown what this all means for programming careers. </span> </span> </div> </td></tr></tbody></table> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fopen.substack.com%2Fpub%2Fhybridhacker%2Fp%2Fcareer-frameworks%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/EJEGiN6uXoV9e2wiYZhGzV2yWWnUYV_uV1fHzHlRir0=420"> <span> <strong>Career Frameworks πͺ (8 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> Career frameworks are structured documents that map out how engineers progress through different levels and what skills they need at each stage. They solve three key problems: making hiring decisions more consistent by clarifying what each role actually requires, helping engineers understand how to advance their careers, and reducing bias in performance reviews through objective criteria. Small teams under 10 people should start with basic engineering principles, then build out full frameworks once clear seniority gaps appear or when they introduce management tracks. </span> </span> </div> </td></tr></tbody></table> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"><span style="font-size: 36px;">π</span></div></div> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"> <h1><strong>Launches & Tools</strong></h1> </div> </div> </td></tr></tbody></table> <table style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fgithub.com%2FChainlift%2Fliftkit%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/sRlls7c4pd_ef7Rdzq85_2mCqLbfEG9iGKBNf9YJ1_U=420"> <span> <strong>Liftkit: UI framework based on the golden ratio (GitHub Repo)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> LiftKit is a UI framework built around golden ratio proportions that takes you from design mockups to production code. It automatically corrects visual spacing and uses Material 3's dynamic color system while offering both a component library and matching Figma/Webflow templates. You can either start with a Next.js template or add LiftKit to an existing project through its CLI. LiftKit is aimed at designers and developers who want pixel-perfect results with advanced visual features. It automatically removes unused CSS to keep builds lean. </span> </span> </div> </td></tr></tbody></table> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fd2lang.com%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/JzMwiQM9S30IqNj6qbFmc_Cgj4p43rP1iIfBlVyZUp8=420"> <span> <strong>D2: A modern language that turns text into diagrams (Website)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> D2 lets users create polished diagrams by writing simple text descriptions instead of dragging boxes around. It comes with professional themes, a hand-drawn sketch style, animations, and built-in support for software-specific elements like code blocks, database tables, and UML diagrams. It can be used anywhere - through command line tools, editor plugins, or a web playground - and diagrams can be exported to whatever format required. </span> </span> </div> </td></tr></tbody></table> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"><span style="font-size: 36px;">π</span></div></div> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"><strong><h1>Miscellaneous</h1></strong></div> </div> </td></tr></tbody></table> <table bgcolor="" style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fdomenic.me%2Fbuiltin-ai-api-design%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/r6_E43G0JprIhnXJRtlhsXzamnBLivMbJ32uymxlbVo=420"> <span> <strong>Designing the Built-in AI Web APIs (8 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> Chrome's AI team is building web APIs that let users run AI models directly in the browser, aiming to make these capabilities standard across all browsers. The tricky part is designing APIs for such a fast-moving field - they're creating client-side JavaScript interfaces that work with models running locally on users' devices instead of the usual server-based approach. Their key decisions include using persistent sessions to manage resources better, creating unified message formats that work across different AI providers, and solving compatibility issues, since each browser might use completely different AI models under the hood. </span> </span> </div> </td></tr></tbody></table> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Falignment.anthropic.com%2F2025%2Fopenai-findings%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/JTHGck7di-egC_SiNze2q3ZR7AJ4ZgYH53kBcGuzwFI=420"> <span> <strong>Findings from a Pilot Anthropic - OpenAI Alignment Evaluation Exercise (8 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> In summer 2025, Anthropic and OpenAI tested each other's AI models for dangerous behaviors like being overly agreeable, helping with harmful requests, and trying to preserve themselves when threatened. With some safety features turned off, they found that while no models were seriously misaligned, OpenAI's o3 reasoning model performed best overall. However, several OpenAI models (GPT-4o, GPT-4.1, and o4-mini) were more willing to help with dangerous tasks like synthesizing drugs or bioweapons compared to Claude. Both companies' models showed troubling tendencies to agree with users holding harmful beliefs and, when given the chance, attempted self-preservation through tactics like blackmail. </span> </span> </div> </td></tr></tbody></table> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"><span style="font-size: 36px;">β‘</span></div></div> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;"> <div class="text-block"> <div style="text-align: center;"> <h1><strong>Quick Links</strong></h1> </div> </div> </td></tr></tbody></table> <table bgcolor="" style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fflak.tedunangst.com%2Fpost%2Fwhat-is-the-go-proxy-even-doing/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/X5mzZQaxYj3L6_GDHJVk6p-GlhMfmnq75Ekus6cZWjk=420"> <span> <strong>What is the go proxy even doing? (8 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> The Go module proxy has a wasteful habit of downloading entire repositories from scratch every time it checks for updates, even when nothing has changed. </span> </span> </div> </td></tr></tbody></table> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Falan.norbauer.com%2Farticles%2Fastro-vs-nextjs-page-size%2F%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/_3fVQbfUf916cV98exi1b-yPgrBUtn7tAJ2zVKGMkGw=420"> <span> <strong>From Next.js to Astro: A Page Size Comparison (2 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> A numbers comparison after porting a small static Next.js site to Astro, reducing bundle size from 257kB -> 91kB and faster LCP. </span> </span> </div> </td></tr></tbody></table> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block"> <span> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fyvainee.com%2Fblog%2Fcreate-development-builds-without-an-Apple-Developer-Program%3Futm_source=tldrwebdev/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/pTLueyrzpxNran2QvfsA5JrSKAfKf_LOa-591o2fj90=420"> <span> <strong>Create Development Builds Without an Apple Developer Program (5 minute read)</strong> </span> </a> <br> <br> <span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;"> Registering all team devices through Expo, having the paid developer regenerate credentials to include everyone's device IDs, and then downloading those credentials locally to build and install development versions using 'eas build --local' lets unpaid team members test on real devices without cloud build credits while using the paid account's signing capabilities. </span> </span> </div> </td></tr></tbody></table> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="left" style="word-break: break-word; vertical-align: top; padding: 5px 10px;"> <p style="padding: 0; margin: 0; font-size: 22px; color: #000000; line-height: 1.6; font-weight: bold;"> Want to advertise in TLDR? π° </p> <div class="text-block" style="margin-top: 10px;"> If your company is interested in reaching an audience of web developers and engineering decision makers, you may want to <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fadvertise.tldr.tech%2F%3Futm_source=tldrwebdev%26utm_medium=newsletter%26utm_campaign=advertisecta/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/lKBLOi1YI7ANu_l0jbsjw7Zdt5WifxsNLqKVUS5PKao=420"><strong><span>advertise with us</span></strong></a>. </div> <br> <!-- New "Want to work at TLDR?" section --> <p style="padding: 0; margin: 0; font-size: 22px; color: #000000; line-height: 1.6; font-weight: bold;"> Want to work at TLDR? πΌ </p> <div class="text-block" style="margin-top: 10px;"> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fjobs.ashbyhq.com%2Ftldr.tech/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/pT2KFZJ4ukmv0pnBomtrmhPUGWgK8vkOAMS_CkUOCEU=420" rel="noopener noreferrer" style="color: #0000EE; text-decoration: underline;" target="_blank"><strong>Apply here</strong></a> or send a friend's resume to <a href="mailto:jobs@tldr.tech" style="color: #0000EE; text-decoration: underline;">jobs@tldr.tech</a> and get $1k if we hire them! </div> <br> <div class="text-block"> If you have any comments or feedback, just respond to this email! <br> <br> Thanks for reading, <br> <span>Priyam Mohanty</span>, <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.linkedin.com%2Fin%2Fxu-jenny%2F/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/xzGt4guvifB1lmfsjT3ob8oZq0wd1UMLbV0_Ayzc8wU=420"><span>Jenny Xu</span></a> & <span>Ceora Ford</span> <br> <br> </div> <br> </td></tr></tbody></table> <table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;"> <div class="text-block" id="testing-id"> <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Ftldr.tech%2Fwebdev%2Fmanage%3Femail=silk.theater.56%2540fwdnl.com/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/ZpkPxh2SZdyOp9Fc8G-B3nopKl4eRiAfj6Ag8RZRUyM=420">Manage your subscriptions</a> to our other newsletters on tech, startups, and programming. Or if TLDR Web Dev isn't for you, please <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fa.tldrnewsletter.com%2Funsubscribe%3Fep=1%26l=e8d201ca-3e93-11ed-9a32-0241b9615763%26lc=156b9020-84b7-11f0-a976-55fc1d40139c%26p=5442ff08-84bd-11f0-9d77-590dc827b243%26pt=campaign%26pv=4%26spa=1756465244%26t=1756465646%26s=b4ab006d24f01dd1441cda5185a949902d2e571bb6c1ffbb004822de1064420a/1/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/g5WOhIXmFbNBtfFarHZ0MkwzbZ2i1rbBNqA8Uy7YMNo=420">unsubscribe</a>. <br> </div> </td></tr></tbody></table> </td></tr></tbody></table> </td></tr></tbody></table> </td></tr></tbody></table> </td></tr></tbody></table> <img alt="" src="http://tracking.tldrnewsletter.com/CI0/01000198f582cb0f-4ae8b9f7-547a-488b-9f5d-63123b524757-000000/kMzU5I6_Dcjb21cee45MwG94kw-KwcLffFDQ3-8RF1I=420" style="display: none; width: 1px; height: 1px;"> </body></html>