<?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: Elves Vieira</title>
    <description>The latest articles on DEV Community by Elves Vieira (@elves-silva-vieira).</description>
    <link>https://dev.to/elves-silva-vieira</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1266049%2Ff1cb03e0-3a07-41ac-ab29-c3549c1b856a.jpg</url>
      <title>DEV Community: Elves Vieira</title>
      <link>https://dev.to/elves-silva-vieira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/elves-silva-vieira"/>
    <language>en</language>
    <item>
      <title>Vercel is Investing in Mobile with React Native</title>
      <dc:creator>Elves Vieira</dc:creator>
      <pubDate>Tue, 11 Mar 2025 17:41:17 +0000</pubDate>
      <link>https://dev.to/elves-silva-vieira/vercel-is-investing-in-mobile-with-react-native-h9i</link>
      <guid>https://dev.to/elves-silva-vieira/vercel-is-investing-in-mobile-with-react-native-h9i</guid>
      <description>&lt;p&gt;The company behind Next.js recently made a strategic move signaling its increased commitment to the React Native ecosystem by welcoming Fernando Rojo as Head of Mobile. Known widely in the React Native community, Fernando has been pivotal in driving innovations that bridge mobile and web experiences.&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.amazonaws.com%2Fuploads%2Farticles%2F7hxqxqz8d0nwjkg5lbwb.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%2F7hxqxqz8d0nwjkg5lbwb.png" alt="Image description" width="644" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fernando is best known for open-source projects like Dripsy, which provides responsive UI components that seamlessly adapt between mobile and web, Expo Router, a game-changer that introduced file-based routing inspired by Next.js to React Native apps, Solito, enabling unified web and mobile navigation and code sharing, and Moti, which greatly simplified creating complex, fluid animations in React Native. Beyond these, Fernando has actively contributed to Expo’s tooling improvements and frequently engages with the community by sharing insights and leading discussions on the future of mobile development.&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.amazonaws.com%2Fuploads%2Farticles%2Fkolk0q1t0jcl64hvdlxl.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%2Fkolk0q1t0jcl64hvdlxl.png" alt="Image description" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This appointment highlights Vercel's vision of enhancing mobile experiences, suggesting deeper integrations between Next.js, React Native, and Expo.&lt;/p&gt;

&lt;p&gt;This is exciting news for anyone working in the React and React Native ecosystems, signaling a promising future ahead.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>reactnative</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Types Proposal for JavaScript May Take Longer Than You Think</title>
      <dc:creator>Elves Vieira</dc:creator>
      <pubDate>Sun, 16 Feb 2025 13:08:39 +0000</pubDate>
      <link>https://dev.to/elves-silva-vieira/types-proposal-for-javascript-may-take-longer-than-you-think-14l1</link>
      <guid>https://dev.to/elves-silva-vieira/types-proposal-for-javascript-may-take-longer-than-you-think-14l1</guid>
      <description>&lt;p&gt;The "Types as Comments" proposal for JavaScript, which aims to allow type annotations without requiring a build step, has been under discussion in TC39 for several years. While many developers are eager to see native type support in JavaScript, the proposal faces significant challenges that may delay its progress for a long time—or even prevent its adoption altogether.&lt;/p&gt;

&lt;h2&gt;
  
  
  The  Proposal
&lt;/h2&gt;

