<!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;">GitHub has announced pricing and product model updates for GitHub Actions that will take effect in 2026. Beginning January 1 β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β </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/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/KhJ8pqhAUZChcGrCd1qADvxTKqKdKOht3UVeU2y6vMA=436" 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/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/rk0BiwX7Ag91WNSqQyad5dPC9u13Yb2MGBI09Nf14BY=436" 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=e502f78a-db22-11f0-a173-fb67e9d6b26d%26pt=campaign%26t=1765973274%26s=e9dcddf851c8613d08ae0216bb448ddc8a016f26fd5a3d4e45affe5555d9f71a/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/0JBHhb7BF6uc8Jlb_mxr8XAyzmi6dH-5LGJHO73JIE0=436"><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%2Fwww.qawolf.com%2Fplatform%3Futm_source=tldrwebdev%26utm_medium=newsletter%26utm_campaign=ACQ_All_Demo_Conversions__NewsletterAudience_-_Newsletter_IntroducingAIForDeepCoverage_20251217-None_Experiment-FALSE%26utm_content=IntroducingAIForDeepCoverage_GetEarlyAccessToday_None_Headline%253AIntroducingAIForDeepCoverage____Newsletter-PrimaryPlacement_20251217_v1_/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/yJJUWPhzi3G7R8DPNnbxfgUKJLNnRPsyaYUJ81bUsng=436"><img src="https://images.tldr.tech/qawolf-3.png" valign="middle" style="vertical-align: middle !important; height: 100%;" alt="QA Wolf"></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-12-17</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%2Fwww.qawolf.com%2Fplatform%3Futm_source=tldrwebdev%26utm_medium=newsletter%26utm_campaign=ACQ_All_Demo_Conversions__NewsletterAudience_-_Newsletter_IntroducingAIForDeepCoverage_20251217-None_Experiment-FALSE%26utm_content=IntroducingAIForDeepCoverage_GetEarlyAccessToday_None_Headline%253AIntroducingAIForDeepCoverage____Newsletter-PrimaryPlacement_20251217_v1_/2/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/464VkgKtHwTknQRuTvkl3SwOnqNu0-9x1783QUFaA78=436">
<span>
<strong>Introducing AI for Deep CoverageβNew from QA Wolf (Sponsor)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.qawolf.com%2Fplatform%3Futm_source=tldrwebdev%26utm_medium=newsletter%26utm_campaign=ACQ_All_Demo_Conversions__NewsletterAudience_-_Newsletter_IntroducingAIForDeepCoverage_20251217-None_Experiment-FALSE%26utm_content=IntroducingAIForDeepCoverage_GetEarlyAccessToday_None_Headline%253AIntroducingAIForDeepCoverage____Newsletter-PrimaryPlacement_20251217_v1_/3/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/LKg6eLCT_179BgtbtW8dcndPU7zBrfEFICHLzF_HPmI=436" rel="noopener noreferrer nofollow" target="_blank"><span>QA Wolf's</span></a> new AI assistant maps and tests even your app's most complex user flows. Prompting generates deterministic Playwright and Appium code that runs 12x faster and more reliably than other AI testing tools.
<br>
<br>What sets our AI apart:
<p></p>
<ul>
<li>Maps 150+ test cases in minutes instead of weeks of manual planning.</li>
<li>Executes tests 12x faster than vision-based agents.</li>
<li>Runs entire suites 100% parallel with consistent results.</li>
<li>Produces open-source tests your team owns, with zero vendor lock-in.</li>
</ul>
<p><a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.qawolf.com%2Fplatform%3Futm_source=tldrwebdev%26utm_medium=newsletter%26utm_campaign=ACQ_All_Demo_Conversions__NewsletterAudience_-_Newsletter_IntroducingAIForDeepCoverage_20251217-None_Experiment-FALSE%26utm_content=IntroducingAIForDeepCoverage_GetEarlyAccessToday_None_Headline%253AIntroducingAIForDeepCoverage____Newsletter-PrimaryPlacement_20251217_v1_/4/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/jsMVgjokGTcCWsp6eb_5iMOx7RffPJuXsOdTYjTmAZs=436" rel="noopener noreferrer nofollow" target="_blank"><span>Get early access today.</span></a>
</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%2Fvercel.com%2Fblog%2Fhow-to-prompt-v0%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/kmrHkUJ_zdRkHOFpts4l6TC-grkbsURPVzmb19cNibY=436">
<span>
<strong>How to prompt v0 (4 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
When prompting v0 to build web apps or components, it's important to know three core methods: specify the product service (components, data, and actions), define the context of use (who, when, and for what outcome), and outline constraints and taste (style, platform, and layout). By providing these specific details, v0 can generate faster, make smarter UX decisions, and create cleaner, more maintainable code.
</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%2Fgist.github.com%2Fsriram-palanisamy-hat%2Fd207174ada2fa052ad44439f22a65c7e%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/t9ULz_vvFv1l_1lqqw3oP00YQSejK0uFEhJSaiS7PXI=436">
<span>
<strong>Understanding the RCE Flaw in React Server Functions (10 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
CVEβ2025β55182 is a critical Remote Code Execution vulnerability in React 19 Server Component infrastructure prior to the December 2025 security patch. The vulnerability is unauthenticated and pre-render. A single crafted HTTP request to a Server Function endpoint is enough, making it a high-severity vulnerability for production applications. This post explains how the vulnerability works in detail, details how it was fixed, and lists mitigation steps.
</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%2Fmays.co%2Foptimizing-claude-code%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/NVJbj8cJIaVV2a_oXsP5sdJWgxzZQODmBw4KCkUVWrc=436">
<span>
<strong>Optimizing Claude Code (12 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Claude Code can be customized with skills, plugins, commands, and configuration files. While the defaults are remarkably capable, the system can be adjusted to fit any workflow - the difference is like hiring a talented generalist versus hiring someone who's worked at your company for years. This guide teaches readers how to optimize the assistant so it matches their style. It can take some time to optimize Claude, but doing so means you won't have to constantly re-explain preferences or correct patterns.
</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%2Fread.technically.dev%2Fp%2Fai-will-replace-you-at-your-job-if%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/fhE8pJowz_NpCdMI40XgtJNg0uLugcK6hg7_9CqybkM=436">
<span>
<strong>AI will replace you at your job if you let it (7 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
While AI won't cause mass unemployment, carelessly offloading core job functions to it is the same as writing one's own pink slip. This is especially harmful to junior talent as it prevents them from developing essential skills and intuition that's needed for them to become senior.
</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.sebastianaaltonen.com%2Fblog%2Fno-graphics-api%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/xWzCdLktkfP36wz2YSYPoqBnMUFyCaL0N-FazILL-zQ=436">
<span>
<strong>No Graphics API (93 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Modern graphics APIs like DirectX 12 and Vulkan are overly complex and inefficient because they were designed for older, more diverse GPU architectures. Today's GPUs, with features like coherent caches, 64-bit pointers, and bindless texture sampling, have mostly converged on a generic SIMD design. This article proposes a simplified API that uses these modern hardware capabilities to reduce API bloat, driver complexity, and pipeline state object "permutation explosion.β
</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%2Fblog.sentry.io%2Fless-than-100ms-e-commerce-instant-loads-with-speculation-rules-api%2F%3Futm_source=tldr%26utm_medium=paid-community%26utm_campaign=general-fy26q4-ecommerce%26utm_content=newsletter-100ms-ecomm-blog-learnmore/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/kT1tBSDktm_qLcW5RQEw9YUwG4XdKWzF4z6v-40xQAo=436">
<span>
<strong>How to get <100ms E-commerce store loads (Sponsor)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Lazar Nikolov wrote on the Sentry blog about <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fblog.sentry.io%2Fless-than-100ms-e-commerce-instant-loads-with-speculation-rules-api%2F%3Futm_source=tldr%26utm_medium=paid-community%26utm_campaign=general-fy26q4-ecommerce%26utm_content=newsletter-100ms-ecomm-blog-learnmore/2/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/6N6i3LuiAUkFEa2dyxAXQYMd5lm-enJv1LcOxx73ebw=436" rel="noopener noreferrer nofollow" target="_blank"><span>how to get sub-100ms load times</span></a> using the Speculation Rules API β which lets the browser prefetch the pages users are about to click.
</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%2Fastral.sh%2Fblog%2Fty%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/P_k5mZb259j8PaJFHtstPx9fF6Vv3gw17JW43FRCnWs=436">
<span>
<strong>ty (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
ty is an extremely fast Python type checker and language server. It is designed to be an alternative to tools like mypy, Pyright, and Pylance. The entire ty architecture is built around incrementality, so developers can selectively re-run only the necessary computations when a file is edited or an individual function is modified. ty has a best-in-class diagnostic system that can pull context from multiple files at once to explain what's wrong, why, and how to fix it.
</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%2Fgithub.com%2Ffilipsobol%2Fsonda%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/RzCVZjwdQsUIq7e7xzGivo4d5SuiZaZTIstr8XfNpiM=436">
<span>
<strong>Sonda (GitHub Repo)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Sonda is a universal bundle analyzer and visualizer for JavaScript and CSS projects. It generates interactive HTML reports by analyzing source maps and showing module sizes after tree-shaking and minification.
</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%2Fresources.github.com%2Factions%2F2026-pricing-changes-for-github-actions%2F%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/YdHfUWXY-hfeKrioLgu6QBRYjuuaWYC-NqJ3_hXOalc=436">
<span>
<strong>Pricing changes for GitHub Actions (7 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
GitHub has announced pricing and product model updates for GitHub Actions that will take effect in 2026. Beginning January 1, prices for GitHub-hosted runners will be reduced by up to 39%, while a new $0.002 per-minute cloud platform charge will be introduced for all Actions workflows, including self-hosted runners, starting March 1.
</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.bytebytego.com%2Fp%2Fhow-linkedin-built-an-ai-powered%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/PiemropaEd8nAnwUwacNC8skkImiPkd3lVpG_S1wMgE=436">
<span>
<strong>How LinkedIn Built an AI-Powered Hiring Assistant (20 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
LinkedIn's Hiring Assistant is designed to handle the repetitive, time-consuming aspects of the recruiting workflow. It frees professionals to focus on connecting with people and making critical hiring choices. The assistant improves over time by observing what recruiters do, learning individual preferences, and remembering past interactions and decisions. This article looks at the architecture and technical building blocks of the assistant.
</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.skyramp.dev%2F%3Futm_campaign=Beta1225%26utm_source=tldrdev%26utm_medium=newsletter/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/oXtFFUv7WbNuT_h0v__fkqKfixucgybN0-N0AK7D9go=436">
<span>
<strong>Skyramp: Deterministic testing, powered by AI (Sponsor)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Automated testing that's conversational, intelligent, and deterministic. Skyramp blends AI orchestration with specification-driven design to generate production-ready tests from natural language. <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fskyramp.dev%2F%3Futm_campaign=Beta1225%26utm_source=tldrdev%26utm_medium=newsletter/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/sV4ijT5-dBlFUuW_VUYI6MbqWhWp_1ZfKBMNC7L-wrc=436" rel="noopener noreferrer nofollow" target="_blank"><span>Join the beta in Cursor or VS Code</span></a>
</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%2Fsimonwillison.net%2F2025%2FDec%2F15%2Fporting-justhtml%2F%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/1oL3LKHTPHkOTcUkJMEe61AcTdqIyokAKrkRjFDK5-o=436">
<span>
<strong>I ported JustHTML from Python to JavaScript with Codex CLI and GPT-5.2 in 4.5 hours (11 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Simon Willison successfully ported the JustHTML Python library to JavaScript using Codex CLI and GPT-5.2 with only a few prompts in 4.5 hours.
</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%2Fa2ui.org%2F%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/YOZEm8tL1WEbQBWI2gnXOCsX6yRJnpgHBHJnOkZApWA=436">
<span>
<strong>A2UI (Website)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
A2UI is a protocol that lets AI agents generate interactive user interfaces for web, mobile, and desktop applications by sending declarative component descriptions rather than executable code.
</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%2Fgithub.com%2FMaxteabag%2Fsqlit%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/_vUlLKaVUn0L9tiIATIR1N6AfBDjxKYMCbqUMEkIo-M=436">
<span>
<strong>Sqlit (GitHub Repo)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Sqlit is a lightweight, user-friendly terminal user interface for fast querying of SQL databases such as Postgres, MySQL, and SQLite.
</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.letta.com%2Fblog%2Fletta-code%3Futm_source=tldrdev/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/fc4rMrwFgCEJ63-hf1MLjDPKbM5exHINxZHOXdwQMYg=436">
<span>
<strong>Letta Code (Website)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Letta Code is a memory-first coding agent designed for long-lived agents that continually learn and improve across independent sessions.
</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/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/m9HIYnpOMmJR5FGFwKoePXrdMpf4ZPilq-jftTvdtYw=436" 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/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/lqwB3GaBluWfYtgg5grsEHSzzJzllQVSsJSr0J_PU0A=436" 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/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/H-YfDucRmx58LAcK5oSiN4qv5bQba2FBDOXuLnpUyus=436"><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/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/afMQ1-LwrG2fdEEhYShbig_51DuJbtBImybPYwHdEnQ=436" rel="noopener noreferrer" style="color: #0000EE; text-decoration: underline;" target="_blank"><strong>Apply here</strong></a>,
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fjobs.ashbyhq.com%2Ftldr.tech%2Fc227b917-a6a4-40ce-8950-d3e165357871/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/orc-A0DG1483wyx8Uf4Wt8dt3iGhTUqi4id89ln2pZw=436" rel="noopener noreferrer" style="color: #0000EE; text-decoration: underline;" target="_blank"><strong>create your own role</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! TLDR is one of <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.linkedin.com%2Ffeed%2Fupdate%2Furn:li:activity:7401699691039830016%2F/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/LF1JMTwrGwNTKNq6R9Qzchi5M5_KNFZL6Qnzfu_SRZ8=436" rel="noopener noreferrer" style="color: #0000EE; text-decoration: underline;" target="_blank"><strong>Inc.'s Best Bootstrapped businesses</strong></a> of 2025.
</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/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/iuFjiAzl4LjQhheqcJ8_6F5Bp2JxpxQAtWer0RYG5HM=436"><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/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/Cp42D59IUICZItsifpl7XfkXGxkGD--77yqC7SoScR4=436">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=e502f78a-db22-11f0-a173-fb67e9d6b26d%26pt=campaign%26pv=4%26spa=1765972901%26t=1765973274%26s=769d307575287eddcdd8a530dcfcba75db77451b9ae7454af0d60c48100fc9b2/1/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/lhbPnT7tVVpw5x1v6oPOkc-ME5HG-btHsmVigS6Ab6c=436">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/0100019b2c35b225-d6771eba-e760-42ce-bab2-f2619f1bc3ba-000000/nQJnVxprq2aOQEjHO89U5KWt81HFCozCMrZfD85nZPo=436" style="display: none; width: 1px; height: 1px;">
</body></html>