<?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: Jatniel Guzmán</title>
    <description>The latest articles on DEV Community by Jatniel Guzmán (@jatniel).</description>
    <link>https://dev.to/jatniel</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%2F24778%2Ff76aef47-767a-4aa3-a7b2-37a9e02510d5.png</url>
      <title>DEV Community: Jatniel Guzmán</title>
      <link>https://dev.to/jatniel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jatniel"/>
    <language>en</language>
    <item>
      <title>TypeScript 7.0 Is Here: The Compiler Is Much Faster</title>
      <dc:creator>Jatniel Guzmán</dc:creator>
      <pubDate>Sun, 12 Jul 2026 06:00:44 +0000</pubDate>
      <link>https://dev.to/jatniel/typescript-70-is-here-the-compiler-is-much-faster-30n</link>
      <guid>https://dev.to/jatniel/typescript-70-is-here-the-compiler-is-much-faster-30n</guid>
      <description>&lt;p&gt;TypeScript 7.0 is now officially available as a stable release, and this is one worth paying attention to.&lt;/p&gt;

&lt;p&gt;Not because it introduces a flashy new syntax feature or another configuration option, but because it improves something developers feel every day: waiting.&lt;/p&gt;

&lt;p&gt;The TypeScript compiler has been rewritten in Go. The goal is clear: take advantage of native code, multithreading, and better parallelization to make builds, type checking, and the editor experience much faster.&lt;/p&gt;

&lt;p&gt;Microsoft says TypeScript 7 is usually between 8x and 12x faster on large projects. In some cases, with more parallelization, the results go even higher.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers Are Pretty Clear
&lt;/h2&gt;

&lt;p&gt;Microsoft published benchmarks on several well-known open-source projects using TypeScript 7’s default configuration:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;TypeScript 6&lt;/th&gt;
&lt;th&gt;TypeScript 7&lt;/th&gt;
&lt;th&gt;Speedup&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;vscode&lt;/td&gt;
&lt;td&gt;125.7s&lt;/td&gt;
&lt;td&gt;10.6s&lt;/td&gt;
&lt;td&gt;11.9x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sentry&lt;/td&gt;
&lt;td&gt;139.8s&lt;/td&gt;
&lt;td&gt;15.7s&lt;/td&gt;
&lt;td&gt;8.9x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bluesky&lt;/td&gt;
&lt;td&gt;24.3s&lt;/td&gt;
&lt;td&gt;2.8s&lt;/td&gt;
&lt;td&gt;8.7x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;playwright&lt;/td&gt;
&lt;td&gt;12.8s&lt;/td&gt;
&lt;td&gt;1.47s&lt;/td&gt;
&lt;td&gt;8.7x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tldraw&lt;/td&gt;
&lt;td&gt;11.2s&lt;/td&gt;
&lt;td&gt;1.46s&lt;/td&gt;
&lt;td&gt;7.7x&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fw2wpxdqz526sexbpksal.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%2Fw2wpxdqz526sexbpksal.png" alt=" " width="799" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The VS Code result is especially impressive: a build that took more than two minutes now takes just over ten seconds.&lt;/p&gt;

&lt;p&gt;And when increasing the number of workers with &lt;code&gt;--checkers 8&lt;/code&gt;, VS Code goes down to 7.51 seconds, which is 16.7x faster than TypeScript 6.&lt;/p&gt;

&lt;p&gt;Another interesting point is that this speedup does not seem to come with higher memory usage. In the projects Microsoft measured, memory usage actually went down, between 6% and 26% depending on the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Biggest Difference May Be in the Editor
&lt;/h2&gt;

&lt;p&gt;For me, the most important part is not just faster builds.&lt;/p&gt;

&lt;p&gt;The real improvement is the feedback loop while coding.&lt;/p&gt;

&lt;p&gt;TypeScript 7 also comes with a new language server based on LSP. In practice, the things we use all day should feel faster: autocomplete, real-time errors, type hovers, code navigation, find references, and more.&lt;/p&gt;

