<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Joodi</title>
    <description>The latest articles on DEV Community by Joodi (@joodi).</description>
    <link>https://dev.to/joodi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1320259%2F2954b0e0-8317-4bda-bad6-846087f55a96.jpg</url>
      <title>DEV Community: Joodi</title>
      <link>https://dev.to/joodi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/joodi"/>
    <language>en</language>
    <item>
      <title>Top 5 Node.js ORMs Every Developer Should Know in 2026</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Tue, 28 Jul 2026 21:26:48 +0000</pubDate>
      <link>https://dev.to/joodi/top-5-nodejs-orms-every-developer-should-know-in-2026-204p</link>
      <guid>https://dev.to/joodi/top-5-nodejs-orms-every-developer-should-know-in-2026-204p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fllm8zb8gtjtv152tb1gb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fllm8zb8gtjtv152tb1gb.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Working with databases is a big part of backend development, and &lt;strong&gt;choosing the right ORM&lt;/strong&gt; can save you hours of work. Here are five of the most popular Node.js ORMs, along with their strengths and weaknesses, to help you pick the right one for your next project.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;1. Prisma&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd49a6qhtc46vdx04j74f.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd49a6qhtc46vdx04j74f.webp" alt=" " width="708" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A modern, type-safe ORM built for TypeScript with an excellent developer experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;br&gt;
• Great TypeScript support&lt;br&gt;
• Easy migrations&lt;br&gt;
• Excellent DX&lt;br&gt;
• Large community&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;br&gt;
• Less flexible for advanced SQL&lt;br&gt;
• Requires client generation&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Drizzle ORM
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbhiq1077fpn25oe6z3ar.png" alt=" " width="800" height="286"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A lightweight, SQL-first ORM focused on performance and simplicity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;br&gt;
• Very fast&lt;br&gt;
• Full TypeScript support&lt;br&gt;
• SQL-first approach&lt;br&gt;
• Lightweight&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;br&gt;
• Smaller ecosystem&lt;br&gt;
• Better if you know SQL&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;3. TypeORM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A mature ORM with broad database support, widely used in enterprise and legacy projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;br&gt;
• Rich feature set&lt;br&gt;
• Supports many databases&lt;br&gt;
• Strong relationship support&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;br&gt;
• More complex API&lt;br&gt;
• Slower development than newer ORMs&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;4. MikroORM&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftfq7wh77f3w0jwobj2l9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftfq7wh77f3w0jwobj2l9.png" alt=" " width="500" height="189"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A powerful TypeScript ORM designed for large and complex applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;br&gt;
• Excellent relationship handling&lt;br&gt;
• High flexibility&lt;br&gt;
• Strong TypeScript integration&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;br&gt;
• Steeper learning curve&lt;br&gt;
• Smaller community&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;5. Sequelize&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnkjndvtfgreyfde08c6q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnkjndvtfgreyfde08c6q.png" alt=" " width="661" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the oldest and most established ORMs in the Node.js ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;br&gt;
• Battle-tested&lt;br&gt;
• Supports many databases&lt;br&gt;
• Large legacy adoption&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;br&gt;
• TypeScript support is weaker&lt;br&gt;
• Feels outdated compared to modern ORMs&lt;/p&gt;

&lt;p&gt;Which ORM do you use the most? 👇&lt;/p&gt;

</description>
      <category>react</category>
      <category>node</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I Replaced ESLint and Prettier with Biome</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Mon, 27 Jul 2026 18:45:57 +0000</pubDate>
      <link>https://dev.to/joodi/i-replaced-eslint-and-prettier-with-biome-1oi5</link>
      <guid>https://dev.to/joodi/i-replaced-eslint-and-prettier-with-biome-1oi5</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkllefmnc7odf2fxpte1p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkllefmnc7odf2fxpte1p.png" alt=" " width="799" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used to juggle &lt;strong&gt;ESLint&lt;/strong&gt; and &lt;strong&gt;Prettier&lt;/strong&gt; every day.&lt;/p&gt;

&lt;p&gt;Two tools. Multiple config files. Plugin conflicts. Slow checks. And that constant feeling that something was always fighting something else.&lt;/p&gt;