&lt;p&gt;The goal of "Types as Comments" is to give developers the ability to write type annotations directly in JavaScript while ensuring that they are completely ignored by JavaScript engines at runtime. This means that they do not introduce new runtime semantics and remain purely for tooling purposes. &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.amazonaws.com%2Fuploads%2Farticles%2Fo7633r4fpxil1aix12at.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%2Fo7633r4fpxil1aix12at.png" alt="Image description" width="800" height="417"&gt;&lt;/a&gt;&lt;br&gt;
The proposal aims to provide an ergonomic way to declare types without requiring transpilation, making type annotations more accessible without adding extra complexity to the language itself. If accepted, this would mean developers could write code like this and run it directly in a JavaScript engine:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;function add(a: number, b: number): number {&lt;br&gt;
    return a + b;&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
The types would act as comments and be ignored by the JavaScript runtime, but they would still be available for type checkers like TypeScript and Flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discussions
&lt;/h2&gt;

&lt;h4&gt;
  
  
  March 29, 2022 (Initial Presentation)
&lt;/h4&gt;

&lt;p&gt;The proposal was first introduced by Daniel Rosenwasser from the TypeScript team and quickly gained strong support from the TypeScript community. However, concerns emerged regarding its scope and potential impact on JavaScript. One of the main objections was that the syntax was heavily influenced by TypeScript, raising questions about whether it would be truly neutral. Additionally, the proposal introduced a significant number of new grammar rules, which some committee members feared could fragment the language. As an alternative, suggestions were made to explore other ways to support TypeScript in JavaScript environments, such as enabling TypeScript parsing directly in developer tools instead of modifying the language itself.&lt;/p&gt;

&lt;h4&gt;
  
  
  March 31, 2022
&lt;/h4&gt;

&lt;p&gt;The proposal advanced to Stage 1, but only after its scope was clarified. The committee agreed to explore a simpler syntax while ensuring that it remains neutral to existing type systems like TypeScript and Flow. Additionally, there was an ongoing debate about whether this could serve as a long-term step toward unifying JavaScript and TypeScript, or if it risked fragmenting the language even further.&lt;/p&gt;

&lt;h4&gt;
  
  
  March 22, 2023
&lt;/h4&gt;

&lt;p&gt;Further discussions revealed significant ambiguities in the proposed syntax, making parsing more complex than initially expected. One example that caused issues was:&lt;br&gt;
&lt;code&gt;async as (x: y) =&amp;gt; z;&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
In this case, it was unclear whether as was being used as a function name or as a type assertion, highlighting the difficulty in distinguishing between type annotations and regular JavaScript expressions.&lt;br&gt;
To address these concerns, some members suggested introducing an explicit opt-in mechanism, such as:&lt;br&gt;
&lt;code&gt;"use types";&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
This directive would indicate that a file contains type annotations, helping to prevent conflicts with existing JavaScript syntax. However, this idea sparked further debate on whether such an opt-in approach would be necessary or if a more seamless integration could be achieved.&lt;/p&gt;

&lt;h4&gt;
  
  
  September 27, 2023
&lt;/h4&gt;

&lt;p&gt;During this meeting, discussions shifted towards the broader implications of integrating type annotations directly into JavaScript. Some members questioned whether this proposal would truly simplify development or if it would introduce additional complexity. Concerns were raised about potential misunderstandings from developers who might assume the annotations would enforce runtime type checking, similar to statically typed languages. Additionally, the debate continued on whether JavaScript engines should allow some form of optional runtime type reflection in the future, though this was largely dismissed as being out of scope. There was also renewed discussion on whether an opt-in directive such as "use types"; could mitigate syntax ambiguities, but consensus remained elusive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Status
&lt;/h2&gt;

&lt;p&gt;The proposal remains in Stage 1 with no clear path forward. Grammar ambiguities persist, making it difficult to reach consensus on how type annotations should be structured. A major point of contention is whether JavaScript should adopt TypeScript’s syntax or develop a completely new annotation format that is more neutral. Additionally, discussions continue around the possibility of enforcing an explicit opt-in mechanism, such as a "use types" directive, to prevent unintended conflicts with existing JavaScript syntax. Despite ongoing debates, no concrete resolution has been reached, and opposition from some committee members remains strong.&lt;/p&gt;

&lt;h2&gt;
  
  
  So...
&lt;/h2&gt;

&lt;p&gt;The proposal faces several challenges that could delay its adoption for a decade. These include &lt;strong&gt;syntax conflicts&lt;/strong&gt;, as type annotations closely resemble regular JavaScript code, making them difficult to parse unambiguously. There are also &lt;strong&gt;standardization challenges&lt;/strong&gt;, as TC39 must balance the needs of TypeScript, Flow, and other type-checking tools while ensuring backward compatibility to avoid breaking existing codebases. &lt;strong&gt;Performance considerations&lt;/strong&gt; are another factor—while type annotations would be ignored at runtime, parsing overhead must remain minimal. Finally, &lt;strong&gt;opposition from some committee members&lt;/strong&gt; remains strong, with some TC39 delegates arguing that the current approach is fundamentally flawed and could create confusion.&lt;/p&gt;

&lt;p&gt;If you're expecting this to become part of JavaScript soon, you may need to be patient. Given the current state of discussions, it may take several more years before it becomes a reality.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>React Core Team Moves to Officially Deprecate Create React App</title>
      <dc:creator>Elves Vieira</dc:creator>
      <pubDate>Thu, 30 Jan 2025 10:26:02 +0000</pubDate>
      <link>https://dev.to/elves-silva-vieira/react-core-team-moves-to-officially-deprecate-create-react-app-12n8</link>
      <guid>https://dev.to/elves-silva-vieira/react-core-team-moves-to-officially-deprecate-create-react-app-12n8</guid>
      <description>&lt;p&gt;The React Core Team is taking steps to officially deprecate Create React App (CRA), a tool that has been central to starting React projects for years. While CRA was once the go-to solution for bootstrapping React applications, it has been unmaintained for over two years and is now struggling to keep up with the evolving ecosystem.&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.amazonaws.com%2Fuploads%2Farticles%2F7syz5lqjc7b7djawf9f7.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%2F7syz5lqjc7b7djawf9f7.jpg" alt="Image description" width="800" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The team has acknowledged ongoing issues with CRA, particularly its incompatibility with React 19. The primary problem lies in outdated dependencies, such as @testing-library/react, which cause peer dependency mismatches during installation. These errors have made CRA difficult to use, especially for new developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are the Alternatives?
&lt;/h2&gt;

&lt;p&gt;As CRA’s role diminishes, developers are encouraged to adopt modern tools like Vite. Vite has become the top choice for creating new React projects due to its speed, simplicity, and compatibility with the latest React features. &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.amazonaws.com%2Fuploads%2Farticles%2Fxwydy97v0honsowok7ws.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%2Fxwydy97v0honsowok7ws.png" alt="Image description" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike CRA, Vite offers instant hot module replacement (HMR) and minimal configuration, making it ideal for both beginners and experienced developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next?
&lt;/h2&gt;

&lt;p&gt;The React Core Team plans to release the updates to CRA soon, which will include both the compatibility fixes for React 19 and the deprecation notices. They also aim to address the high search engine ranking of CRA’s legacy documentation, redirecting users to modern tools and best practices.&lt;/p&gt;

&lt;p&gt;Stay tuned for updates as CRA’s deprecation becomes official: &lt;a href="https://github.com/facebook/create-react-app/issues/17004?ck_subscriber_id=2574366116&amp;amp;utm_source=convertkit&amp;amp;utm_medium=email&amp;amp;utm_campaign=%E2%9A%9B%EF%B8%8F%20This%20Week%20In%20React%20#top" rel="noopener noreferrer"&gt;ISSUE&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>What You Should Know Before Using Route Handlers in Next.js</title>
      <dc:creator>Elves Vieira</dc:creator>
      <pubDate>Fri, 26 Jan 2024 15:05:29 +0000</pubDate>
      <link>https://dev.to/elves-silva-vieira/what-you-should-know-before-using-route-handlers-in-nextjs-4gh</link>
      <guid>https://dev.to/elves-silva-vieira/what-you-should-know-before-using-route-handlers-in-nextjs-4gh</guid>
      <description>&lt;p&gt;In the evolving landscape of Next.js development, Route Handlers play a pivotal role. They are not merely a substitute for API routes; they offer a nuanced approach to handling HTTP requests within the Next.js framework. This detailed guide aims to demystify Route Handlers, highlighting their differences from API routes and best practices for their effective use.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Understanding Route Handlers vs. API Routes
&lt;/h2&gt;

&lt;p&gt;Understanding the distinction between Route Handlers and API routes is fundamental to their proper utilization in Next.js.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Similarities and Differences&lt;/strong&gt;: At first glance, Route Handlers might seem akin to API routes, as both handle HTTP requests. However, while API routes are designed for standalone server-side endpoints, Route Handlers are deeply integrated into the Next.js routing system, offering a more fluid interaction with pages and components.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Appropriate Use&lt;/strong&gt;: The key to using Route Handlers effectively lies in recognizing their purpose. They excel in scenarios where HTTP methods need to be handled directly within the context of a page or a component, such as intercepting webhooks or custom server-side logic.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. When to Use Route Handlers
&lt;/h2&gt;

&lt;p&gt;Identifying the appropriate scenarios for Route Handlers can significantly optimize your Next.js application.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ideal Scenarios&lt;/strong&gt;: Route Handlers are particularly useful for handling webhooks, custom API integrations, and form submissions directly within the application's flow. For example, a Route Handler can efficiently manage a POST request from a form submission, process the data, and provide an immediate response without the need for a separate API endpoint.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Common Misconceptions&lt;/strong&gt;: A common mistake is using Route Handlers for internal data fetching operations. In many cases, these operations can be more efficiently handled within server components or through direct API calls, thereby simplifying the application architecture and improving performance.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Accessing Data Directly in Server Components
&lt;/h2&gt;

&lt;p&gt;Direct data manipulation within server components is a powerful feature of Next.js, often overlooked in favor of Route Handlers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Benefits&lt;/strong&gt;: Accessing and manipulating data directly in server components leads to cleaner and more maintainable code. It eliminates unnecessary network requests and reduces server response times.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Practical Examples&lt;/strong&gt;: Consider a scenario where you need to fetch user data from a database. Instead of creating a Route Handler to perform this operation, you can directly call a database query function within your server component. This approach streamlines the data flow and reduces the complexity of your application.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Performance and Code Simplification
&lt;/h2&gt;

&lt;p&gt;Optimizing performance and simplifying code are key benefits of judicious use of Route Handlers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Optimization&lt;/strong&gt;: By reducing the reliance on Route Handlers for operations that can be directly handled within server components, you can significantly enhance the performance and scalability of your application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Best Practices&lt;/strong&gt;: Encourage a minimalist approach to using Route Handlers. Prioritize direct data manipulation in server components and resort to Route Handlers only when direct interaction with HTTP methods is necessary.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Route Handlers in Next.js are a potent tool when used correctly. Understanding their role, capabilities, and limitations is essential for any developer looking to leverage the full power of Next.js.&lt;/p&gt;

&lt;p&gt;Feel free to contact me: &lt;a href="https://www.linkedin.com/in/elves-silva-vieira/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/elves-silva-vieira/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>nextjs</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