&lt;p&gt;Microsoft gives a good example: in the VS Code repository, opening a file with an error used to take about 17.5 seconds before showing the first diagnostic. With TypeScript 7, it takes less than 1.3 seconds.&lt;/p&gt;

&lt;p&gt;On a small project, that is nice.&lt;/p&gt;

&lt;p&gt;On a large codebase or a monorepo, that can really change the way you work.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Teams Are Seeing on Real Projects
&lt;/h2&gt;

&lt;p&gt;TypeScript 7 is not only coming with internal benchmarks. Microsoft says this version has been tested for more than a year on large codebases, both inside and outside Microsoft.&lt;/p&gt;

&lt;p&gt;Some of the companies mentioned include Slack, Canva, Figma, Vercel, Notion, Sentry, and Bloomberg, as well as Microsoft teams working on Teams, Office, PowerBI, and Xbox.&lt;/p&gt;

&lt;p&gt;A few numbers stand out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slack reportedly reduced type checking in CI from 7.5 minutes to 1.25 minutes.&lt;/li&gt;
&lt;li&gt;Canva went from 58 seconds to 4.8 seconds before seeing the first error in the editor.&lt;/li&gt;
&lt;li&gt;One Microsoft team reported saving around 400 hours of CI time per month.&lt;/li&gt;
&lt;li&gt;The new language server reduced failing commands by more than 80% and crashes by more than 60% compared to TypeScript 6.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These numbers matter most when you work on large projects. When type checking gets too slow, teams often push it to CI or run it less often. If TypeScript 7 makes it practical again during local development, that is a real productivity win.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;To install TypeScript 7:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bash id="g4p2wc"&lt;br&gt;
npm install -D typescript&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bash id="fkg78d"&lt;br&gt;
npx tsc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;By default, TypeScript 7 uses 4 workers for type checking. You can adjust this with &lt;code&gt;--checkers&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bash id="kz618u"&lt;br&gt;
npx tsc --checkers 8&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Of course, this should be tested depending on your machine and your project. More workers can make builds faster, but they can also increase memory usage. On a powerful development machine, it is worth trying. On a limited CI runner, it is better to measure before changing anything globally.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Main Thing to Watch
&lt;/h2&gt;

&lt;p&gt;Not every part of the ecosystem can move to TypeScript 7 immediately.&lt;/p&gt;

&lt;p&gt;TypeScript 7.0 does not yet expose a stable programmatic API. That API is expected in TypeScript 7.1.&lt;/p&gt;

&lt;p&gt;This affects tools and frameworks that depend directly on TypeScript, such as Vue, Astro, Svelte, MDX, some Angular workflows, Volar, and typescript-eslint.&lt;/p&gt;

