<!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;">Anthropic has released Claude Sonnet 4.5, a new frontier model with huge improvements in coding, computer usage, reasoning, and math </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/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/Twy27MQMm6suqC-8rf-AfPcxrmm59Qyw2T8cG7FlOQA=424" 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/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/gtklMqLVK1pdGJUfX9BIKkwuTA2i4c1gBDMLDs6zRZo=424" 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=cf44ecf2-9da9-11f0-8151-ed1a6244838e%26pt=campaign%26t=1759230471%26s=85d5383101fffdb88934df5cdaee7ef946206968a2966a72937911a186165e45/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/JveerI8WvQ1ak_v4TPfM3CKUXPr6PftUjDTAGK8ivV0=424"><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.name.com%2Fnameapi%3Futm_source=tldr-webdev%26utm_medium=newsletter-p1%26utm_campaign=name_reseller/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/GbPzD0GnYvS4BP3QS_nV67zjg-y1ZE9tU-JGpT_zjnY=424"><img src="https://images.tldr.tech/name.com.png" valign="middle" style="vertical-align: middle !important; height: 100%;" alt="Name.com"></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 Web Dev <span id="date">2025-09-30</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.name.com%2Fnameapi%3Futm_source=tldr-webdev%26utm_medium=newsletter-p1%26utm_campaign=name_reseller/2/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/F802JpCgJxytjfrMX_nv4wjfXTUW4E3f2ZUjb8uMd34=424">
<span>
<strong>Ship domain features in hours, not weeks with the AI-ready name.com API (Sponsor)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Skip the complex integrations. The name.com API lets you build domain search, registration, and management directly into your app with clean API calls that just work.<p></p><p><strong>Why developers choose the name.com API:</strong></p><ul><li><strong>AI-first development:</strong> Built for Claude, Cursor, and modern AI tools with OpenAPI spec + MCP support</li><li><strong>Enterprise-proven:</strong> Powers domain operations for Replit, Vercel, Netlify, and Bolt</li><li><strong>Zero overhead:</strong> 99.9% uptime, 24/7 support, transparent pricing with no hidden fees</li></ul><p><a class="LinkThemeablePresentation LinkPrimaryPresentation LinkPrimaryPresentation--sentimentSelected PrimaryLink HighlightSol HighlightSol--core HighlightSol--buildingBlock" href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.name.com%2Fnameapi%3Futm_source=tldr-webdev%26utm_medium=newsletter-p1%26utm_campaign=name_reseller/3/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/h4npQ1dS8qPkWY_tLkwuJDEL4tgwoUesXOV8A-LuASM=424" rel="noreferrer noopener" target="_blank"><span>Learn how to get started</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%2Fethanseal.com%2Farticles%2Fors-are-expensive%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/xIosUVPnJd48pff1nK4jDlZU2NewSiynz5o0XRw7QWo=424">
<span>
<strong>A SQL Heuristic: ORs Are Expensive (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
OR clauses in SQL queries can be much slower than AND clauses due to how query planners use indexes. When using OR, the database might resort to less efficient strategies like merging separate filtered results or performing a full table scan. Rewriting queries to use AND clauses, often by using unions or restructuring the schema, can improve performance. Common schema issues that lead to needing OR clauses can be addressed by creating secondary tables or using an extension table pattern.
</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%2Ftwofoldframework.com%2Fblog%2Fparallel-and-recursive-route-rendering-with-rsc%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/EZsrB1proR92IGdvm4lD3ca6HcRhqWQxw-ZGumAc9_U=424">
<span>
<strong>Parallel and recursive route rendering (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
RSC routers use a unique approach to route rendering, performing it in parallel on the server and then recursively stitching the results together on the client to avoid waterfalls. They render a list of components in parallel, each potentially with a placeholder, and then serialize the output into a stream. On the client, a recursive component called `StackReader` uses the `Placeholder` component to traverse a stack-like data structure created from the stream, reassembling the nested component tree.
</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%2Fcertificates.dev%2Fblog%2Freact-viewtransition-smooth-animations-made-simple%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/WPEXz-4jzXkZVq2omZz3L5Ed3R1MhRv6W1aIM-o6NFs=424">
<span>
<strong>React ViewTransition: Smooth Animations Made Simple (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
React is introducing a new experimental `ViewTransition` component that wraps the browser's View Transition API to create smooth, declarative animations between component states without animation libraries. The component automatically handles enter/exit animations, shared element transitions, and list filtering when used within React's concurrent features like `startTransition` or `useDeferredValue`. It allows CSS customization for different animation effects.
</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%2Fjameelur.com%2Fblog%2Fovercoming-friction-leads-to-growth%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/1HIpizV3ElcKQHo2kYYIQffGp5Bhf-cuuGiLQZTyjAM=424">
<span>
<strong>Friction is necessary for Growth (3 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Overcoming friction is necessary for growth. Readily available AI could stifle creativity by removing the need to struggle and learn through mistakes. Excessive comfort reduces personal potential and can lead to stagnation of your skills.
</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%2Fantropia.studio%2Fblog%2Fto-ai-or-not-to-ai%2F%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/lDOhxctrbkEpKSthOpKx3WbsCkvriZGN754PisUokGI=424">
<span>
<strong>To AI or not to AI (7 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
An experiment was conducted over two weeks to build an app with full AI assistance. While the team found AI helpful in specific areas like searching, code snippets, and language tasks, they were frustrated with its limitations in providing context, maintaining code, and uncovering corner cases. Overall, the code became messy, control was lost, and the team returned to their traditional workflow.
</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.anthropic.com%2Fnews%2Fclaude-sonnet-4-5%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/ElBtamTrA42r_Wc7pQZWGXJIAdvxGjlxA1M_sBee6yk=424">
<span>
<strong>Introducing Claude Sonnet 4.5 (5 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Anthropic has released Claude Sonnet 4.5, a new frontier model with huge improvements in coding, computer usage, reasoning, and math. The model has state-of-the-art performance on benchmarks like SWE-bench Verified and OSWorld (for real-world software coding and computer task abilities). Along with the model, Anthropic has released Claude Code 2.0 and new features to the Claude apps.
</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%2FMwDhDn/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/oM7-TEiJP7nOOHVCFWIYnAjzbI2hXVLHuSOklagUl6A=424">
<span>
<strong>Buy it in ChatGPT: Instant Checkout and the Agentic Commerce Protocol (5 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
OpenAI has launched Instant Checkout in ChatGPT, powered by the Agentic Commerce Protocol developed with Stripe. This allows users in the US to directly purchase items from participating merchants like Etsy and soon Shopify, within the chat interface. The Agentic Commerce Protocol, an open standard for AI commerce, allows AI agents, individuals, and businesses to collaborate on transactions while giving merchants control over payments and customer relationships.
</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%2Faddyosmani.com%2Fblog%2Fdevtools-mcp%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/1dfzX5fjMVIU_UGma-v0CwfoCDTzuS3qjNTFez3Etdc=424">
<span>
<strong>Give your AI eyes: Introducing Chrome DevTools MCP (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
The Chrome DevTools MCP is a new tool that allows AI coding assistants to see and interact with a live Chrome browser through the Model Context Protocol, giving AI "eyes" to observe and debug web applications in real-time. The tool acts as a bridge between AI agents (like Cursor, Claude, and Gemini) and Chrome's DevTools capabilities, letting them navigate pages, inspect DOM elements, analyze performance, simulate user interactions, and debug issues based on actual browser feedback rather than coding blindly.
</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%2Femschwartz.me%2Fsubtleties-of-sqlite-indexes%2F%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/epN5vsW4gzYrzjtDVU5smCQI8NHDzWpexKa2XlqjVRY=424">
<span>
<strong>Subtleties of SQLite Indexes (9 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
This dev improved the performance of SQLite queries for his custom content feed by understanding how SQLite's query planner uses indexes. Composite indexes are better than multiple single-column indexes, and the order of columns in an index matters, following the "Left to right, no skipping, stops at the first range" rule. Also, the conditions in WHERE clauses for partial indexes must exactly match the corresponding query conditions.
</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.greptile.com%2Fblog%2Fsandboxing-agents-at-the-kernel-level%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/dFKJHfDI6pcDCa4iKuNvSM5qZ0omY8t1MZ2D4fAcLVw=424">
<span>
<strong>Sandboxing agents at the kernel level (11 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
AI agents can be sandboxed at the kernel level in Linux to prevent unauthorized file access. Tracing the `open` syscall shows three points of failure where file access can be denied: permission checks, mount point redirections, and changing the root directory of the process. Combining mount namespaces and root changes offers control over the agent's filesystem view.
</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%2Fallthingssmitty.com%2F2025%2F09%2F22%2Fstop-using-reverse-find-meet-findlast%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/u5x8YJ0-U2p2Vu2TxqJUlp25h8mKNVv9i0fuegpp9Wk=424">
<span>
<strong>Stop using .reverse().find(): meet findLast() (4 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
`Array.prototype.findLast()` and `Array.prototype.findLastIndex()` are cleaner, more performant alternatives to reversing arrays for searching from the end.
</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%2Ftheaxolot.wordpress.com%2F2025%2F09%2F28%2Ftest-driven-development-bad-example%2F%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/yZpQJU3kfzNhVAOrGsD1hxFN5mZxXH3Q6MoIXkdO0L0=424">
<span>
<strong>Test Driven Development: Bad Example (15 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Test-driven development is sometimes a flawed theory supported by anecdotal evidence and doesn't always work in the real-world.
</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%2Fvondra.me%2Fposts%2Ftuning-aio-in-postgresql-18%2F%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/IXVbejGVCe3lLxYjOA1gxdai50i5tIu0Dh3m2zgIudg=424">
<span>
<strong>Tuning AIO in PostgreSQL 18 (12 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
When tuning the new Asynchronous I/O (AIO) feature in PostgreSQL 18, users should generally stick with the default `io_method = worker` and increase the `io_workers` setting to around 25% of the system's cores.
</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.cloudflare.com%2Feliminating-cold-starts-2-shard-and-conquer%2F%3Futm_source=tldrwebdev/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/5heMeqWL916K8Ok0wQSCqGU2R_YMnUTpA-iCexh7GUQ=424">
<span>
<strong>Eliminating Cold Starts 2: shard and conquer (21 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Cloudflare reduced cold starts for Workers by implementing a consistent hash ring to shard requests, improving memory efficiency and warm request rates.
</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/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/iuf7AvFxbZD1ZquHWrr1i46Ai6HGxpkQ9-17QT2XzP4=424" 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/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/akkVOsiq9C95pW33vMDw5XSPE01EQbgREq2Td5cApcw=424" 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=tldrwebdev%26utm_medium=newsletter%26utm_campaign=advertisecta/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/1DSTkuLcyXlPC5sr41IUqVdg08V70sD9f_Qwudbh45A=424"><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/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/JntfSwjEP8GJkuZRO-uo32yMN2JkOrJtQkHnADR_kF4=424" 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/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/tIJcXZc3eycZB-5esTQTWybCVh4mEDvf5L-9Sv8nDHI=424"><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/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/a0dSnZu6tHqggiTbVzYSqseUMjROiy0eGttBF3E-5Lk=424">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=cf44ecf2-9da9-11f0-8151-ed1a6244838e%26pt=campaign%26pv=4%26spa=1759230092%26t=1759230471%26s=7b4f335da73613e4ab9b65bab621158e2dd717d590b04a36a4985b789211d6a6/1/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/Rl-xC7Jzn82AHP332LbuS-2Yg3ah57fzgdgMxej2BEA=424">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/010001999a4eae7e-f609f33d-a48c-4143-91ea-1d0f468115f4-000000/u6Cqb9xkotLLUDs3gGSQd1BeVwPHXkVRSvMQOY7IqDc=424" style="display: none; width: 1px; height: 1px;">
</body></html>