<!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 Dev</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;">OpenAI's GPT-5.1-Codex-Max is an agentic coding model built on an updated reasoning foundation and designed for detailed software engineering tasks β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β </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%2Fdev%3Futm_source=tldrdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/AEr6NeoDVmn2PJ_9aee8qbyaz7VEo31aE12yIDktoqA=432" 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=tldrdev%26utm_medium=newsletter%26utm_campaign=advertisetopnav/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/TDFNve0QNKvQr1Qjig99AvP9RNyQkvA0zQ0P3tnuNq8=432" 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=bd9115bc-c5ef-11f0-8d8f-9fd4cf6848a8%26pt=campaign%26t=1763640467%26s=f93a71f6d46cce6d05a5dc461368e7186aa2ec51f028fd93356bd13fc985ab09/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/430BXdmyA76A10ynIdkBl_-CLjXn79gdt_JVzof9Sv4=432"><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><tr id="together-with"><td align="center" height="20" style="vertical-align:middle !important;" valign="middle" width="100%"><strong style="vertical-align:middle !important; height: 100%;">Together With </strong>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fgo.clerk.com%2FwXT3zg8/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/Wp6MHU763MGbqzNg_UtY9bKzZkNfS3zo8moKXImdr8A=432"><img src="https://images.tldr.tech/clerk.png" valign="middle" style="vertical-align: middle !important; height: 100%;" alt="Clerk"></a></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;">
<div style="text-align: center;">
<h1><strong> TLDR Dev <span id="date">2025-11-20</span></strong></h1>
</div>
</td></tr></tbody></table>
<table style="table-layout: fixed; width:100%;" width="100%"><tbody><tr id="sponsy-copy"><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fgo.clerk.com%2FwXT3zg8/2/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/257v52HeNp40WlW8Dq8gbVXQ57EvoGbYEapI06eeM4I=432">
<span>
<strong>Native sign-in with Apple for Expo (Sponsor)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Say hello to frictionless authentication for your iOS users! Clerk's Expo SDK now offers true <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fgo.clerk.com%2FwXT3zg8/3/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/_HtpFZi5r8bQeblcJMMjHQYu-0T_KHkxn1Ekl-bvQsc=432" rel="noopener noreferrer nofollow" target="_blank"><span>native Sign in with Apple support</span></a>, meeting Apple's requirements for third-party sign-in while providing a seamless experience focused on privacy and ease-of-use.
<p></p>
<p>Integrate in minutesβjust configure OAuth in your Clerk Dashboard and let the SDK handle native flows automatically. No hacks, no extra stepsβjust simple, beautiful authentication that works for users and developers.</p>
<p><a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fgo.clerk.com%2FwXT3zg8/4/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/dW8bMG_pxwSGUFOvy7Gh2klHlZYkkOnpBHWywXTppdc=432" rel="noopener noreferrer nofollow" target="_blank"><span>Upgrade today</span></a> and give your Expo app secure, compliant onboarding with Apple's trusted ecosystem.
</p>
</span></span></div>
</td></tr></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.geocod.io%2Fcode-and-coordinates%2F2025-11-18-the-1000-aws-mistake%2F%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/XkQlyAua-ixWdxT4LEXd39j1_NWSwrIzIoaE7fD3t6U=432">
<span>
<strong>The $1,000 AWS mistake (7 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Geocodio, a geocoding service, experienced a $1,000 AWS bill due to unexpected data transfer charges through a NAT Gateway when syncing data to S3. The team learned that traffic between EC2 and S3, even within the same region, can route through the NAT Gateway and incur costs. The solution was to implement VPC Gateway Endpoints for S3, which provide a free, direct route, bypassing the NAT Gateway.
</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%2Fwyattjoh.ca%2Fblog%2Fpartial-prerendering%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/Wp5QKIffJfJsri6sy0VlAfGpXPd8lEwxFrH0dly0KyE=432">
<span>
<strong>Partial Prerendering (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Next.js's Partial Prerendering (PPR) is a new rendering paradigm that optimizes performance by serving static parts of a page immediately while allowing dynamic components that need request data to render on the server. The first implementation in Next.js 14 used error throwing to detect request data access, but this caused issues with existing applications that had try/catch blocks and retry logic. The updated approach in Next.js 15 switches to a Promise-based system where request APIs like `cookies()` and `headers()` become asynchronous and return never-resolving promises during prerendering.
</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%2Fpedrocattori.com%2Fposts%2Fjust-javascript%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/vQlkq9hL4xZplBvXueUomuXN_9gt2oho05Xs2pfH40w=432">
<span>
<strong>Just JavaScript (6 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
"Just JavaScript" is code that works without custom transforms, allowing devs to understand and refactor their code easily. Svelte and React are not "just JavaScript" due to their unique languages/semantics and custom transforms, respectively. However, Remix 3 adheres to this principle.
</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%2Fblog.logrocket.com%2Fproduct-management%2Ftraditional-saas-playbooks-fail-ai-native-products%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/cYpmhZ4DL85B0GsVMKMRn4zsUS1ZaFcJLSp_W3bSwm8=432">
<span>
<strong>Why traditional SaaS playbooks fail for AI-native products (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Traditional SaaS go-to-market strategies don't work for AI-native products. Unlike traditional SaaS, which focuses on perfect MVPs, narrow customer profiles, and monetization-first approaches, AI-native products require breaking these rules by launching imperfect products, building viral distribution channels first, and targeting broader early customer profiles who can provide feedback and social sharing. AI-native companies must prioritize building "omnipresent" distribution channels and momentum over traditional metrics like product-market fit and willingness to pay.
</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.chrbutler.com%2Fwhat-ai-is-really-for%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/QWaMdyvUcJVrnSOWvNB9JVfFb5BlIdTfTtwT9ouuyT4=432">
<span>
<strong>What AI is Really For (12 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
The AI boom is overhyped, potentially a bubble, and may not deliver on its grand promises, especially in design. While AI can be useful in small-scale applications, its implementation doesn't actually result in as many savings as expected. Instead, the true motive behind the AI frenzy is the acquisition of resources like land, energy, and water needed to power massive data centers.
</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%2Fwww.atlassian.com%2Fwebinars%2Fbusiness%2Fhow-atlassian-and-lovable-transform-software-delivery%3Futm_source=tldr%26utm_medium=email%26utm_campaign=P:twc*O:clm*F:consideration*C:webinar*H:fy26q2*I:tldr-webdev-nov20*%26utm_sfdc-campaign_id=701QB00000bNltnYAC/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/tTM4-bZ1LF9Js0Kn3y-mOXEEl16L-Nc8a4VItscjwxE=432">
<span>
<strong>Accelerating innovation with Lovable and Atlassian (Sponsor)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
New and exciting AI capabilities are helping developers unleash their creativity faster than ever. Having systems in place keeps AI outputs structured, useful, and reusable.<p></p><p><strong>What: </strong>This <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.atlassian.com%2Fwebinars%2Fbusiness%2Fhow-atlassian-and-lovable-transform-software-delivery%3Futm_source=tldr%26utm_medium=email%26utm_campaign=P:twc*O:clm*F:consideration*C:webinar*H:fy26q2*I:tldr-webdev-nov20*%26utm_sfdc-campaign_id=701QB00000bNltnYAC/2/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/6ubYhvk7c1S7QJMPTTgB7F5j9BxvAmuQT6yevvD0M9Q=432" rel="noopener noreferrer nofollow" target="_blank"><span>live webinar on December 3/4</span></a> will demonstrate how Rovo, Rovo Dev, and Lovable combine to turn vibes into results. See how you and your team can prototype easily with Lovable - and then link directly across the Atlassian Teamwork Collection to drive collaboration and productivity.</p>
<p><strong>Who</strong>: Presented by product managers at Atlassian and Lovable</p>
<p><strong>π Join live</strong>: <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.atlassian.com%2Fwebinars%2Fbusiness%2Fhow-atlassian-and-lovable-transform-software-delivery%3Futm_source=tldr%26utm_medium=email%26utm_campaign=P:twc*O:clm*F:consideration*C:webinar*H:fy26q2*I:tldr-webdev-nov20*%26utm_sfdc-campaign_id=701QB00000bNltnYAC/3/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/PGOnwTVqNY96Qcs7YcPNEQU67AaFa7nxA3tp8Lx7IxY=432" rel="noopener noreferrer nofollow" target="_blank"><span>How Atlassian and Lovable transform software delivery</span></a></p>
<p>In the meantime, check out another can't-miss event from Atlassian, focused on strategies to future-proof your engineering org: <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.atlassian.com%2Fwebinars%2Fenterprise-cloud%2Fthe-modern-tech-leaders-playbook-for-ai-powered-teamwork%3Futm_source=tldr%26utm_medium=email%26utm_campaign=P:twc*O:clm*F:awareness*C:webinar*H:fy26q2*I:tldr-webdev-nov20*%26utm_sfdc-campaign_id=701QB00000YINAjYAP/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/TO6W6SU9fAvDVQlgI91yAYsQmG51HVMEy9ZrCfpbHII=432" rel="noopener noreferrer nofollow" target="_blank"><span>The modern tech leader's playbook for AI-powered teamwork</span></a>
</p>
</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%2Flinks.tldrnewsletter.com%2FbotDcK/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/FWbbxSlvEbAaeM920wm8pvhD56kvjSM_Vfb1oSvxChc=432">
<span>
<strong>Building more with GPT-5.1-Codex-Max (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
OpenAI's GPT-5.1-Codex-Max is an advanced agentic coding model built on an updated reasoning foundation and designed for long-running, detailed software engineering tasks. The model can operate across multiple context windows, enabling project-scale refactors and deep debugging sessions. GPT-5.1-Codex-Max is available in Codex.
</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%2Ffumadocs.dev%2F%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/K3cC59jRzxeRmKyQrbILmXUaYiI3rkWBK81Q9ppCXio=432">
<span>
<strong>FumaDocs (Website)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
FumaDocs is a documentation framework built on Next.js that uses TypeScript, MDX, and Tailwind CSS. It provides utilities, a UI, and features of Next.js App Router. FumaDocs includes built-in components and integrations, focusing on a user-friendly mobile responsive experience.
</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%2Fsimonlermen.substack.com%2Fp%2Fcan-ai-models-be-jailbroken-to-phish%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/s_8-0tPuNFIaKvrgg4opHysakEa_8jojOgKlkDHc0No=432">
<span>
<strong>Can AI Models be Jailbroken to Phish Elderly Victims? An End-to-End Evaluation (4 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
AI can be used to scam elderly people. These journalists successfully jailbroke AI models like Meta and Gemini to generate phishing emails, which were then sent to elderly participants, resulting in 11% being phished. The journalists also investigated real-world AI scam factories in Southeast Asia and found that victims were using AI chatbots to conduct scams.
</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%2Fmichaelheap.com%2Frotate-all-npm-tokens-github-actions%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/BpqZJD5s2UTwXG3LKHG2JcJ4CUspu7_lRdPIEyJCmKE=432">
<span>
<strong>Automated NPM secret rotation in GitHub Actions (3 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
NPM recently announced that all long-lived tokens are being revoked and new tokens will only be valid for a maximum of 90 days, creating challenges for automated publishing workflows. While the proper solution is to upgrade to trusted publishing (OIDC), a tool called "github-update-secret" automatically rotates secrets across all repositories to buy time until each project can be properly migrated. This tool iterates through all repositories with admin access and updates any matching secret names with new values.
</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%2Fwww.humaninvariant.com%2Fblog%2Fblame%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/FwtpSgfJgs7AzbErrrAb3E8G7sESgGXOGKfREgsGjos=432">
<span>
<strong>Blame as a Service (6 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Blame as a Service (BaaS) is a growing market where companies like McKinsey, Ticketmaster, and UMA absorb the negative backlash from unpopular decisions, allowing their clients to maintain a positive image while maximizing profits.
</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.theregister.com%2F2025%2F11%2F18%2Flinus_torvalds_vibe_coding%2F%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/Jm1kdDSGtyl8eXl5LFA70ClEUA9NSFWYtpbMvNhf8HU=432">
<span>
<strong>Linus Torvalds is OK with vibe coding as long as it's not used for anything that matters (4 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Linus Torvalds says that "vibe coding" is a positive entry point to programming, but unsuitable for production-level kernel development.
</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%2Fengineering.monday.com%2Fa-developers-guide-to-growth-methodology%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/cWCWdgNAoLaIQSve8dX1kjzp2yIHRV-GwwteAUZ1KKQ=432">
<span>
<strong>A Developer's Guide to Growth Methodology (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Growth methodology is a data-driven development approach used by monday.com's Growth team that differs from traditional software development by requiring engineers to think like product managers and validate ideas before perfecting them.
</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%2Fshkspr.mobi%2Fblog%2F2025%2F11%2Fthe-peaceful-transfer-of-power-in-open-source-projects%2F%3Futm_source=tldrwebdev/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/L1zeojGLGdX505lt7GC3b1AFAX8M9QlUqGbIWHlLJrw=432">
<span>
<strong>The Peaceful Transfer of Power in Open Source Projects (3 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Open-source projects, often led by a single individual, should learn from Mastodon's example of gracefully transferring power to avoid the pitfalls of forever founder-led projects and guarantee long-term stability.
</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;">
Love TLDR? Tell your friends and get rewards!
</p>
</td></tr>
<tr><td class="container" style="padding: 0px 10px 15px;">
<div class="text-block">
Share your referral link below with friends to get free TLDR swag!
</div>
</td></tr>
<tr><td align="left" style="padding: 10px;">
<div class="text-block">
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Frefer.tldr.tech%2F8770c80a%2F3/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/cteVmPJQZ8QHFbYIRr-ru--8mRBwsDf5L0U7nyPJhMI=432" style="color: #464ba4; text-decoration: underline;">https://refer.tldr.tech/8770c80a/3</a>
</div>
</td></tr>
<tr></tr>
<tr><td align="left" style="padding:5px 10px;">
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fhub.sparklp.co%2Fsub_7383e7653c81%2F3/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/6o57WXreEHzEbaQBHBj5KuW24eQ6TTrKT6RDYo832N4=432" style="font-size: 16px; line-height: 1.6; padding: 10px 0; display: inline-block; text-decoration: underline;"><span style="mso-text-raise:13pt; text-decoration: underline;">Track your referrals here.</span></a>
</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=tldrdev%26utm_medium=newsletter%26utm_campaign=advertisecta/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/1sdIdGW2Oj81k6_JcaHFpQ_1rErl-KriJs-PAzr6S84=432"><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/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/8z25lOXquS-sctYlSgJ6rEshSv6czawmkWpdZmlBd4c=432" 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/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/wcFCVwO0_0E5iGMfYIo74srIL-_SemnRcxzkFrnwTFg=432"><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%2Fdev%2Fmanage%3Femail=silk.theater.56%2540fwdnl.com/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/SqMx0QBJdvuuvjquQmcC-4EvkG4cb18O8NbyaJjqJaE=432">Manage your subscriptions</a> to our other newsletters on tech, startups, and programming. Or if TLDR 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=bd9115bc-c5ef-11f0-8d8f-9fd4cf6848a8%26pt=campaign%26pv=4%26spa=1763640097%26t=1763640467%26s=b3fddafcce878ec79bd66f7f668b0affa272b3cbeb366daab5ff5d86a760363f/1/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/ih-VqgHtwvPpN4YRMxFfcZIFtT-zz7II8EVl9b2aOZs=432">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/0100019aa129e097-4855b6eb-1e2a-436a-b8ea-dba8d75591b6-000000/7z8Ls1N7Yx5atBCSIYjfB2TyIQlDrPGyP0kxcnHvh54=432" style="display: none; width: 1px; height: 1px;">
</body></html>