&lt;p&gt;For those cases, Microsoft recommends running TypeScript 6 and TypeScript 7 side by side for now.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;json id="nmbg7p"&lt;br&gt;
{&lt;br&gt;
  "devDependencies": {&lt;br&gt;
    "@typescript/native": "npm:typescript@^7.0.2",&lt;br&gt;
    "typescript": "npm:@typescript/typescript6@^6.0.2"&lt;br&gt;
  }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The idea is simple: keep TypeScript 6 for tools that still need its API, and use TypeScript 7 where possible to benefit from the performance improvements.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Take as a Developer
&lt;/h2&gt;

&lt;p&gt;I find this release really interesting because it does not try to get attention with visible new features. Instead, it solves a very real problem: waiting.&lt;/p&gt;

&lt;p&gt;Waiting for type checking to finish, waiting for the editor to show errors, waiting for CI to confirm something we would rather know locally… these small delays add up quickly on large projects.&lt;/p&gt;

&lt;p&gt;TypeScript 7 does not change the way we write TypeScript overnight. But it can change how fast we work with TypeScript.&lt;/p&gt;

&lt;p&gt;And for a tool that is so widely used in modern development, that is a big deal.&lt;/p&gt;

&lt;p&gt;Congratulations to the TypeScript team for this work. Rewriting such a central compiler in Go is impressive, and I would not be surprised if it inspires other languages and development tools.&lt;/p&gt;

&lt;p&gt;Source: Microsoft’s official announcement, “&lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/" rel="noopener noreferrer"&gt;Announcing TypeScript 7.0&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Originally published on &lt;a href="https://jatniel.dev/en/bytes/typescript-70-is-here-the-compiler-is-much-faster" rel="noopener noreferrer"&gt;jatniel.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>development</category>
      <category>rust</category>
      <category>webdev</category>
    </item>
    <item>
      <title>TypeScript 7 RC: the compiler rewritten in Go, around 10x faster</title>
      <dc:creator>Jatniel Guzmán</dc:creator>
      <pubDate>Sun, 21 Jun 2026 11:39:50 +0000</pubDate>
      <link>https://dev.to/jatniel/typescript-7-rc-the-compiler-rewritten-in-go-around-10x-faster-1mfg</link>
      <guid>https://dev.to/jatniel/typescript-7-rc-the-compiler-rewritten-in-go-around-10x-faster-1mfg</guid>
      <description>&lt;p&gt;Microsoft just shipped the Release Candidate for TypeScript 7, with the stable release expected next month. And the big deal, for once, isn't a new syntax or yet another config flag. It's that the entire compiler has been rewritten in Go.&lt;/p&gt;

&lt;p&gt;Over the past year, the team ported the existing codebase (until now, TypeScript that compiled to JavaScript) to Go. It was done methodically from the current implementation, not rewritten from scratch, so the type-checking logic stays structurally identical to TypeScript 6. You don't change how you write TypeScript, you just get more speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it's so fast
&lt;/h2&gt;

&lt;p&gt;The speedup isn't magic, it comes from the language. Go compiles to native code and takes advantage of parallelism through shared memory. The result Microsoft reports: builds that are often around 10 times faster than TypeScript 6. That number comes from their own measurements and from companies like Figma, Bloomberg, Vercel, Notion, and Slack, which have been testing pre-release builds for over a year and report similar gains.&lt;/p&gt;

&lt;p&gt;And it doesn't stop at the &lt;code&gt;tsc&lt;/code&gt; command line. The Language Server Protocol (LSP), the thing that powers autocomplete, type hovers, and real-time errors in your editor, runs on the same foundation. So the editor responds much faster, and that's probably what you'll feel most day to day on a large project.&lt;/p&gt;

&lt;p&gt;The repo is open source (Apache 2.0, more than 25,000 stars on GitHub) and about 85% Go. For a project this size, and coming from Microsoft, betting on Go was not the obvious choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  TypeScript 6, the step you shouldn't skip
&lt;/h2&gt;

&lt;p&gt;TypeScript 7 inherits TypeScript 6's defaults, and anything deprecated in 6 now turns into a hard error. Since 6 is still recent, plenty of projects will need to adapt.&lt;/p&gt;

&lt;p&gt;That's exactly what 6 is for: it doesn't bring big new features, it sets the stage. It warns you about the options and syntax that go away in 7. The team's advice, and mine: move to 6 first, clear those warnings, and the jump to 7 happens without surprises.&lt;/p&gt;

&lt;p&gt;A few examples of what becomes a hard error in 7: &lt;code&gt;target: es5&lt;/code&gt;, &lt;code&gt;moduleResolution: node&lt;/code&gt;, &lt;code&gt;baseUrl&lt;/code&gt;, or &lt;code&gt;module: amd/umd/systemjs&lt;/code&gt;. On the defaults side, &lt;code&gt;strict&lt;/code&gt; is now &lt;code&gt;true&lt;/code&gt; and &lt;code&gt;module&lt;/code&gt; is &lt;code&gt;esnext&lt;/code&gt;. Two changes catch people off guard and are worth a look: &lt;code&gt;rootDir&lt;/code&gt; now defaults to &lt;code&gt;./&lt;/code&gt; (you'll often need to point it back to &lt;code&gt;./src&lt;/code&gt;), and &lt;code&gt;types&lt;/code&gt; defaults to &lt;code&gt;[]&lt;/code&gt;, so you have to list your &lt;code&gt;@types&lt;/code&gt; packages explicitly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running 6 and 7 side by side
&lt;/h2&gt;

&lt;p&gt;Not all of your tools will be compatible with 7 overnight. typescript-eslint, for example, imports the &lt;code&gt;typescript&lt;/code&gt; package directly, and the stable programmatic API won't land until TypeScript 7.1, a few months from now.&lt;/p&gt;

&lt;p&gt;Microsoft set this up so the two versions can live together without stepping on each other. A compatibility package, &lt;code&gt;@typescript/typescript6&lt;/code&gt;, ships a &lt;code&gt;tsc6&lt;/code&gt; binary and re-exports the 6 API. The trick is to use npm aliases in your &lt;code&gt;package.json&lt;/code&gt;:&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;"devDependencies"&lt;/span&gt;&lt;span class="p"&gt;:&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;span class="nl"&gt;"typescript"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npm:@typescript/typescript6@^6.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"typescript-7"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npm:typescript@rc"&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;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;The &lt;code&gt;typescript&lt;/code&gt; package your linter looks for actually points to 6, which is stable and what the tools expect, while &lt;code&gt;npx tsc&lt;/code&gt; uses 7 for the rest of the project. It's a textbook parallel change: 6 keeps things tidy on linting, and 7 makes everything else faster. Tooling compatibility should settle down around 7.1.&lt;/p&gt;

&lt;h2&gt;
  
  
  Parallelization, checkers, and watch mode
&lt;/h2&gt;

&lt;p&gt;TypeScript 7 parallelizes several steps: parsing, type-checking, and emit. Parsing and emit split easily across files. Type-checking is trickier because of dependencies between files, so the team spins up a fixed number of workers that share the work deterministically: same input files, same output results.&lt;/p&gt;

&lt;p&gt;By default you get 4 workers, adjustable with &lt;code&gt;--checkers&lt;/code&gt;. If you have more cores you can raise it, at the cost of more memory. On a tight CI runner, lower it instead.&lt;/p&gt;

&lt;p&gt;There's also &lt;code&gt;--builders&lt;/code&gt;, to build several projects in a monorepo at once. Watch out, the effect multiplies with &lt;code&gt;--checkers&lt;/code&gt;: with &lt;code&gt;--checkers 4 --builders 4&lt;/code&gt; you can have up to 16 type-checkers running. And &lt;code&gt;--singleThreaded&lt;/code&gt; forces a single thread, handy for debugging or for comparing 6 with 7.&lt;/p&gt;

&lt;p&gt;Watch mode was rebuilt on top of Parcel's file watcher, also ported to Go. No more expensive polling over big &lt;code&gt;node_modules&lt;/code&gt; folders, and file watching is much lighter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands to try it
&lt;/h2&gt;

&lt;p&gt;Install the RC:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; typescript@rc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx tsc &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;span class="c"&gt;# Version 7.0.1-rc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compile like always, just faster:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx tsc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tune the number of type-checking workers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx tsc &lt;span class="nt"&gt;--checkers&lt;/span&gt; 8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Force a single thread to compare with 6:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx tsc &lt;span class="nt"&gt;--singleThreaded&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install 6 and 7 at the same time with aliases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; typescript@npm:@typescript/typescript6
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; typescript-7@npm:typescript@rc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And to live on the nightlies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; @typescript/native-preview
npx tsgo &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The nightly binary is still called &lt;code&gt;tsgo&lt;/code&gt;. Once 7 ships stable, everything moves back to the &lt;code&gt;typescript&lt;/code&gt; package.&lt;/p&gt;

&lt;h2&gt;
  
  
  In short
&lt;/h2&gt;

&lt;p&gt;TypeScript 7 doesn't touch your code or the typing rules, it goes after speed, both in the build and in the editor. The sensible plan: move to TypeScript 6 now to clear the warnings, test the RC in parallel on a real project, and report bugs on the &lt;a href="https://github.com/microsoft/typescript-go" rel="noopener noreferrer"&gt;microsoft/typescript-go&lt;/a&gt; repo. Stable lands next month.&lt;/p&gt;

&lt;p&gt;Official announcement: &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/" rel="noopener noreferrer"&gt;Announcing TypeScript 7.0 RC&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://jatniel.dev/en/bytes/typescript-7-rc-the-compiler-rewritten-in-go-around-10x-faster?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=ts7-rc" rel="noopener noreferrer"&gt;jatniel.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>go</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Cursor Launches Origin, a GitHub Rival, Right Before SpaceX Buys the Company</title>
      <dc:creator>Jatniel Guzmán</dc:creator>
      <pubDate>Wed, 17 Jun 2026 15:19:16 +0000</pubDate>
      <link>https://dev.to/jatniel/cursor-launches-origin-a-github-rival-right-before-spacex-buys-the-company-1d9b</link>
      <guid>https://dev.to/jatniel/cursor-launches-origin-a-github-rival-right-before-spacex-buys-the-company-1d9b</guid>
      <description>&lt;p&gt;Cursor just announced Origin, a code storage and Git hosting platform. In one line: a direct competitor to GitHub. It ships this fall, and for now there's only a waitlist. So far, nothing wild in a market where everyone wants a piece. What makes it interesting isn't the what. It's the when.&lt;/p&gt;

&lt;h2&gt;
  
  
  From editor to platform
&lt;/h2&gt;

&lt;p&gt;Some context first. Cursor, made by Anysphere, started as a fork of VS Code with AI built in. In a few years it went from a toy to the editor a lot of us open every morning.&lt;/p&gt;

&lt;p&gt;In December 2025, Cursor bought Graphite, a startup focused on code review: stacked pull requests, merge queues, structured reviews. With Origin, the last piece falls into place, which is hosting. Cursor doesn't just want to be the place where you write code. It wants to be the place where it's stored, reviewed, and merged.&lt;/p&gt;

&lt;p&gt;They're blunt about the pitch. GitHub was built for humans: one developer, a few commits a day, a pull request, a coworker who reviews it. Origin starts from a different assumption. Soon, Cursor says, it won't be one person pushing code. It'll be dozens of agents at once, cloning, branching, merging, and fixing their own mistakes in parallel. Origin is built to handle that load, and it throws in AI-powered automatic merge conflict resolution on top.&lt;/p&gt;

&lt;p&gt;The numbers they showed on stage make the point: about 22 commits per second in a single repo, close to 300,000 clones and tens of thousands of pushes an hour. Numbers that make no sense at human scale, and all the sense in the world if you point an army of agents at the same repo.&lt;/p&gt;

&lt;p&gt;You could call the bet early. Most of us don't have fifty agents running around the same project. But the idea isn't crazy, and it explains why Cursor dropped so much money on Graphite six months ago.&lt;/p&gt;

&lt;h2&gt;
  
  
  The detail that changes everything
&lt;/h2&gt;

&lt;p&gt;Here's where it gets interesting. Just a few days before Origin, SpaceX signed a deal to buy Cursor for $60 billion, all in stock. Cursor becomes a wholly owned part of SpaceX once the deal closes, which is expected this fall. And it's worth remembering that SpaceX absorbed xAI, Musk's AI company, earlier this year.&lt;/p&gt;

&lt;p&gt;So by the time Origin ships, it'll belong to the same group as xAI. A group that already trains its own models: Cursor and xAI have confirmed they're working together on one that's coming soon, described as trained from scratch on more than a hundred thousand GPUs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The question all this raises
&lt;/h2&gt;

&lt;p&gt;Line up the pieces. You write your code in Cursor. You host it on Origin. And the whole thing belongs to a company that trains top-tier AI models.&lt;/p&gt;

&lt;p&gt;I'm not saying it's a trap, and I'm not assuming anyone has bad intentions. But the question is worth asking plainly: where does my code live, and who gets to use it? We already ask it about GitHub and Copilot, and the answers aren't always reassuring. The difference with Origin is that the whole chain ends up under one roof: the tool that writes, the place that stores, and the model that learns.&lt;/p&gt;

&lt;p&gt;When one company controls all three links, the line between "hosting your code" and "learning from your code" comes down to the terms of service. And terms of service get rewritten.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means for a freelancer
&lt;/h2&gt;

&lt;p&gt;On the practical side, I mostly work on client projects: Symfony, Laravel, PrestaShop, APIs. Not all the repos are mine, and several clients have strict rules about where the code can live. Switching platforms isn't a technical tweak you knock out on a Friday afternoon. It's a decision that touches confidentiality, compliance, and sometimes the contract itself.&lt;/p&gt;

&lt;p&gt;For now I'm staying on GitHub. Not out of loyalty: GitHub has its own problems, and its recent outages made that clear. But trading a dependency on Microsoft for one on SpaceX isn't a win. It's just another giant, with its own priorities.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd do in your shoes
&lt;/h2&gt;

&lt;p&gt;Origin is worth a look, especially if you're starting to run agents in production and GitHub is choking at scale. I'll probably join the waitlist, if only to see how it actually works. There's still a lot we don't know: pricing, importing and exporting repos, how it plays with GitHub and GitLab, what it offers companies. What's up right now is a landing page, not documentation.&lt;/p&gt;

&lt;p&gt;But before I move a single serious repo, I want to read those terms, know what happens to the data, and wait for the deal to actually close. You don't get control of your code back after the fact. You protect it before you click "migrate."&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on my blog. Read more of my writing on PHP, freelancing, and dev tooling at &lt;a href="https://jatniel.dev/en/bytes/cursor-launches-origin-a-github-rival?utm_source=devto&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;jatniel.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cursor</category>
      <category>github</category>
      <category>devtool</category>
    </item>
    <item>
      <title>Claude Fable 5 and Mythos 5 are here.</title>
      <dc:creator>Jatniel Guzmán</dc:creator>
      <pubDate>Tue, 09 Jun 2026 19:55:09 +0000</pubDate>
      <link>https://dev.to/jatniel/claude-fable-5-and-mythos-5-are-here-22fe</link>
      <guid>https://dev.to/jatniel/claude-fable-5-and-mythos-5-are-here-22fe</guid>
      <description>&lt;p&gt;Claude Fable 5 and Mythos 5 are here.&lt;/p&gt;

&lt;p&gt;Same model, two names. What sets them apart isn’t capability, but guardrails.&lt;/p&gt;

&lt;p&gt;Fable 5 is available to everyone. Mythos 5 remains restricted to Project Glasswing partners, with some safeguards removed in specific domains.&lt;/p&gt;

&lt;p&gt;The detail that matters for developers: this isn’t a model that burns through tokens. Quite the opposite.&lt;/p&gt;

&lt;p&gt;On a spreadsheet benchmark suite, it outperforms Opus 4.8 at every effort level, using fewer turns and completing tasks 25–30% faster.&lt;/p&gt;

&lt;p&gt;It’s included at no extra cost for Pro, Max, Team, and Enterprise users until June 22. After that, it switches to usage-based pricing.&lt;/p&gt;

&lt;p&gt;They’re giving you the most powerful model they’ve ever released… for two weeks. Enjoy it while it lasts—on June 23, the free ride is over.&lt;/p&gt;

&lt;p&gt;Definitely worth testing properly before forming an opinion. 🧐&lt;/p&gt;

&lt;p&gt;Original post : &lt;a href="https://www.anthropic.com/news/claude-fable-5-mythos-5" rel="noopener noreferrer"&gt;Claude Fable 5 and Claude Mythos 5&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Jatniel&lt;br&gt;
Senior freelance PHP developer. Symfony, Laravel, PrestaShop.&lt;br&gt;
Web applications, REST APIs, and e-commerce.&lt;br&gt;
&lt;a href="https://jatniel.dev" rel="noopener noreferrer"&gt;jatniel.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Six months of AI in 2026, and a whole lot of noise</title>
      <dc:creator>Jatniel Guzmán</dc:creator>
      <pubDate>Sun, 07 Jun 2026 20:51:35 +0000</pubDate>
      <link>https://dev.to/jatniel/six-months-of-ai-in-2026-and-a-whole-lot-of-noise-23lg</link>
      <guid>https://dev.to/jatniel/six-months-of-ai-in-2026-and-a-whole-lot-of-noise-23lg</guid>
      <description>&lt;p&gt;This week, two major players also hit the brakes and changed their tune.&lt;/p&gt;

&lt;p&gt;Six months of AI in 2026, and honestly, things went off in every direction. Almost every week, a new model promising to "change everything": GPT-5.4 and 5.5, Claude Opus 4.6 through 4.8, Gemini 3.5 Flash, Kimi, DeepSeek V4, MiniMax M3, Gemma 4.&lt;/p&gt;

&lt;p&gt;But under the marketing, the real shift is somewhere else: we moved from the chatbot that answers to the agent that actually does things. And it comes with a bill. GitHub Copilot just switched to usage-based pricing, and part of the community is freaking out over the prices.&lt;/p&gt;

&lt;p&gt;The part that stuck with me, though, is the turn this week. Anthropic is now calling for an industry-wide pause, and Sam Altman, who warned a year ago that AI would wipe out junior jobs, now admits he was "pretty wrong." &lt;br&gt;
The idea taking hold isn't "AI is going to take your job." It's more uncomfortable: AI is going to change which parts of your job actually have value.&lt;/p&gt;

&lt;p&gt;I broke down the full six months, the dates, the sources, and what it actually means for us as devs, in the full article.&lt;/p&gt;

&lt;p&gt;Read the whole thing here: &lt;a href="https://jatniel.dev/en/bytes/six-months-of-ai-in-2026-and-a-whole-lot-of-noise?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=six-months-ai-2026" rel="noopener noreferrer"&gt;https://jatniel.dev/en/bytes/six-months-of-ai-in-2026-and-a-whole-lot-of-noise&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it resonates, feel free to share it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>news</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Claude Opus 4.8: what actually changes when you code for real</title>
      <dc:creator>Jatniel Guzmán</dc:creator>
      <pubDate>Thu, 28 May 2026 21:33:13 +0000</pubDate>
      <link>https://dev.to/jatniel/claude-opus-48-what-actually-changes-when-you-code-for-real-2ap4</link>
      <guid>https://dev.to/jatniel/claude-opus-48-what-actually-changes-when-you-code-for-real-2ap4</guid>
      <description>&lt;p&gt;&lt;a href="https://jatniel.dev/en/bytes/claude-opus-48-what-actually-changes-when-you-code-for-real" rel="noopener noreferrer"&gt;Anthropic has just released Claude Opus 4.8.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The price stays the same, Claude Code gets a few new features, and the overall message is pretty clear: better coding reliability, stronger support for long-running tasks, and more useful agents for complex workflows.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I would not call it a revolution.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But as a developer, there are a few things here that are definitely worth looking at.&lt;/p&gt;

&lt;p&gt;Reliability is becoming the real topic&lt;/p&gt;

&lt;p&gt;The part that caught my attention the most is this: according to Anthropic, Opus 4.8 is about 4 times less likely to miss a bug in code it has just written.&lt;/p&gt;

&lt;p&gt;There is another point I find even more important: the model seems better at saying when it is unsure, instead of confidently telling you that everything is fine.&lt;/p&gt;

&lt;p&gt;When you work with AI-generated code on a regular basis, that matters.&lt;/p&gt;

&lt;p&gt;I would much rather have a model say “this needs review” than one that is wrong with perfect confidence.&lt;/p&gt;

&lt;p&gt;Effort control&lt;/p&gt;

&lt;p&gt;Another interesting addition is effort control.&lt;/p&gt;

&lt;p&gt;Next to the model selector, you can now choose how deeply you want Claude to work on a task. By default, &lt;a href="https://www.anthropic.com/news/claude-opus-4-8?utm_content=hero_cta&amp;amp;utm_source=it&amp;amp;utm_medium=email&amp;amp;utm_campaign=2026_Q2_PMM_MKTG_Claude_Code_Newsletter_May_2026&amp;amp;utm_term=claude_code&amp;amp;utm_campaignId=18319166" rel="noopener noreferrer"&gt;Opus 4.8&lt;/a&gt; runs in high mode, but you can push it to extra or max for more complex work.&lt;/p&gt;

&lt;p&gt;The idea is practical: not every task needs the same level of reasoning.&lt;/p&gt;

&lt;p&gt;For a small fix, you do not need to bring out the heavy machinery.&lt;/p&gt;

&lt;p&gt;For a delicate refactor, a technical migration, or an agent working for a long time across a codebase, asking for more depth can make sense.&lt;/p&gt;

&lt;p&gt;That said, it is important not to confuse things: this setting does not replace choosing the right model. It changes how Opus approaches a specific task.&lt;/p&gt;

&lt;p&gt;React more : &lt;a href="https://jatniel.dev/en/bytes/claude-opus-48-what-actually-changes-when-you-code-for-real" rel="noopener noreferrer"&gt;Claude Opus 4.8: what actually changes when you code for real&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Jatniel Guzmán</dc:creator>
      <pubDate>Mon, 22 Sep 2025 15:01:53 +0000</pubDate>
      <link>https://dev.to/jatniel/-5dp9</link>
      <guid>https://dev.to/jatniel/-5dp9</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/javiereguiluz/new-in-easyadmin-custom-admin-routes-1176" class="crayons-story__hidden-navigation-link"&gt;New in EasyAdmin: Custom Admin Routes&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/javiereguiluz" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F149151%2F680f65e7-3fa6-45ee-a2c9-769d1f2472dc.png" alt="javiereguiluz profile" class="crayons-avatar__image" width="400" height="400"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/javiereguiluz" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Javier Eguiluz
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Javier Eguiluz
                
              
              &lt;div id="story-author-preview-content-2858959" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/javiereguiluz" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F149151%2F680f65e7-3fa6-45ee-a2c9-769d1f2472dc.png" class="crayons-avatar__image" alt="" width="400" height="400"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Javier Eguiluz&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/javiereguiluz/new-in-easyadmin-custom-admin-routes-1176" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 22 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/javiereguiluz/new-in-easyadmin-custom-admin-routes-1176" id="article-link-2858959"&gt;
          New in EasyAdmin: Custom Admin Routes
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/easyadmin"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;easyadmin&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/symfony"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;symfony&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/php"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;php&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/javiereguiluz/new-in-easyadmin-custom-admin-routes-1176" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;18&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/javiereguiluz/new-in-easyadmin-custom-admin-routes-1176#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>easyadmin</category>
      <category>symfony</category>
      <category>php</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Jatniel Guzmán</dc:creator>
      <pubDate>Mon, 22 Sep 2025 14:54:33 +0000</pubDate>
      <link>https://dev.to/jatniel/-2emo</link>
      <guid>https://dev.to/jatniel/-2emo</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/arasosman/php-developer-salary-guide-2025-3d2e" class="crayons-story__hidden-navigation-link"&gt;PHP Developer Salary Guide 2025&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/arasosman" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F235373%2F4a6213e5-520e-4812-9d24-7f613c0c64b1.png" alt="arasosman profile" class="crayons-avatar__image" width="420" height="420"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/arasosman" class="crayons-story__secondary fw-medium m:hidden"&gt;
              arasosman
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                arasosman
                
              
              &lt;div id="story-author-preview-content-2776228" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/arasosman" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F235373%2F4a6213e5-520e-4812-9d24-7f613c0c64b1.png" class="crayons-avatar__image" alt="" width="420" height="420"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;arasosman&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/arasosman/php-developer-salary-guide-2025-3d2e" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 15 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/arasosman/php-developer-salary-guide-2025-3d2e" id="article-link-2776228"&gt;
          PHP Developer Salary Guide 2025
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/php"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;php&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/arasosman/php-developer-salary-guide-2025-3d2e" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;21&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/arasosman/php-developer-salary-guide-2025-3d2e#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              4&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            9 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>php</category>
    </item>
  </channel>
</rss>
