<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Frontend Development With JS - Medium]]></title>
        <description><![CDATA[Frontend Development With Javascript - Medium]]></description>
        <link>https://medium.com/frontend-development-with-js?source=rss----4ee8034b314---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Frontend Development With JS - Medium</title>
            <link>https://medium.com/frontend-development-with-js?source=rss----4ee8034b314---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 13 Nov 2026 15:05:25 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/frontend-development-with-js" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Connector]]></title>
            <link>https://medium.com/frontend-development-with-js/connector-ac8d713709be?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/ac8d713709be</guid>
            <category><![CDATA[mcps]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Mon, 19 Oct 2026 03:27:21 GMT</pubDate>
            <atom:updated>2026-10-19T03:27:20.705Z</atom:updated>
            <content:encoded><![CDATA[<p>Connector</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*HPX96aKLosrR2mFD" /><figcaption>Photo by <a href="https://unsplash.com/@brianwangenheim?utm_source=medium&amp;utm_medium=referral">Brian Wangenheim</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>Frontend’de MCP Kullanımı</h3><p>“AI Sonrası Frontend Ekosistemindeki Gelişmeler” yazısında MCP’yi tek paragrafla geçmiştim. Bu yazıda bir frontend uygulamasının MCP ile LLM araçlarına nasıl bağlanacağını ve Ocak 2026’da resmileşen MCP Apps ile UI’ın protokole nasıl girdiğini adım adım anlatıyorum.</p><h3>1. MCP Nedir?</h3><p>Model Context Protocol (MCP), LLM’lerin harici araçlar ve veri kaynakları ile standart, güvenli ve genişletilebilir şekilde konuşmasını sağlayan açık bir protokol. Her servis için ayrı entegrasyon yazmak yerine, servis bir kere MCP Server olarak yazılıyor ve tüm AI uygulamaları (Host) bunu kullanabiliyor.</p><ul><li><strong>Host</strong>: Kullanıcının etkileşime girdiği AI uygulaması (bizim frontend uygulamamız)</li><li><strong>Client</strong>: Host içinde MCP Server ile bağlantıyı yöneten katman</li><li><strong>Server</strong>: Tool, Resource ve Prompt sunan servis (Jira, GitHub, veritabanı vb.)</li></ul><h3>2. Frontend Nerede Duruyor?</h3><p>En sık yapılan hata MCP Server’a doğrudan tarayıcıdan bağlanmaya çalışmak. Önerilen mimari şöyle:</p><pre>Tarayıcı (React UI)<br>  → Backend / BFF (LLM + MCP Client)<br>    → MCP Server’lar (GitHub, DB, CRM…)</pre><ul><li>API anahtarları ve OAuth token’ları tarayıcıda değil backend’de kalır.</li><li>LLM’in hangi tool’u çağırabileceği backend’de kontrol edilir.</li><li>Frontend’in işi: sohbeti, tool çağrılarını, onayları ve sonuçları göstermek.</li></ul><h3>3. Backend’de MCP Client Oluşturmak</h3><p>Resmi TypeScript SDK ile bir MCP Server’a Streamable HTTP üzerinden bağlanmak birkaç satır:</p><pre>import { Client } from &#39;@modelcontextprotocol/sdk/client/index.js&#39;;<br>import { StreamableHTTPClientTransport } from &#39;@modelcontextprotocol/sdk/client/streamableHttp.js&#39;;<br>const client = new Client({ name: &#39;my-app&#39;, version: &#39;1.0.0&#39; });<br>await client.connect(<br>  new StreamableHTTPClientTransport(new URL(&#39;https://mcp.example.com/mcp&#39;))<br>);<br>// Server’ın sunduğu araçları listele<br>const { tools } = await client.listTools();<br>// Bir aracı çağır<br>const result = await client.callTool({<br>  name: &#39;search_orders&#39;,<br>  arguments: { status: &#39;open&#39; },<br>});</pre><p>listTools ile gelen araçlar LLM’e tool olarak verilir. LLM bir aracı çağırmak istediğinde backend callTool ile MCP Server’a iletir, sonucu tekrar LLM’e ve stream ile UI’a gönderir.</p><h3>4. Frontend’de Tool Çağrılarını Göstermek</h3><p>Kullanıcı arka planda ne olduğunu görmek ister. Her tool çağrısı için UI’da şu durumlar olmalı:</p><ul><li><strong>Çağrılıyor</strong>: Hangi araç, hangi parametrelerle (ör. search_orders — status: open)</li><li><strong>Onay bekliyor</strong>: Veri değiştiren araçlarda (create, update, delete) kullanıcıdan onay alınmalı</li><li><strong>Tamamlandı / Hata</strong>: Sonuç özeti veya hata mesajı</li></ul><h3>5. MCP Apps: UI Artık Protokolün Parçası</h3><p>26 Ocak 2026’da resmi extension olarak yayınlanan MCP Apps ile MCP Server’lar sadece veri değil, interaktif UI da döndürebiliyor. Server bir tool’u bir UI resource (ui://) ile ilişkilendiriyor, Host bu UI’ı güvenli bir sandbox iframe içinde render ediyor. UI ile Host arasındaki iletişim ise MCP üzerinden (JSON-RPC) yapılıyor.</p><p>Frontend geliştirici için anlamı büyük: Yazdığınız bir form, chart veya dashboard artık sadece kendi uygulamanızda değil, MCP Apps destekleyen her AI istemcisinde (ör. VS Code) çalışabiliyor.</p><blockquote><em>Yani “Your UI, Their Chat”: Bileşenlerinizi başkalarının sohbet ekranlarına taşıyabiliyorsunuz.</em></blockquote><h3>6. Güvenlik İçin Kontrol Listesi</h3><ul><li>Token’ları tarayıcıya asla göndermeyin.</li><li>Kullanıcı başına yetki verin; MCP Server’a herkes için tek bir admin token ile bağlanmayın.</li><li>Veri değiştiren araçlarda human-in-the-loop onayı kullanın.</li><li>Tool sonuçlarını “veri” olarak görün; içindeki talimatlara (prompt injection) karşı dikkatli olun.</li><li>MCP Apps UI’larını mutlaka sandbox iframe içinde çalıştırın.</li></ul><h3>Sonuç</h3><p>MCP ile frontend uygulamaları, her servis için ayrı entegrasyon yazmadan yüzlerce araca erişebilir hale geliyor. MCP Apps ile de frontend bileşenleri protokolün birinci sınıf vatandaşı oldu. Frontend’in yeni sorumluluğu; tool çağrılarını şeffaf, onaylanabilir ve güvenli şekilde kullanıcıya sunmak.</p><h3>Kaynaklar</h3><ul><li><a href="https://blog.modelcontextprotocol.io/posts/2026-01-26-mcp-apps/">MCP Apps — Model Context Protocol Blog</a></li><li><a href="https://code.visualstudio.com/blogs/2026/01/26/mcp-apps-support">MCP Apps Support in VS Code</a></li><li><a href="https://github.com/modelcontextprotocol/ext-apps">modelcontextprotocol/ext-apps</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ac8d713709be" width="1" height="1" alt=""><hr><p><a href="https://medium.com/frontend-development-with-js/connector-ac8d713709be">Connector</a> was originally published in <a href="https://medium.com/frontend-development-with-js">Frontend Development With JS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Ekim 2026 React Ekosistem Haberleri — 2]]></title>
            <link>https://medium.com/frontend-development-with-js/ekim-2026-react-ekosistem-haberleri-2-7bd3cf794e16?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/7bd3cf794e16</guid>
            <category><![CDATA[react]]></category>
            <category><![CDATA[javascript-tips]]></category>
            <category><![CDATA[front-end-development]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Sat, 17 Oct 2026 08:54:30 GMT</pubDate>
            <atom:updated>2026-10-17T08:54:30.228Z</atom:updated>
            <content:encoded><![CDATA[<h4>Her dönem olduğu gibi email ve diğer ortamlarda React konularında karşıma çıkan, hoşuma giden haberleri sizler ile paylaşıyor olacağım.</h4><p>İlk yazıda React 19.3, Next.js 16.4 ve TanStack tarafındaki büyük haberleri paylaşmıştım. Bu yazıda ise son bir haftada karşıma çıkan haberleri Güvenlik, Next.js, Components, TypeScript, Tooling ve Community şeklinde gruplara ayırdım.</p><h3>Güvenlik</h3><h4>Next.js → 14 Ekim’de out-of-band güvenlik güncellemesi</h4><p>Next.js ekibi 8 Ekim’de bir <a href="https://nextjs.org/blog/upcoming-nextjs-security-update-october-2026">ön duyuru</a> yayınladı. <strong>14 Ekim 2026 Çarşamba</strong> günü, upstream bağımlılıklardaki üç açığı kapatan bir güvenlik güncellemesi çıkacak. Bunlardan ikisi <strong>Critical</strong>, biri <strong>High</strong> seviyesinde. İkisi aslında Eylül güvenlik sürümüne yetişecekti, ama upstream tarafla koordinasyon gerektiği için ertelenmiş.</p><p>Etkilenen sürümler, CVE numaraları ve upgrade adımları güncellemeyle birlikte paylaşılacak. Burada dikkat edilmesi gereken nokta şu, Critical seviyede iki açık var. Aralık’taki React2Shell sürecini hatırlayanlar bu tür duyuruların ne kadar hızlı aksiyon gerektirdiğini biliyor. O dönemi <a href="https://medium.com/@odayibasi/rsc-ve-react2shell-abc5dbead6c1">RSC ve React2Shell</a> yazımda anlatmıştım.</p><p>Bu yüzden şimdiden yapılabilecekler şöyle:</p><ul><li><strong>Takvim →</strong> 14 Ekim’i ekibinizle birlikte not edin.</li><li><strong>Pipeline →</strong> Next.js sürümünü hızlıca yükseltip deploy edebileceğiniz bir yolunuz olsun.</li><li><strong>Lockfile →</strong> Sadece package.json değil, deploy edilen uygulamanın gerçekten patch&#39;li sürümü kullandığını kontrol edin.</li></ul><p>Next.js 16.4 ile gelen experimental.agentUpgrade: &#39;security&#39; ayarı da tam bu senaryo için var. next dev sırasında güvenlik açığı içeren sürümde olduğunuzu size (ya da agent&#39;ınıza) hatırlatıyor.</p><h3>Next.js</h3><h4>Parametre eşleştirme için yeni bir API önerisi</h4><p>Next.js reposunda açık bir <a href="https://github.com/vercel/next.js/pull/97393">PR</a> var: experimental.paramMatching. Cache Components açıkken, build sırasında generateStaticParams ile üretilmemiş yeni bir parametre değeri geldiğinde ne olacağını segment bazında belirlememizi sağlıyor. Dört mod var: not-found, blocking, fallback ve dynamic.</p><pre>// app/[dil]/urunler/[kategori]/page.tsx<br>export const experimental_paramMatching = {<br>  dil: &#39;not-found&#39;,     // bilinmeyen dil → 404<br>  kategori: &#39;fallback&#39;, // yeni kategori → hemen fallback UI<br>};</pre><p>Bu şu açıdan önemli, Pages Router’daki fallback: true | &#39;blocking&#39; davranışını hatırlayanlar için App Router&#39;da eksik kalan bir parça buydu. PR henüz merge&#39;e hazır değil, ekibin kendisi de bunu belirtiyor. Ama Cache Components&#39;ın Next.js 17&#39;de default olacağını düşünürsek, bu API&#39;nin yakında şekilleneceğini tahmin ediyorum.</p><h3>Components</h3><h4>Base UI v1.9.0</h4><p>9 Ekim’de <a href="https://base-ui.com/react/overview/releases">Base UI v1.9.0</a> yayınlandı. Hoşuma giden değişiklikler şunlar:</p><ul><li><strong>Menu →</strong> Yeni filtreleme davranışının preview’ı geldi.</li><li><strong>Performans →</strong> Combobox, Menu ve Select’te büyük listelerin mount süresi hızlanmış.</li><li><strong>Drawer →</strong> Swipe gesture’lar ve mobilde virtual keyboard yönetimi iyileştirilmiş.</li><li><strong>Accessibility →</strong> Focus ve etkileşimle ilgili çok sayıda düzeltme var.</li></ul><p>Base UI 1.0&#39;dan bu yana neredeyse her ay bir minor sürüm çıkarıyor ve her sürümde accessibility düzeltmeleri öne çıkıyor. shadcn/ui’ın Radix’in yanında Base UI ve React Aria’yı da desteklemesiyle birlikte headless kütüphane seçimi artık tek bir seçeneğe bağlı değil. Bu rekabet oldukça sevindirici, çünkü kalite çıtası her sürümde biraz daha yükseliyor.</p><h3>TypeScript</h3><h4>TypeScript 7.1 beta ertelendi</h4><p><a href="https://github.com/microsoft/TypeScript/issues/63703">TypeScript 7.1 Iteration Plan</a>’a göre beta 6 Ekim’de çıkacaktı. Daniel Rosenwasser, API’leri daha fazla test edip beta sonrası değişiklikleri azaltmak için betayı yaklaşık iki hafta ertelediklerini duyurdu. RC ve stable tarihleri daha sonra açıklanacak.</p><p>7.1&#39;in odağında Content Mapper, Emit ve Language Service API’lerinin stabilize edilmesi var. Buda bize, Go ile yeniden yazılan TypeScript’i typescript-eslint gibi araçların da kullanabilmesi olanağını sağlayacak. Yani TS7&#39;nin hız avantajını sadece tsc tarafında değil, lint ve editör tarafında da görmeye başlayacağız. Bunun dışında es2026 target&#39;ı ve Node 26 package maps desteği de planda.</p><h3>Tooling</h3><h4>pnpm 12.11 → Bağımlılıklardan gelen agent skill’leri</h4><p>9 Ekim’de çıkan <a href="https://pnpm.io/blog/releases/12.11.0">pnpm 12.11.0</a> ilginç bir özellik getirdi. Direct dependency’lerin paketlerinde skills/&lt;isim&gt;/SKILL.md olarak gelen agent skill&#39;leri, pnpm install sırasında projenizdeki .claude/skills gibi agent klasörlerine link&#39;leniyor. Burada dikkat edilmesi gereken nokta şu, bu link&#39;leme ancak pnpm approve ile onay verdiğinizde yapılıyor. Build script&#39;leri ve agent skill&#39;leri aynı onay ekranında inceleniyor.</p><p>Aynı sürümde gelen permissions ayarı da her bağımlılığın neye izinli olduğunu tek bir yerde tutuyor. pnpm permissions komutu verilen, reddedilen ve onay bekleyen izinleri listeliyor.</p><p>Bu şu açıdan önemli, kütüphaneler artık sadece kod değil, “bu kütüphane nasıl kullanılır” bilgisini de agent’lar için paketin içinde dağıtmaya başladı. Next.js’in Skills’leri, Video.js 10&#39;un agent skill’i ve şimdi pnpm’in bunu install akışına bağlaması aynı trendin parçaları. Supply chain saldırılarının arttığı bir dönemde bunun onay mekanizmasıyla gelmesi de hoşuma gitti. Daha önce <a href="https://medium.com/@odayibasi/agentic-ui-bile%C5%9Fenleri-e32473794c41">Agentic UI Bileşenleri</a> yazımda bu dönüşümün UI tarafına değinmiştim, şimdi paket yöneticisi tarafına da ulaştı..</p><ul><li><a href="https://github.com/vadimdemedes/ink/releases/tag/v8.0.0"><strong>Ink 8.0</strong></a><strong>:</strong> React ile CLI uygulaması yazmamızı sağlayan Ink artık React 19.3 ve üstünü gerektiriyor. stdin/stdout artık generic Node stream olarak tiplendiği için TTY&#39;ye özel property&#39;ler yerine useWindowSize() öneriliyor.</li><li><a href="https://github.com/posva/medula"><strong>Medula</strong></a><strong>:</strong> Coding agent’ların çalışan uygulamanın component’lerini MCP üzerinden inceleyip hook state’ini ve prop’larını değiştirebilmesini sağlayan headless bir devtools. React ve Next.js desteği var. DevTools mimarisini merak edenler için <a href="https://medium.com/@odayibasi/tanstack-devtools-mimarisi-5ccffd3c66e7">TanStack DevTools Mimarisi</a> yazıma göz atabilirsiniz.</li><li><strong>Shaders →</strong> <a href="https://shaders.com/updates/shaders-is-open-source">190&#39;dan fazla WebGPU efekt component’i MIT lisansıyla açık kaynak oldu, React binding’i de var</a></li></ul><h3>Community</h3><ul><li><a href="https://nolanlawson.com/2026/10/03/why-dont-more-developers-use-the-platform/"><strong>Why Don’t More Developers ‘Use the Platform’?</strong></a><strong>:</strong> Nolan Lawson, geliştiricilerin neden native bir özellik varken npm’de React component’i aradığını sorguluyor. Örneğin dialog, popover ya da anchor positioning gibi özelliklerin artık tarayıcıda olduğunu düşününce, oldukça faydalı bir yazı olmuş.</li><li><a href="https://dbushell.com/2026/10/07/sustainable-web-career/"><strong>A Sustainable Web Career for When All This Blows Over</strong></a><strong>:</strong> David Bushell’ın web kariyerinde hangi becerilere yatırım yapmak, hangi trendlerden uzak durmak gerektiğine dair kişisel görüşleri.</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7bd3cf794e16" width="1" height="1" alt=""><hr><p><a href="https://medium.com/frontend-development-with-js/ekim-2026-react-ekosistem-haberleri-2-7bd3cf794e16">Ekim 2026 React Ekosistem Haberleri — 2</a> was originally published in <a href="https://medium.com/frontend-development-with-js">Frontend Development With JS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Ekim 2026 React Ekosistem Haberleri]]></title>
            <link>https://medium.com/frontend-development-with-js/ekim-2026-react-ekosistem-haberleri-45f8d495bd67?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/45f8d495bd67</guid>
            <category><![CDATA[news]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Sat, 10 Oct 2026 06:51:02 GMT</pubDate>
            <atom:updated>2026-10-10T06:51:02.580Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Iobq3VWJEwd_AiAC" /><figcaption>Photo by <a href="https://unsplash.com/@codzilla_swiss?utm_source=medium&amp;utm_medium=referral">AbsolutVision</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h4>Her dönem olduğu gibi email ve diğer ortamlarda React konularında karşıma çıkan, hoşuma giden haberleri sizler ile paylaşıyor olacağım.</h4><p>Eylül sonu ve Ekim’in ilk haftasında React konularında karşıma çıkan haberleri <strong>React, Next.js, Güvenlik, TanStack, React Compiler, Community ve CSS</strong> şeklinde gruplara ayırdım.</p><h3>React</h3><h4>React 19.3</h4><ul><li><strong>React 19.3 →</strong> <a href="https://react.dev/blog/2026/09/09/react-19-3">https://react.dev/blog/2026/09/09/react-19-3</a></li></ul><p>React 19.3 ile birlikte uzun süredir Canary kanalında olan <strong>&lt;ViewTransition&gt;</strong> ve <strong>Fragment Refs</strong> API’leri artık stabil olarak kullanılabilir. Bu API’leri daha önce <a href="https://medium.com/@odayibasi/react-lab-activity-viewtransition-apileri-56d189752097">React Lab &lt;Activity&gt;, &lt;ViewTransition&gt; APIleri</a> ve <a href="https://medium.com/@odayibasi/ekim-2025-react-ekosistem-haberleri-1-c0846b78078a">Ekim 2025 React Ekosistem Haberleri</a> yazılarımda Canary olarak anlatmıştım, tam bir yıl sonra production’a hazır hale geldiler.</p><h4>&lt;ViewTransition&gt;</h4><p>Arkaplanda tarayıcının View Transition API’sini kullanıyor. Bileşen eklendiğinde (enter), silindiğinde (exit), güncellendiğinde (update) veya bir yerden başka bir yere taşındığında (share) animasyon uygulayabiliyorsunuz. Varsayılan animasyon cross-fade.</p><p>Burada dikkat edilmesi gereken nokta şu, <strong>sadece Transition olarak işaretlenen güncellemeler animasyonlu oluyor.</strong> Yani startTransition, useDeferredValue veya Suspense ile tetiklenen güncellemeler animate ediliyor, input&#39;a yazmak gibi urgent güncellemeler ise animate edilmiyor. Bu şu açıdan önemli, kullanıcının yazdığı her harfin FadeIn ile gelmesini kimse istemez 😃</p><p>Bu sürümde hoşuma giden yenilik ise addTransitionType. Aynı state değişikliğine, değişikliğin nedenine göre farklı animasyon verebiliyorsunuz. Örneğin bir Carousel&#39;de ileri ve geri geçişler..</p><pre>startTransition(() =&gt; {<br>  addTransitionType(&#39;ileri&#39;);<br>  setIndex(i =&gt; i + 1);<br>});</pre><pre>&lt;ViewTransition<br>  enter={{ ileri: &#39;sagdan-gir&#39;, geri: &#39;soldan-gir&#39; }}<br>  exit={{ ileri: &#39;sola-cik&#39;, geri: &#39;saga-cik&#39; }}<br>&gt;<br>  &lt;Slide /&gt;<br>&lt;/ViewTransition&gt;</pre><p>Animasyonların kendisi tamamen CSS tarafında tanımlanıyor. Buda bize Framer Motion gibi bir animasyon kütüphanesi kullanmadan, doğal React API’leri ile geçişleri yönetebilmemize olanak sağlıyor.</p><p>Bir de Suspense ile birlikte kullanımı var. Suspense’i &lt;ViewTransition update=&quot;auto&quot; default=&quot;none&quot;&gt; ile sardığınızda sadece Fallback → İçerik geçişi animate ediliyor. Ayrıca &lt;img&gt; etiketleri ViewTransition içerisindeyken yüklenene kadar Suspense&#39;i tetikliyor, böylece resimlerin sayfaya aniden düşmesi engelleniyor.</p><h4>Fragment Refs</h4><p>Küçük ama geliştirici deneyimini ciddi şekilde iyileştiren bir değişiklik. Artık &lt;Fragment&gt;&#39;a direkt ref verebiliyorsunuz. Önceden sadece ref alabilmek için ekstra &lt;div&gt; sarmaları kullanmak zorundaydık, bu da çoğu zaman layout&#39;u bozuyordu.</p><p>Dönen FragmentInstance ile:</p><ul><li><strong>Event →</strong> addEventListener, removeEventListener ile alt elemanlara event bağlayabiliyorsunuz.</li><li><strong>Focus →</strong> focus, focusLast, blur ile odak yönetimi yapabiliyorsunuz.</li><li><strong>Observer →</strong> observeUsing ile IntersectionObserver veya ResizeObserver bağlayabiliyorsunuz.</li></ul><p>Özellikle analytics, lazy-load ve “bileşen ekranda görünüyor mu?” gibi senaryolar için daha önce Custom Hook’lar ile çözmeye çalıştığımız işler artık çok daha temiz yazılabilecek.</p><h4>browser()</h4><p>react-dom içerisinden gelen yeni bir API. use(browser()) çağrıldığında ilgili bileşen sunucuda render edilmiyor, sunucuda en yakın Suspense fallback gösteriliyor, client tarafında ise hydration sonrası normal şekilde render ediliyor.</p><pre>function YerelSaat({ sunucuDegeri }) {<br>  if (sunucuDegeri) return &lt;span&gt;{sunucuDegeri}&lt;/span&gt;;<br>  use(browser()); // Bundan sonrası sadece tarayıcıda çalışır<br>  return &lt;span&gt;{new Date().toLocaleTimeString(&#39;tr-TR&#39;)}&lt;/span&gt;;<br>}</pre><p>Güzel tarafı koşullu çağrılabilmesi. localStorage, timezone gibi sadece tarayıcıda olan bilgiler için yazdığımız useEffect + isMounted hack&#39;lerine artık gerek kalmayacak.</p><h4>Diğer Değişiklikler</h4><ul><li><strong>RSC →</strong> Server Component içerisinde &lt;Context&gt; doğrudan render edilebiliyor. Context için ayrı bir Provider wrapper bileşeni yazmaya gerek kalmıyor.</li><li><strong>Güvenlik →</strong> Trusted Types desteği geldi. React artık değerleri string’e çevirmeden DOM’a veriyor.</li><li><strong>Dikkat →</strong> Strict Mode’da Effect’ler artık hydration sırasında da 2 kez çalışıyor. Effect’leriniz idempotent değilse versiyon geçişinde sorun yaşayabilirsiniz.</li><li><strong>Transitions →</strong> Transition’lar artık birbirinden bağımsız render ediliyor, yavaş bir Transition diğerlerini bloklamıyor.</li></ul><h3>Next.js</h3><h4>Next.js 16.4</h4><ul><li><strong>Next.js 16.4 →</strong> <a href="https://nextjs.org/blog/next-16-4">https://nextjs.org/blog/next-16-4</a></li></ul><p>Bu sürümdeki ana mesaj şu, <strong>Cache Components</strong> artık her Next.js uygulaması için önerilen model ve Next.js 17 ile default hale gelecek. create-next-app ile oluşturulan yeni projelerde zaten açık geliyor.</p><p>Cache Components’ı kısaca &#39;use cache&#39; direktifi ile bileşen ağacının belirli kısımlarını cache&#39;lenebilir olarak işaretlemek diye özetleyebiliriz. Bileşen seviyesinde bir Cache-Control header&#39;ı gibi düşünebilirsiniz. App Router&#39;daki eski implicit cache davranışlarının yerini alıyor. use client ve use server direktiflerinden sonra artık use cache da hayatımıza girmiş oldu..</p><ul><li><strong>ensureStatic →</strong> Bir route veya layout’a export const ensureStatic = &#39;navigation&#39; eklediğinizde, o sayfaya yanlışlıkla dinamik bir bileşen eklenirse build hata veriyor. Blog, e-ticaret, landing page gibi statik kalması gereken sayfalar için güzel bir güvenlik ağı.</li><li><strong>navigation() →</strong> &lt;Link prefetch&gt; her görünen link için tüm veriyi önceden çekiyordu. Artık bir bileşenin başında await navigation() çağırdığınızda o bileşen prefetch sırasında atlanıyor, sadece gerçek navigasyonda yükleniyor. Örneğin yazının başlığı prefetch edilip yorumlar tıklamaya bırakılabiliyor.</li><li><strong>Agent →</strong> next upgrade --agent komutu ile AI agent&#39;lara versiyona özel migration rehberi ve codemod&#39;lar veriliyor. AI sonrası framework&#39;lerin agent&#39;lar için de araç üretmesi ilginç bir trend.</li><li><strong>Turbopack →</strong> Disk cache %20–25 daha küçük, server HMR lazy hale geldi ve production bundle boyutları küçüldü.</li><li><strong>Rust React Compiler (Deneysel) →</strong> Bellek kullanımı %30, derleme süresi %15 azalmış.</li></ul><h3>Güvenlik</h3><p>TanStack Start kullananlar için önemli bir uyarı.</p><ul><li><a href="https://tanstack.com/blog/tanstack-start-security-update-cve-2026-102989"><strong>TanStack Start Security Update (CVE-2026–102989)</strong></a></li></ul><p>TanStack Start’ın server function response’larında <strong>kritik bir reflected XSS açığı</strong> bulundu ve 10 üzerinden 9.3 ile derecelendirildi. Saldırgan, kimlik doğrulama olmadan hazırladığı bir URL ile uygulamanızın origin’inde kendi JavaScript kodunu çalıştırabiliyordu. Aralık ayındaki <a href="https://medium.com/@odayibasi/rsc-ve-react2shell-abc5dbead6c1">RSC ve React2Shell</a> olayından sonra server tarafına kayan React framework’lerinde güvenliğin ne kadar kritik olduğunu bir kez daha görmüş olduk.</p><p>Yapılması gerekenler:</p><ul><li>@tanstack/react-start → <strong>1.168.60</strong> veya üstüne yükseltin.</li><li>Lockfile içerisinde @tanstack/start-server-core versiyonunun <strong>1.169.39</strong> veya üstü olduğunu kontrol edin.</li><li>Mutlaka yeniden build alıp deploy edin, sadece lokalde güncellemek canlıdaki uygulamayı korumuyor.</li></ul><h3>TanStack</h3><ul><li><a href="https://tanstack.com/blog/tanstack-charts-1-0"><strong>TanStack Charts 1.0</strong></a><strong>:</strong> TanStack’in chart kütüphanesi stabil versiyona ulaştı. Mark (line, point, bar) ve Scale kavramları üzerine kurulu, framework agnostic bir core ve React adapter’ı bulunuyor. Default SVG kullanıyor, Canvas ayrı import olarak geliyor, D3 scale’leri ile de uyumlu. Daha önceki yazılarımda grafikler için Recharts kullanmıştım, yeni projelerde denemek istediğim bir kütüphane oldu.</li><li><strong>TanStack Markdown + Highlight 1.0:</strong> Dokümantasyon ve AI stream’leri için küçük ve hızlı bir Markdown renderer ve syntax highlighter. Agentic UI’larda LLM cevaplarının stream edilerek gösterilmesi düşünüldüğünde oldukça işe yarayacak bir araç. (Agentic UI konusunda yazdığım yazıya <a href="https://medium.com/@odayibasi/agentic-ui-bile%C5%9Fenleri-e32473794c41">buradan</a> erişebilirsiniz.)</li><li><a href="https://tkdodo.eu/blog/reliable-query-prefetching-with-tanstack-router"><strong>Reliable Query Prefetching with TanStack Router</strong></a><strong>:</strong> TkDodo’nun bu yazısı TanStack Router + Query kullanan herkesin karşılaştığı bir probleme değiniyor. Loader’da prefetch edilen query ile bileşende kullanılan query zamanla birbirinden ayrışıyor. Örneğin bileşene yeni bir search param eklenip loader’a eklenmesi unutulduğunda yanlış veri prefetch ediliyor, bileşen tekrar fetch ediyor ve waterfall oluşuyor. Önerdiği çözüm query options’ı route’un context fonksiyonunda tek bir yerde oluşturup hem loader hem de bileşen içerisinde aynısını kullanmak.</li></ul><pre>export const Route = createFileRoute(&#39;/projeler/$id&#39;)({<br>  loaderDeps: ({ search }) =&gt; ({ sekme: search.sekme }),<br>  context: ({ params, deps }) =&gt; ({<br>    projeQuery: projeQueryOptions(params.id, deps.sekme),<br>  }),<br>  loader: ({ context }) =&gt;<br>    context.queryClient.ensureQueryData(context.projeQuery),<br>});</pre><pre>// Bileşen içerisinde<br>const { projeQuery } = Route.useRouteContext();<br>const { data } = useSuspenseQuery(projeQuery);</pre><h3>React Compiler</h3><ul><li><a href="https://jjenzz.com/making-react-context-cheap/"><strong>Making React Context Cheap with React Compiler</strong></a><strong>:</strong> React’ta hala native context selector bulunmuyor, yani context değeri değiştiğinde onu kullanan tüm bileşenler re-render oluyor. Yazıda 5.000 radio input’u aynı state’e bağlayan bir benchmark yapılmış ve React Compiler’ın tek başına context selector’lara yakın bir performans kazancı sağladığı görülüyor. Yani Compiler kullanıyorsanız sırf performans için context’i parçalara bölmenize veya use-context-selector gibi kütüphanelere ihtiyacınız azalıyor.</li></ul><h3>Community</h3><ul><li><strong>React Foundation →</strong> Linux Foundation çatısı altındaki React Foundation, 4–5 Kasım’da Gana/Accra’da ilk resmi React konferansını düzenliyor. 10–12 Kasım’da Londra’da da Contributors Summit yapılacak.</li><li><strong>This Week in React →</strong> Sebastien Lorber’in hazırladığı newsletter <a href="https://thisweekinreact.com/newsletter/300">300. sayıya</a> ulaştı. React haberlerini haftalık takip etmek için oldukça faydalı bir kaynak.</li></ul><h3>CSS</h3><ul><li><a href="https://www.joshwcomeau.com/css/anchor-positioning/"><strong>Getting Started with Anchor Positioning</strong></a><strong>:</strong> Josh W. Comeau’nun interaktif örnekler ile anlattığı yazı. Tooltip, Popover, Dropdown gibi bileşenleri konumlandırmak için kullandığımız Floating UI / Popper gibi kütüphanelerin yerini zamanla CSS Anchor Positioning alacak gibi görünüyor.React Ekosisteminde Ekim 2026: React 19.3, Next.js 16.4 ve TanStack’te Kritik Güncellemeler</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=45f8d495bd67" width="1" height="1" alt=""><hr><p><a href="https://medium.com/frontend-development-with-js/ekim-2026-react-ekosistem-haberleri-45f8d495bd67">Ekim 2026 React Ekosistem Haberleri</a> was originally published in <a href="https://medium.com/frontend-development-with-js">Frontend Development With JS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AI Sonrası Frontend Ekosistemindeki Gelişmeler]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/frontend-development-with-js/ai-sonras%C4%B1-frontend-ekosistemindeki-geli%C5%9Fmeler-c7d02e2a4f54?source=rss----4ee8034b314---4"><img src="https://cdn-images-1.medium.com/max/2600/0*mSaxQF3tWEOuAqkb" width="3840"></a></p><p class="medium-feed-snippet">AI Sonras&#x131; Frontend Ekosisteminde bir&#xE7;ok de&#x11F;i&#x15F;iklik ve yakla&#x15F;&#x131;m ortaya &#xE7;&#x131;kt&#x131; a&#x15F;a&#x11F;&#x131;da bu yakla&#x15F;&#x131;mlara de&#x11F;iniyor olaca&#x11F;&#x131;m</p><p class="medium-feed-link"><a href="https://medium.com/frontend-development-with-js/ai-sonras%C4%B1-frontend-ekosistemindeki-geli%C5%9Fmeler-c7d02e2a4f54?source=rss----4ee8034b314---4">Continue reading on Frontend Development With JS »</a></p></div>]]></description>
            <link>https://medium.com/frontend-development-with-js/ai-sonras%C4%B1-frontend-ekosistemindeki-geli%C5%9Fmeler-c7d02e2a4f54?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/c7d02e2a4f54</guid>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Sat, 18 Jul 2026 18:21:32 GMT</pubDate>
            <atom:updated>2026-07-18T18:23:18.134Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Zero UI]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/frontend-development-with-js/zero-ui-68070dbc0790?source=rss----4ee8034b314---4"><img src="https://cdn-images-1.medium.com/max/1662/1*uH0FsMERP3EP6NBmRLNO5Q.png" width="1662"></a></p><p class="medium-feed-snippet">Kullan&#x131;c&#x131;n&#x131;n geleneksel ekran klavye ve farelere dokunmak yerine ses, jest g&#xF6;z takibi ile AI ile ileti&#x15F;ime ge&#xE7;mesini sa&#x11F;layan aray&#xFC;zlerdir</p><p class="medium-feed-link"><a href="https://medium.com/frontend-development-with-js/zero-ui-68070dbc0790?source=rss----4ee8034b314---4">Continue reading on Frontend Development With JS »</a></p></div>]]></description>
            <link>https://medium.com/frontend-development-with-js/zero-ui-68070dbc0790?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/68070dbc0790</guid>
            <category><![CDATA[predictive-ui]]></category>
            <category><![CDATA[zero-ui]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Sat, 20 Jun 2026 05:06:30 GMT</pubDate>
            <atom:updated>2026-06-20T05:06:29.614Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[AI Sonrası Frontend Alanındaki Değişim — 2]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/frontend-development-with-js/ai-sonras%C4%B1-frontend-alan%C4%B1ndaki-de%C4%9Fi%C5%9Fim-2-e254ba293488?source=rss----4ee8034b314---4"><img src="https://cdn-images-1.medium.com/max/1400/0*oUHfQzuon6wP-Vpa.png" width="1400"></a></p><p class="medium-feed-snippet">AI Sonras&#x131; Frontend de&#x11F;i&#x15F;imleri a&#x15F;a&#x11F;&#x131;daki ba&#x15F;l&#x131;klar alt&#x131;nda toplayabiliriz;</p><p class="medium-feed-link"><a href="https://medium.com/frontend-development-with-js/ai-sonras%C4%B1-frontend-alan%C4%B1ndaki-de%C4%9Fi%C5%9Fim-2-e254ba293488?source=rss----4ee8034b314---4">Continue reading on Frontend Development With JS »</a></p></div>]]></description>
            <link>https://medium.com/frontend-development-with-js/ai-sonras%C4%B1-frontend-alan%C4%B1ndaki-de%C4%9Fi%C5%9Fim-2-e254ba293488?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/e254ba293488</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[next-generation]]></category>
            <category><![CDATA[frontend]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Fri, 29 May 2026 11:27:18 GMT</pubDate>
            <atom:updated>2026-05-29T11:27:17.920Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[AI Sonrası Frontend Alanındaki Değişim — 1 (Intent Driven)]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/frontend-development-with-js/ai-sonras%C4%B1-frontend-alan%C4%B1ndaki-de%C4%9Fi%C5%9Fim-1-intent-driven-d54f443e1924?source=rss----4ee8034b314---4"><img src="https://cdn-images-1.medium.com/max/1734/1*6Q1Hrac9scqXvOAuUT8R_w.png" width="1734"></a></p><p class="medium-feed-snippet">AI ile birlikte kullan&#x131;c&#x131; ve sistemler ile etkile&#x15F;imde ciddi de&#x11F;i&#x15F;imler olmaya ba&#x15F;lad&#x131; art&#x131;k statik , 2 boyutlu bile&#x15F;enlerin arkas&#x131;nda&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/frontend-development-with-js/ai-sonras%C4%B1-frontend-alan%C4%B1ndaki-de%C4%9Fi%C5%9Fim-1-intent-driven-d54f443e1924?source=rss----4ee8034b314---4">Continue reading on Frontend Development With JS »</a></p></div>]]></description>
            <link>https://medium.com/frontend-development-with-js/ai-sonras%C4%B1-frontend-alan%C4%B1ndaki-de%C4%9Fi%C5%9Fim-1-intent-driven-d54f443e1924?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/d54f443e1924</guid>
            <category><![CDATA[generative-ui]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[intent-driven-ui]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Thu, 28 May 2026 18:07:13 GMT</pubDate>
            <atom:updated>2026-05-28T18:07:13.203Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Aralık 2025 React Ekosistem Haberleri]]></title>
            <link>https://medium.com/frontend-development-with-js/aral%C4%B1k-2025-react-ekosistem-haberleri-67d9cb18ceaf?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/67d9cb18ceaf</guid>
            <category><![CDATA[news]]></category>
            <category><![CDATA[2025]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Sun, 21 Dec 2025 16:40:48 GMT</pubDate>
            <atom:updated>2025-12-21T16:40:26.693Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*nP9YKfEKRuy-xdZX" /><figcaption>Photo by <a href="https://unsplash.com/@polarmermaid?utm_source=medium&amp;utm_medium=referral">Anne Nygård</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h4>News</h4><h4>Her dönem olduğu gibi email ve diğer ortamlarda React konularında karşıma çıkan, hoşuma giden haberleri sizler ile paylaşıyor olacağım.</h4><ul><li><a href="https://github.com/mui/base-ui?tab=readme-ov-file">BaseUI V1</a> yayınlandı.</li><li>Dan Abramov tarafından RSC çalışmasını inceleyebileceğiniz <a href="https://overreacted.io/introducing-rsc-explorer">RSC Explorer</a> yayınlandı.</li><li><a href="https://developer.chrome.com/blog/chrome-devtools-mcp-debug-your-browser-session">Chrome DevTools MCP</a> sayesinde browser session debug edebiliyorsunuz.</li><li><a href="https://react-spectrum.adobe.com/releases/v1-0-0">Spectrum</a> ve <a href="https://react-aria.adobe.com/">React Aria</a> kütüphanelerinde güncellemeler</li><li><a href="https://www.youtube.com/watch?v=kmlMNtjFgoY">i’m gonna crash out (react2shell vulnerability)</a></li><li><a href="https://github.com/reduxjs/react-redux/issues/2264">Redux </a><a href="https://github.com/reduxjs/react-redux/issues/2264">connect as deprecated</a></li><li><a href="https://blog.logrocket.com/react-19-2-the-async-shift">React 19.2: The async shift is finally here</a></li><li><a href="https://tanstack.com/blog/tanstack-2-years">The State of TanStack, Two Years of Full-Time OSS</a></li><li><a href="https://vite.dev/blog/announcing-vite8-beta">Vite8 Beta</a></li><li><a href="https://culi.bearblog.dev/jsdoc-is-typescript">JSDoc *is* TypeScript</a></li><li><a href="https://supabase.com/blog/introducing-iceberg-js">Introducing iceberg-js: A JavaScript Client for Apache Iceberg</a></li><li><a href="https://ondrejvelisek.github.io/tanstack-start-new-competitor-to-nextjs">TanStack Start: New competitor to Next.js</a></li><li><a href="https://x.com/infinterenders/status/1997359890021634509">Fiber</a></li><li><a href="https://tanstack.com/blog/tanstack-ai-alpha-your-ai-your-way">TanStack AI Alpha: Your AI, Your Way</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=67d9cb18ceaf" width="1" height="1" alt=""><hr><p><a href="https://medium.com/frontend-development-with-js/aral%C4%B1k-2025-react-ekosistem-haberleri-67d9cb18ceaf">Aralık 2025 React Ekosistem Haberleri</a> was originally published in <a href="https://medium.com/frontend-development-with-js">Frontend Development With JS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[RSC ve React2Shell]]></title>
            <link>https://medium.com/frontend-development-with-js/rsc-ve-react2shell-abc5dbead6c1?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/abc5dbead6c1</guid>
            <category><![CDATA[react2shell-vulnerability]]></category>
            <category><![CDATA[rsc]]></category>
            <category><![CDATA[security]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[reactjs]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Sat, 13 Dec 2025 13:16:21 GMT</pubDate>
            <atom:updated>2025-12-13T13:16:05.222Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*9sxdNMCB6jn_VM0w" /><figcaption>Photo by <a href="https://unsplash.com/@davidclode?utm_source=medium&amp;utm_medium=referral">David Clode</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h4>React Ekosistemi</h4><h4>React Server Components daha önceki yazılarımda hep bazı problemli noktalarına değinmiştim. Vendor bağımlılık, Güvenlik, Debugging, Karmaşıklık vb birçok konu RSC konusunda kafama yatmamıştı. Bugün karşıma sıkça çıkan React2Shell Güvenlik problemine biraz değineceğim.</h4><p>Zamanında 2023 Kasım ayında şu şekilde bir yazı paylaşmıştım → <a href="https://medium.com/frontend-development-with-js/next-js-react%C4%B1n-yerini-mi-alacak-160f712cc589">Next.js React’ın Geleceğine Mi Karar Veriyor ? veya Yerine mi deseydim :)</a> çünkü burada bir Next.js sunumu olmuştu ve RSC konusunda ve React’ı ilgilendiren konularda bir takım duyurular React konferansından önce Next.JS de duyrulmuş ekosistemden çokça tepki almıştı. Burada yeni bir model sunuluyordu. İsteyenler o zamanlar için yukarıdaki yazımı okuyabilirler.</p><p>O zamanlar konu ile ilgili aklımdaki soru işaretlerine şu şekilde değinmiştim.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aU7XxQ14O9vHHYmPfrHWzw.png" /><figcaption><a href="https://medium.com/frontend-development-with-js/next-js-react%C4%B1n-yerini-mi-alacak-160f712cc589">https://medium.com/frontend-development-with-js/next-js-react%C4%B1n-yerini-mi-alacak-160f712cc589</a></figcaption></figure><ul><li>Vendor bağımlılık zaten ekosistemde ciddi bir kırılım yaşattı. React Kütüphane mantığından → Framework geçişte alternatif 2,3 yöntem kaldı bunlardan en ağır basanıda Next.js dir, ardından ReactRouter ve TanStackStart geliyor.</li><li>Güvenlik problemi <a href="https://nvd.nist.gov/vuln/detail/CVE-2025-55182">CVE-2025–55182</a> şeklinde bir güvenlik açığı oluştu. Özetle burada <strong>CVE-2025–55182</strong>, React ekosistemi için <strong>çok kritik </strong>bir güvenlik açığı olduğundan bahsediyor. React Server Components’te <strong>Server Function endpoint’leri</strong>, HTTP üzerinden gelen payload’ları <strong>güvensiz şekilde deserialize ediyor</strong>.</li></ul><p>Bu da şu anlama geliyor:</p><ul><li>Kimlik doğrulama gerekmeden</li><li>Sadece bir HTTP isteğiyle</li><li>Sunucu üzerinde <strong>keyfi kod çalıştırılabiliyor</strong></li></ul><p>Bu konuda Efe Karasakal türkçe güzel bir video hazırlamış ben olayın Next.js tarafında nasıl işletildi Chunkların sunucu ile istemci arasında giden gelen veriye nasıl bir kod enjekte edileceğini anlattı kısmın resmini ekledim. Aşağıdan da ilgili videoyu izleyebilirsiniz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BcDL4YCD3spI1lds83Wc3A.png" /></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FJayNlmMMwnw%3Fstart%3D574%26feature%3Doembed%26start%3D574&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DJayNlmMMwnw&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FJayNlmMMwnw%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/32f61da3c76ade48f52f37548dcbea6b/href">https://medium.com/media/32f61da3c76ade48f52f37548dcbea6b/href</a></iframe><p>Tabi bunun sonrasında Next.JS 11 Aralık’da bu güvenlik açığı için bir patch yayınladı.</p><ul><li><a href="https://nextjs.org/blog/security-update-2025-12-11"><strong>Next.js Security Update: December 11, 2025</strong></a></li></ul><p>Tabiki bu süreçte bu açıktan faydalanmak isteyen ve sunuculara ataklar gerçekleştirdiler.</p><ul><li><a href="https://blog.cloudflare.com/react2shell-rsc-vulnerabilities-exploitation-threat-brief/"><strong>React2Shell and related RSC vulnerabilities threat brief: early exploitation activity and threat actor techniques</strong></a></li></ul><p>Burada hatta Cloudflare bu güvenlik açığı için bir koruma devreye sokmaya çalışırken başka uyumsuzluklar yüzünden bir outage olayı yaşadı detayları aşağıda</p><ul><li><a href="https://blog.cloudflare.com/5-december-2025-outage/"><strong>Cloudflare outage on December 5, 2025</strong></a></li></ul><p>Sonuç olarak RSC dediğimiz kavramın kullanılması hem çok karmaşık, hem de sizi belli frameworklere çok bağımlı hale getirip olayın arkaplanını takip etmeyi zorlaştırıyor.</p><p>RSC’nin arkaplanda nasıl işletildiğini Next.JS ve TanStack Router farklı yaklaşımlarını anlattıldığı aşağıdaki <strong>i’m gonna crash out (react2shell vulnerability) </strong>videosunu izlemenizi öneririm.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FkmlMNtjFgoY%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DkmlMNtjFgoY&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FkmlMNtjFgoY%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/b86e4c84ee6eabad1667387fa292d993/href">https://medium.com/media/b86e4c84ee6eabad1667387fa292d993/href</a></iframe><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=abc5dbead6c1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/frontend-development-with-js/rsc-ve-react2shell-abc5dbead6c1">RSC ve React2Shell</a> was originally published in <a href="https://medium.com/frontend-development-with-js">Frontend Development With JS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Kasım  2025 React Ekosistem Haberl]]></title>
            <link>https://medium.com/frontend-development-with-js/kas%C4%B1m-2025-react-ekosistem-haberl-ec130da501c5?source=rss----4ee8034b314---4</link>
            <guid isPermaLink="false">https://medium.com/p/ec130da501c5</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[web-app-development]]></category>
            <category><![CDATA[typescript]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[news]]></category>
            <dc:creator><![CDATA[Onur Dayıbaşı]]></dc:creator>
            <pubDate>Sat, 29 Nov 2025 18:25:04 GMT</pubDate>
            <atom:updated>2025-11-29T18:25:03.071Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*aADZfhFrRIME7hHO" /><figcaption>Photo by <a href="https://unsplash.com/@ruvimnogaphoto?utm_source=medium&amp;utm_medium=referral">Ruvim Noga</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>Kasım 2025 React Ekosistem Haberleri</h3><h4>Her dönem olduğu gibi email ve diğer ortamlarda React konularında karşıma çıkan, hoşuma giden haberleri sizler ile paylaşıyor olacağım.</h4><h3>Genel</h3><ul><li><a href="https://github.com/trekhleb/javascript-algorithms"><strong>JS Algorithms:</strong></a> JS ile DataStructures ve Algoritma öğrenmek için oldukça iyi bir kaynak. Her bir konunun görselleştirilmesi ve JS kullanımı anlatılıyor .</li><li><a href="https://www.thisdot.co/blog/understanding-sourcemaps-from-development-to-production"><strong>SourceMaps Kullanımı</strong></a><strong> : </strong>Understanding Sourcemaps: From Development to Production</li><li><a href="https://zoo.js.org/"><strong>JS Engine Karşılaştırmaları</strong></a></li><li><a href="https://www.youtube.com/watch?v=IgSwJaheiGk"><strong>State Of Node.JS</strong></a></li><li><a href="https://www.dolthub.com/blog/2025-11-13-electron-vs-tauri/"><strong>Electron vs. Tauri</strong></a></li><li><a href="https://owasp.org/Top10/2025/0x00_2025-Introduction/"><strong>OWASP 10</strong></a></li></ul><h3>TypeScript</h3><ul><li><a href="https://tkdodo.eu/blog/omit-for-discriminated-unions-in-type-script"><strong>TypeScript’te Discriminated Union’lar için Omit Kullanımı</strong></a></li><li><a href="http://Embedding TypeScript"><strong>Embedding TypeScript</strong></a></li><li><a href="https://github.blog/developer-skills/programming-languages-and-frameworks/typescripts-rise-in-the-ai-era-insights-from-lead-architect-anders-hejlsberg/"><strong>TypeScript’in AI Alanındaki Kullanımında Yükseliş</strong></a></li><li><a href="https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/"><strong>A new developer joins GitHub every second as AI leads TS</strong></a></li></ul><h3>React, Svelte</h3><ul><li><a href="https://andrei-calazans.com/posts/react-19-error-boundary-changed/">React 19 Error Boundary Behaves Differently</a></li><li><a href="https://svelteplot.dev/why-svelteplot"><strong>SveltePlot</strong></a> combines the concise API and concepts of <a href="https://observablehq.com/plot/">Observable Plot</a> with <a href="https://svelte.dev/">Svelte</a> reactivity. It is not just a Svelte-wrapper, but re-implemented from scratch on top of <a href="https://d3js.org/">D3</a>. But what makes SveltePlot better than the existing visualization frameworks in Svelte?</li><li><a href="https://laconicwit.com/react-and-remix-choose-different-futures/">React and Remix Choose Different Futures</a></li></ul><h3>Components</h3><ul><li><a href="https://github.com/ant-design/ant-design/issues/55804"><strong>Ant Design 6.0 is Here!</strong></a><strong> :</strong> Ant kütüphanesini beğenip uzun süredir uygulamarımda kullandığım için oldukça sevindirici bir haber.</li></ul><h3>TanStack</h3><ul><li><a href="https://tanstack.com/blog/tanstack-2-years"><strong>The State of TanStack, Two Years of Full-Time OSS</strong></a><strong>:</strong> TanStack açık kaynaklı kod alanında yaptıkları bu süreçte yaşadıklarını anlattığı blog postu..</li><li><a href="http://ramework agnostic debouncing, throttling, rate limiting, queuing, and batching utilities"><strong>Tanstack Parcer Beta</strong></a>: Framework agnostic debouncing, throttling, rate limiting, queuing, and batching utilities gibi yetenekler sağlıyor.</li><li><a href="https://tanstack.com/blog/tanstack-router-route-matching-tree-rewrite"><strong>Tanstack Route Matching Improvements</strong></a><strong>: </strong>TanStack Route matching de değiştirilen algoritma sayesinde 20K x hızlanmış durumda</li><li><a href="https://tanstack.com/blog/tanstack-db-0.5-query-driven-sync"><strong>TanStack DB 0.5 — Query-Driven Sync</strong></a></li><li><a href="https://x.com/melvynxdev/status/1992477735927885964"><strong>Next.JS ve TanStack Start seçimi konusunda</strong></a></li><li><a href="https://www.linkedin.com/posts/tannerlinsley_4-billion-downloads-activity-7394274021153849344-rg5T"><strong>TanStack 4 Milyar download ulaştı</strong></a></li><li><a href="https://tanstack.com/blog/directives-and-the-platform-boundary"><strong>Directives and the Platform Boundary</strong></a></li></ul><h3>Redux</h3><ul><li><a href="https://github.com/reduxjs/redux-toolkit/releases/tag/v2.11.0"><strong>Redux Toolkit 2.11.0</strong></a><strong>:</strong> This feature release upgrades our Immer dependency to v11 to pick up the additional recent performance optimizations, adds a new refetchCachedPages option to allow only fetching the first cached page, and fixes an issue with regex ignore paths in the immutability middleware.</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ec130da501c5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/frontend-development-with-js/kas%C4%B1m-2025-react-ekosistem-haberl-ec130da501c5">Kasım  2025 React Ekosistem Haberl</a> was originally published in <a href="https://medium.com/frontend-development-with-js">Frontend Development With JS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>