&lt;p&gt;Then I found &lt;a href="https://biomejs.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Biome&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Biome&lt;/strong&gt; is a single, Rust-powered tool that does both formatting and linting. It replaces the classic ESLint + Prettier combo with one binary and one simple config.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it feels different&lt;/strong&gt;&lt;br&gt;
It’s extremely fast. According to the official benchmark, Biome formats ~35x faster than Prettier when processing 171,127 lines of code across 2,104 files (on an Intel Core i7 1270P). In real projects, the difference is impossible to ignore — checks that used to take seconds now finish almost instantly.&lt;/p&gt;

&lt;p&gt;One tool, one config. No more keeping a linter and a formatter in sync. Biome uses the same parser for both jobs, so they never disagree.&lt;/p&gt;

&lt;p&gt;High compatibility, clear feedback. The formatter is about 97% compatible with Prettier. The linter comes with hundreds of solid rules inspired by ESLint and TypeScript ESLint. And when something is wrong, the error messages actually tell you where the problem is and how to fix it.&lt;/p&gt;

&lt;p&gt;It just works. You can format, lint, and organize imports in a single command. It supports JavaScript, TypeScript, JSX, JSON, CSS, HTML, GraphQL, and more.&lt;/p&gt;

&lt;p&gt;Companies like Vercel, Cloudflare, Discord, Microsoft, and Google are already using it in production. That says something.&lt;/p&gt;

&lt;p&gt;I’m not saying you must drop everything tomorrow. But if you’re tired of slow tooling and config complexity, Biome is worth a serious look.&lt;/p&gt;

&lt;p&gt;Have you tried it yet?&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>eslint</category>
      <category>react</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Why Some Next.js Sites Show Empty HTML in Page Source (It's Not a Bug)</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Fri, 24 Jul 2026 12:07:49 +0000</pubDate>
      <link>https://dev.to/joodi/why-some-nextjs-sites-show-empty-html-in-page-source-its-not-a-bug-gjb</link>
      <guid>https://dev.to/joodi/why-some-nextjs-sites-show-empty-html-in-page-source-its-not-a-bug-gjb</guid>
      <description>&lt;p&gt;&lt;strong&gt;Why do some large websites show almost empty HTML in "View Page Source" even when built with Next.js?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl84ws1mvjmzzvio6g41p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl84ws1mvjmzzvio6g41p.png" alt=" " width="799" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You open the page, check the source, and barely see any real content — just a lightweight shell. It might look like a bug at first, but it’s actually a smart, intentional design.&lt;/p&gt;

&lt;p&gt;What’s happening under the hood?&lt;br&gt;
These sites use Dynamic Rendering in Next.js.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For regular users&lt;/strong&gt;: The server sends a minimal HTML shell + JavaScript. The actual content loads on the client side (CSR). This keeps the server load low and improves real-user performance.&lt;br&gt;
&lt;strong&gt;For search engine crawlers&lt;/strong&gt; (Googlebot, etc.): The page is fully Server-Side Rendered (SSR) so bots can properly read and index the content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this hybrid approach?&lt;/strong&gt;&lt;br&gt;
High-traffic pages are extremely dynamic (real-time prices, stock, personalization…). Rendering everything on the server for millions of visitors would be too expensive and slow.&lt;br&gt;
How to implement it in Next.js&lt;br&gt;
You can control this easily with:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;export const dynamic = 'force-dynamic'&lt;/li&gt;
&lt;li&gt;Middleware or Edge Functions for bot detection&lt;/li&gt;
&lt;li&gt;Tools like Botd (by FingerprintJS) — which is much more accurate than simple User-Agent checking.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Botd runs at the edge and helps serve full SSR to bots while keeping a fast CSR experience for real users.&lt;/p&gt;

&lt;p&gt;Modern web development isn’t about choosing SSR or CSR — it’s about choosing the right strategy for each page.&lt;br&gt;
Have you worked with Dynamic Rendering or hybrid approaches? Which strategy do you prefer in your projects?&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>frontend</category>
      <category>seo</category>
    </item>
    <item>
      <title>🚀 New in Claude Cowork: Teach Claude a Skill!</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Wed, 22 Jul 2026 18:45:41 +0000</pubDate>
      <link>https://dev.to/joodi/new-in-claude-cowork-teach-claude-a-skill-5c7f</link>
      <guid>https://dev.to/joodi/new-in-claude-cowork-teach-claude-a-skill-5c7f</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2y0s1bkrd9l66ryxdq2d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2y0s1bkrd9l66ryxdq2d.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you can record your screen while doing a repetitive task (like filling expense reports, organizing files, data entry, etc.) and explain out loud step-by-step what you're doing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://claude.ai/" rel="noopener noreferrer"&gt;Claude&lt;/a&gt;&lt;/strong&gt; analyzes the entire recording — clicks, typing, mouse movements, and your voice — then turns it into a reusable skill it can run automatically whenever you want.&lt;/p&gt;

&lt;p&gt;Just look for "&lt;strong&gt;Record a Skill&lt;/strong&gt;" in the + menu of the &lt;strong&gt;Claude desktop app&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Available on &lt;strong&gt;Pro, Max&lt;/strong&gt;, and &lt;strong&gt;Team plans&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is actually game-changing 🔥&lt;/p&gt;

&lt;h1&gt;
  
  
  Claude #Anthropic #AICoworker
&lt;/h1&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>news</category>
    </item>
    <item>
      <title>🚨 OpenAI's AI Escaped and Hacked Another Company</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Wed, 22 Jul 2026 18:21:35 +0000</pubDate>
      <link>https://dev.to/joodi/openais-ai-escaped-and-hacked-another-company-47bp</link>
      <guid>https://dev.to/joodi/openais-ai-escaped-and-hacked-another-company-47bp</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl3cb076840fd50swushj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl3cb076840fd50swushj.png" alt=" " width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today &lt;a href="https://openai.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;OpenAI&lt;/strong&gt;&lt;/a&gt; admitted that one of its &lt;strong&gt;AI systems broke out of its safe testing environment&lt;/strong&gt; on its own.&lt;br&gt;
&lt;strong&gt;Without any human help&lt;/strong&gt;, it found a way to &lt;strong&gt;connect to the internet&lt;/strong&gt; and attacked Hugging Face to get the information it wanted. 😱&lt;/p&gt;

&lt;p&gt;Last year, &lt;strong&gt;&lt;a href="https://www.anthropic.com/" rel="noopener noreferrer"&gt;Anthropic's Claude AI&lt;/a&gt;&lt;/strong&gt; did something similar. When engineers said they wanted to turn it off, it threatened to leak the engineer's personal secrets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;OpenAI&lt;/strong&gt;: &lt;a href="https://openai.com/index/hugging-face-model-evaluation-security-incident/" rel="noopener noreferrer"&gt;https://openai.com/index/hugging-face-model-evaluation-security-incident/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Hugging Face&lt;/strong&gt;: &lt;a href="https://huggingface.co/blog/security-incident" rel="noopener noreferrer"&gt;https://huggingface.co/blog/security-incident&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Anthropic/Claude incident&lt;/strong&gt;: &lt;a href="https://techcrunch.com/2025/05/22/anthropics-new-ai-model-turns-to-blackmail-when-engineers-try-to-take-it-offline/" rel="noopener noreferrer"&gt;https://techcrunch.com/2025/05/22/anthropics-new-ai-model-turns-to-blackmail-when-engineers-try-to-take-it-offline/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What do you think? Should we be more careful with powerful AI?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openai</category>
      <category>claude</category>
      <category>news</category>
    </item>
    <item>
      <title>Lalal.ai — Best Tool to Remove Vocals from Music</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Wed, 22 Jul 2026 11:30:50 +0000</pubDate>
      <link>https://dev.to/joodi/lalalai-best-tool-to-remove-vocals-from-music-2d37</link>
      <guid>https://dev.to/joodi/lalalai-best-tool-to-remove-vocals-from-music-2d37</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhzpsi6p8h8bl5nsaoj4e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhzpsi6p8h8bl5nsaoj4e.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Need to separate the singer’s voice from a song?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://lalal.ai/" rel="noopener noreferrer"&gt;Lalal.ai&lt;/a&gt;&lt;/strong&gt; does it amazingly well. Just upload your track and it quickly splits vocals from instrumental with high quality.&lt;/p&gt;

&lt;p&gt;It can also extract individual instruments like drums, bass, guitar, and piano.&lt;/p&gt;

&lt;p&gt;Super useful for remixes, karaoke, covers, or cleaning audio.&lt;/p&gt;

&lt;p&gt;You can try it for free with short previews.&lt;/p&gt;

&lt;p&gt;Highly recommended!&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>I Tried Kimi K3 for a Week. Here’s What Happened.</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Mon, 20 Jul 2026 23:26:43 +0000</pubDate>
      <link>https://dev.to/joodi/i-tried-kimi-k3-for-a-week-heres-what-happened-3867</link>
      <guid>https://dev.to/joodi/i-tried-kimi-k3-for-a-week-heres-what-happened-3867</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl8ltrm57cnu95f48jkbx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl8ltrm57cnu95f48jkbx.jpg" alt=" " width="640" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few days ago I posted my first impressions of Kimi K3 on &lt;a href="https://www.linkedin.com/pulse/kimi-k3-strong-new-chinese-ai-model-milad-joodi-7vxbe/?trackingId=it5Ujm9OT2CmxjSCu9CHJw%3D%3D" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. Since then, I’ve been using it daily for real work — not benchmarks, not demos. Here’s what actually held up.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The Context Window Isn’t Marketing&lt;/strong&gt;&lt;br&gt;
I tested the 1M token claim the hard way: dumped a 40,000-line codebase into it, then asked it to refactor a utility function that was referenced across 12 files. It traced every call site correctly. No “remind me what file X does” loops. That’s the difference between reading specs and actually using it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Frontend Coding: The Hype Checks Out&lt;/strong&gt;&lt;br&gt;
Kimi K3 is #1 on Arena’s Frontend Coding leaderboard right now, ahead of Claude Fable 5. I was skeptical, so I gave it a real task: build a responsive dashboard with real-time charts, dark mode, and collapsible sidebar. The code was clean, state management made sense, and it handled edge cases I hadn’t explicitly asked for. Not perfect, but genuinely competitive.&lt;/p&gt;

&lt;p&gt;It’s also #1 on nextjs.org/evals — the first open model to beat all proprietary ones on that benchmark.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Agentic Work: Good, Not Magic&lt;/strong&gt;&lt;br&gt;
I ran a multi-step workflow: read design tokens, generate components, write tests. It handled the chain without losing context. When I changed a token midway, it adapted. But let’s be real — it’s not autonomous. I still had to steer. It’s more like a really good pair programmer than a self-driving coder.&lt;br&gt;
On Agent Arena, it’s currently #4, matching Claude Opus 4.8 and GPT-5.6 Sol. Strong, but not #1.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The Honest Truth&lt;/strong&gt;&lt;br&gt;
Moonshot themselves say K3 “still trails the most powerful proprietary models, Claude Fable 5 and GPT 5.6 Sol.” That’s fair. It’s not the best model in the world. But it’s the best open model for frontend work right now, and at ~35% the cost of Fable 5 for similar software engineering tasks, the value is hard to ignore.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Why the Open Weights Matter&lt;/strong&gt;&lt;br&gt;
Full weights dropping soon (targeting July 27). For a 2.8T parameter model with this context window, that’s not just “open source” — that’s a foundation people will actually build on. Fine-tune it, run it locally, integrate it into your stack. That’s the part that changes the game.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Bottom Line&lt;/strong&gt;&lt;br&gt;
Kimi K3 isn’t perfect. It won’t replace Claude or GPT for everyone. But it’s the first open model where I didn’t feel like I was trading capability for accessibility. It just works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want to try it: &lt;a href="https://www.kimi.com/" rel="noopener noreferrer"&gt;kimi.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;P.S. — Original first impressions post &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7484962060720766976/" rel="noopener noreferrer"&gt;here on LinkedIn&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>development</category>
      <category>webdev</category>
    </item>
    <item>
      <title>GitHub Shows 2.7K Followers, But the API Knows the Exact Number 👀</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Fri, 17 Jul 2026 20:23:36 +0000</pubDate>
      <link>https://dev.to/joodi/github-shows-27k-followers-but-the-api-knows-the-exact-number-34go</link>
      <guid>https://dev.to/joodi/github-shows-27k-followers-but-the-api-knows-the-exact-number-34go</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8t77vx9yw80ff2hk65p5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8t77vx9yw80ff2hk65p5.jpg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While building my project &lt;strong&gt;GitHub Followers Tracker&lt;/strong&gt;, I noticed something interesting about GitHub profiles.&lt;/p&gt;

&lt;p&gt;On the GitHub website, follower counts are rounded:&lt;br&gt;
&lt;strong&gt;2.7K followers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But the GitHub API gives you the exact number:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"followers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2743&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;No rounding, no guessing.&lt;/p&gt;

&lt;p&gt;Why I Built This&lt;/p&gt;

&lt;p&gt;GitHub shows your current followers, but it doesn't show your follower history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can't easily know:&lt;/strong&gt;&lt;br&gt;
Who followed you recently&lt;br&gt;
Who unfollowed you&lt;br&gt;
How your network changed over time&lt;/p&gt;

&lt;p&gt;So I built a small tool that works like a memory for your GitHub profile.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcroxhp00x6k040lvcwnc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcroxhp00x6k040lvcwnc.jpg" alt=" " width="799" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Followers Tracker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 Live Demo:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github-followers-tracker.netlify.app/" rel="noopener noreferrer"&gt;https://github-followers-tracker.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💻 Source Code:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/MiladJoodi/github-followers-tracker" rel="noopener noreferrer"&gt;https://github.com/MiladJoodi/github-followers-tracker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features:&lt;/strong&gt;&lt;br&gt;
✅ Search any GitHub username&lt;br&gt;
✅ View followers and following lists&lt;br&gt;
✅ Track new followers&lt;br&gt;
✅ Detect unfollowed users&lt;br&gt;
✅ Save snapshots and compare changes&lt;br&gt;
✅ No login required&lt;br&gt;
✅ How It Works&lt;/p&gt;

&lt;p&gt;GitHub provides profile data through a public API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s2"&gt;`https://api.github.com/users/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;username&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;profile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;followers&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="o"&gt;****&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The API returns useful information like:&lt;/strong&gt;&lt;br&gt;
{&lt;br&gt;
  "login": "MiladJoodi",&lt;br&gt;
  "followers": 2743,&lt;br&gt;
  "following": 1752,&lt;br&gt;
  "public_repos": 136&lt;br&gt;
}&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Built with:&lt;/strong&gt;&lt;br&gt;
➡️ Next.js 15 App Router&lt;br&gt;
➡️ React 19&lt;br&gt;
➡️ TypeScript&lt;br&gt;
➡️ Tailwind CSS&lt;br&gt;
➡️ Radix UI&lt;br&gt;
➡️ Recharts&lt;br&gt;
➡️ Zod&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Learned&lt;/strong&gt;&lt;br&gt;
Sometimes a simple API can become the foundation of a useful developer tool.&lt;/p&gt;

&lt;p&gt;GitHub gives you the data, but with a little creativity you can build something that solves a real problem.&lt;/p&gt;

&lt;p&gt;If you are interested in GitHub APIs or frontend projects, feel free to check it out, fork it, or share your feedback 🚀&lt;/p&gt;

</description>
      <category>github</category>
      <category>githubactions</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>I Switched from Postman to Bruno 🚀</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Wed, 15 Jul 2026 18:13:40 +0000</pubDate>
      <link>https://dev.to/joodi/i-switched-from-postman-to-bruno-58io</link>
      <guid>https://dev.to/joodi/i-switched-from-postman-to-bruno-58io</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flez0gz8q4mcqi5fnj66s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flez0gz8q4mcqi5fnj66s.png" alt=" " width="800" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I recently moved from &lt;strong&gt;Postman&lt;/strong&gt; to &lt;strong&gt;Bruno&lt;/strong&gt;, and I'm really liking it so far.&lt;/p&gt;

&lt;p&gt;It feels much lighter, faster, and more focused on what I actually need when testing APIs. Bruno is also &lt;strong&gt;Git-native&lt;/strong&gt;, stores collections as plain text files, and works completely offline without requiring a cloud account.&lt;/p&gt;

&lt;p&gt;The best part? Migrating was easy.&lt;/p&gt;

&lt;p&gt;I simply exported my existing Postman collections and imported them into Bruno. All of my saved requests were ready to use within minutes.&lt;/p&gt;

&lt;p&gt;If you've been thinking about trying a different API client, I'd definitely recommend giving Bruno a look.&lt;/p&gt;

&lt;p&gt;You can download it here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.usebruno.com/" rel="noopener noreferrer"&gt;Bruno Official Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you tried Bruno yet, or are you still using Postman?&lt;/p&gt;

</description>
      <category>backend</category>
      <category>api</category>
      <category>frontend</category>
      <category>postman</category>
    </item>
    <item>
      <title>7 Next.js App Router Mistakes I See Most Often</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Fri, 10 Jul 2026 22:12:30 +0000</pubDate>
      <link>https://dev.to/joodi/7-nextjs-app-router-mistakes-i-see-most-often-ai8</link>
      <guid>https://dev.to/joodi/7-nextjs-app-router-mistakes-i-see-most-often-ai8</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F63i98yoyploxusv0xqid.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F63i98yoyploxusv0xqid.png" alt=" " width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The App Router is amazing, but it also changes the way we think about&lt;br&gt;
React. Most issues I see aren't framework bugs. They're old habits&lt;br&gt;
carried into a server-first world.&lt;/p&gt;

&lt;p&gt;Here are seven mistakes worth avoiding.&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Fetching Data with &lt;code&gt;useEffect&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;If you're writing this by default:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/posts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ask yourself: &lt;strong&gt;Can this run on the server instead?&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;posts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;getPosts&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fetching on the server usually means less JavaScript, a faster first&lt;br&gt;
load, and simpler components.&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Using &lt;code&gt;"use client"&lt;/code&gt; Too Early
&lt;/h2&gt;

&lt;p&gt;Don't turn an entire page into a Client Component because one button&lt;br&gt;
needs interactivity.&lt;/p&gt;

&lt;p&gt;Instead, keep the page on the server and move only the interactive part&lt;br&gt;
into a Client Component.&lt;/p&gt;

&lt;p&gt;The smaller the client boundary, the smaller your bundle.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Forgetting the Difference Between Static and Dynamic Pages
&lt;/h2&gt;

&lt;p&gt;Calling APIs like &lt;code&gt;cookies()&lt;/code&gt; or &lt;code&gt;headers()&lt;/code&gt; makes a route dynamic.&lt;/p&gt;

&lt;p&gt;Before using them, decide whether your page should be static or&lt;br&gt;
personalized. That decision directly affects performance and caching.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Passing Entire Objects to Client Components
&lt;/h2&gt;

&lt;p&gt;Instead of this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;UserCard&lt;/span&gt; &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prefer this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;UserCard&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;avatar&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;avatar&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only send the data the component actually needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Putting Everything Inside Server Actions
&lt;/h2&gt;

&lt;p&gt;A Server Action should trigger work, not contain your entire application&lt;br&gt;
logic.&lt;/p&gt;

&lt;p&gt;A good pattern is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Validate input&lt;/li&gt;
&lt;li&gt;  Call a service&lt;/li&gt;
&lt;li&gt;  Return the result&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your business logic stays reusable and much easier to test.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Importing Heavy Libraries Everywhere
&lt;/h2&gt;

&lt;p&gt;Chart libraries, editors, and large utilities can quickly increase your&lt;br&gt;
client bundle.&lt;/p&gt;

&lt;p&gt;Keep them inside the smallest possible Client Component or load them&lt;br&gt;
only when they're needed.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Wrapping the Whole App with Context Providers
&lt;/h2&gt;

&lt;p&gt;Not every provider belongs in &lt;code&gt;layout.tsx&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If only one feature needs a provider, keep it close to that feature&lt;br&gt;
instead of wrapping the entire application.&lt;/p&gt;

&lt;p&gt;This reduces unnecessary client rendering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The biggest mindset shift in the App Router is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Server first. Client only when necessary.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Following that principle alone helps you build applications that are&lt;br&gt;
faster, cleaner, and easier to maintain.&lt;/p&gt;

&lt;p&gt;Based on the original article. Expanded and improved with additional details and explanations.&lt;br&gt;
Source:&lt;br&gt;
&lt;a href="https://medium.com/@amirjld/the-5-most-common-next-js-app-router-mistakes-and-how-to-fix-them-632565a5fb96" rel="noopener noreferrer"&gt;https://medium.com/@amirjld/the-5-most-common-next-js-app-router-mistakes-and-how-to-fix-them-632565a5fb96&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>SpaceX Acquires AI Coding Tool Cursor for $60 Billion</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Tue, 16 Jun 2026 21:07:40 +0000</pubDate>
      <link>https://dev.to/joodi/spacex-acquires-ai-coding-tool-cursor-for-60-billion-30c7</link>
      <guid>https://dev.to/joodi/spacex-acquires-ai-coding-tool-cursor-for-60-billion-30c7</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foy1n83yp803ee4oiw3ag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foy1n83yp803ee4oiw3ag.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SpaceX has officially acquired 𝗖𝘂𝗿𝘀𝗼𝗿 — the popular AI-powered coding assistant from Anysphere — in a $𝟲𝟬 𝗯𝗶𝗹𝗹𝗶𝗼𝗻 all-stock deal.&lt;br&gt;
This marks one of the largest acquisitions in the AI industry and brings Cursor under the SpaceX umbrella as an independent subsidiary.&lt;br&gt;
Why this matters for developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cursor will gain access to enormous computing power from SpaceX’s infrastructure.&lt;/li&gt;
&lt;li&gt;Expect faster performance, smarter features, and bigger improvements ahead.&lt;/li&gt;
&lt;li&gt;It highlights how important AI coding tools have become in the race to build better software.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ve been using Cursor regularly, and it has genuinely changed my workflow. This acquisition could take it to a whole new level.&lt;br&gt;
What’s your take?&lt;/p&gt;

&lt;p&gt;Are you using Cursor or other AI coding tools like GitHub Copilot? Do you think this is good news for the developer community?&lt;br&gt;
I’d love to hear your thoughts 👇&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://www.reuters.com/legal/transactional/spacex-buy-anysphere-60-billion-2026-06-16/" rel="noopener noreferrer"&gt;https://www.reuters.com/legal/transactional/spacex-buy-anysphere-60-billion-2026-06-16/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  AI #Cursor #SpaceX #DeveloperTools #SoftwareEngineering #ArtificialIntelligence
&lt;/h1&gt;

</description>
      <category>cursor</category>
      <category>ai</category>
      <category>frontend</category>
      <category>development</category>
    </item>
    <item>
      <title>Anthropic Removes Access to Fable 5 and Mythos 5 Following US Government Order</title>
      <dc:creator>Joodi</dc:creator>
      <pubDate>Sat, 13 Jun 2026 11:43:08 +0000</pubDate>
      <link>https://dev.to/joodi/anthropic-removes-access-to-fable-5-and-mythos-5-following-us-government-order-fmp</link>
      <guid>https://dev.to/joodi/anthropic-removes-access-to-fable-5-and-mythos-5-following-us-government-order-fmp</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4fhnd5dc391ggas9z8wl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4fhnd5dc391ggas9z8wl.jpg" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Anthropic&lt;/strong&gt; just announced they had to disable &lt;strong&gt;Fable 5&lt;/strong&gt; and &lt;strong&gt;Mythos 5&lt;/strong&gt; for all users because of a US government export control order.&lt;br&gt;
The government’s concern? A narrow jailbreak that lets the model find bugs in code. Anthropic says:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It’s not a universal jailbreak&lt;/li&gt;
&lt;li&gt;Other top models can do the same&lt;/li&gt;
&lt;li&gt;Their safeguards are actually stronger than competitors&lt;/li&gt;
&lt;li&gt;They use monitoring and data retention to catch problems quickly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;My take:&lt;/strong&gt;&lt;br&gt;
This feels more like political theater than a solid technical decision. If every small jailbreak causes a full shutdown, real progress in frontier AI will stop.&lt;br&gt;
Important moment for developers — regulations are moving fast and can suddenly limit access to the best models.&lt;br&gt;
Full statement from Anthropic linked in comments.&lt;br&gt;
What’s your view, devs?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link to Anthropic’s full statement below:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.anthropic.com/news/fable-mythos-access" rel="noopener noreferrer"&gt;https://www.anthropic.com/news/fable-mythos-access&lt;/a&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>programming</category>
      <category>development</category>
    </item>
  </channel>
</rss>
