<?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: Gabs Ferreira</title>
    <description>The latest articles on DEV Community by Gabs Ferreira (@ogabsferreira).</description>
    <link>https://dev.to/ogabsferreira</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%2F1828746%2F36e432ea-57ce-4198-9f61-7d5e8a96ad5e.png</url>
      <title>DEV Community: Gabs Ferreira</title>
      <link>https://dev.to/ogabsferreira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ogabsferreira"/>
    <language>en</language>
    <item>
      <title>Meteor 3.1.1 is here!</title>
      <dc:creator>Gabs Ferreira</dc:creator>
      <pubDate>Tue, 04 Feb 2025 16:18:27 +0000</pubDate>
      <link>https://dev.to/meteor/meteor-311-is-here-1meo</link>
      <guid>https://dev.to/meteor/meteor-311-is-here-1meo</guid>
      <description>&lt;p&gt;Meteor 3.1.1 is here! This latest patch brings performance improvements, critical fixes, and updates based on community feedback. &lt;/p&gt;

&lt;p&gt;You can check out all that's new about his version in this video, where I had a chat with the core team:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/tZY6jZGU9Ok"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Or just keep reading :)&lt;/p&gt;

&lt;h2&gt;
  
  
  Performance improvements: faster real-time processing
&lt;/h2&gt;

&lt;p&gt;One of the highlights of Meteor 3.1.1 is a boost in real-time performance. Our team refactored the synchronous queue for parallel processing and optimized MongoDB observers to handle initial documents more efficiently.&lt;/p&gt;

&lt;p&gt;Previously, Meteor 3.1 had some performance regressions when dealing with reactive flows, limiting the number of connections it could handle. This patch resolves those issues and improves Meteor 3's scalability, outperforming previous Meteor 2 versions in terms of handling more simultaneous connections.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deprecation of Async Allow/Deny Rules
&lt;/h2&gt;

&lt;p&gt;Based on community feedback, async rules have been deprecated, and the API has been streamlined to focus on just insert, update, and remove operations. Additionally, test coverage has been expanded to address edge cases identified by developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Meteor.deprecate
&lt;/h2&gt;

&lt;p&gt;Meteor now includes a &lt;em&gt;Meteor.deprecate&lt;/em&gt; API, which was initially designed for internal use but is now accessible to library developers. This feature allows more precise tracking of deprecated functions and API calls, helping developers transition smoothly when changes occur. Although it's not yet fully documented, advanced users can explore it in the Meteor source code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Node.js Upgrade and Community Fixes
&lt;/h2&gt;

&lt;p&gt;This version also includes an upgrade to the latest Node.js version, along with multiple community-driven fixes. The team has addressed several GitHub issues, improved the Accounts package, and implemented security updates. It also introduces fixes for Windows users, ensuring a more stable development environment across platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meteor RPC: A New Approach to API Calls
&lt;/h2&gt;

&lt;p&gt;A significant addition to the Meteor ecosystem is the release of Meteor RPC, launched in December, a new package designed to streamline remote procedure calls (RPC) and enhance real-time capabilities. &lt;/p&gt;

&lt;p&gt;This package, powered by Zod for runtime validation, brings improved TypeScript support and a more modern approach to defining and calling APIs in Meteor. It's already powering &lt;a href="https://www.meteor.com/cloud" rel="noopener noreferrer"&gt;Galaxy&lt;/a&gt;, meaning if you're a Galaxy user, you're already benefiting from it!&lt;/p&gt;

&lt;p&gt;If you want to explore Meteor RPC, check out the &lt;a href="https://blog.meteor.com/introducing-the-grubba-rpc-package-80b1e1958dc3" rel="noopener noreferrer"&gt;official blog post&lt;/a&gt; or join the conversation &lt;a href="https://discord.com/invite/3w7EKdpghq" rel="noopener noreferrer"&gt;on Discord&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>meteor</category>
      <category>mongodb</category>
    </item>
    <item>
      <title>The Renaissance of Meteor.js</title>
      <dc:creator>Gabs Ferreira</dc:creator>
      <pubDate>Fri, 26 Jul 2024 20:05:54 +0000</pubDate>
      <link>https://dev.to/meteor/the-renaissance-of-meteorjs-3l3i</link>
      <guid>https://dev.to/meteor/the-renaissance-of-meteorjs-3l3i</guid>
      <description>&lt;p&gt;January 20, 2012. That's the date of the initial release of Meteor.js.&lt;/p&gt;

&lt;p&gt;Back then, the web was a very different place.&lt;/p&gt;

&lt;p&gt;Front-end development was dominated by jQuery for cross-browser compatibility and DOM manipulation. &lt;/p&gt;

&lt;p&gt;Responsive design was gaining traction, with Bootstrap standardizing mobile-friendly web design. &lt;/p&gt;

&lt;p&gt;Single-page applications were emerging, with AngularJS leading the way due to its two-way data binding and modular structure.&lt;/p&gt;

&lt;p&gt;On the backend, Node.js was in its early stages, and JavaScript was growing in popularity as a server-side language, allowing for unified development on both client and server sides. Technologies like PHP, Ruby on Rails, and Java were prevalent, each with its ecosystem.&lt;/p&gt;

&lt;p&gt;RESTful APIs were transforming web services, moving away from the older SOAP protocol.&lt;/p&gt;

&lt;p&gt;Tools like Docker and Kubernetes didn't exist, making deployment and scaling cumbersome. Developers relied on virtual machines and manual configuration, which were time-consuming and prone to errors. CI/CD pipelines were very basic, often involving custom scripts and manual steps.&lt;/p&gt;

&lt;p&gt;Cloud computing was in its early days, with AWS gaining traction but not yet reaching its current level. Organizations still hesitated to move to the cloud due to security and reliability concerns.&lt;/p&gt;

&lt;p&gt;The software development landscape rapidly evolved with new frameworks and libraries, but the ecosystem needed to be more mature and integrated than today, making it more fragmented and rapidly changing for developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rise of the framework
&lt;/h2&gt;

&lt;p&gt;In this fragmented and constantly evolving environment, Meteor.js was launched and quickly gained the attention of the mainstream dev community.&lt;/p&gt;

&lt;p&gt;Creating a project with it meant you would have an out-of-the-box framework with everything you need to create reactive applications with few or almost no plumbing. It was a unified architecture on top of Node.js that bundled client, server, and database all in one package so you could easily run and deploy reactive real-time apps.&lt;/p&gt;

&lt;p&gt;And it was a success.&lt;/p&gt;

&lt;p&gt;As time went by, Meteor.js grew in popularity with its community. We had meetups and conferences all over the world, and thousands of different people worked on packages and projects based on Meteor.js.&lt;/p&gt;

&lt;h2&gt;
  
  
  But at some point, we got stuck
&lt;/h2&gt;

&lt;p&gt;A big part of what made Meteor.js great was Fibers: a key concept in how we handled asynchronous code in a way that appears synchronous, making the code easier to write and read. &lt;/p&gt;

&lt;p&gt;The problem is that the way it worked depended a lot on Node.js, and the moment they decided to introduce asynchronous handling directly on the framework, Fibers wouldn't make sense anymore.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/v8/v8/commit/dacc2fee0f815823782a7e432c79c2a7767a4765" rel="noopener noreferrer"&gt;And that happened in 2021&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Replacing Fibers and bringing Meteor to the mainstream again
&lt;/h2&gt;

&lt;p&gt;In the beginning, removing Fibers from the framework seemed like a very hard task. &lt;/p&gt;

&lt;p&gt;And, well… it was harder than we had imagined.&lt;/p&gt;

&lt;p&gt;During the past 3 years we did a lot of planning, coding and had uncountable discussions with the community to figure out what would be the best way of handling this. And of course, we broke (and fixed) a good amount of stuff in this process.&lt;/p&gt;

&lt;p&gt;But we made it.&lt;/p&gt;

&lt;p&gt;Removing Fibers was a critical step in bringing Meteor up to date with the most current Node.js stack. This transition allows Meteor to leverage all the new features that Node v20 provides. Async/await, a feature now fully supported in Meteor 3, is a prime example.&lt;/p&gt;

&lt;p&gt;Example of Async/Await in Meteor:&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="nx"&gt;Meteor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;methods&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;getUserData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;try&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;user&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;UsersCollection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findOneAsync&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Meteor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user-fetch-failed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Could not retrieve user data&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;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This example demonstrates how you can fetch user data asynchronously. Using async/await ensures the code is clean and easy to read, and error handling is straightforward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meteor 3 and Node v20
&lt;/h2&gt;

&lt;p&gt;Meteor.js 3 now supports Node.js 20 and with it, you can leverage its unparalleled speed of product development and access not only modern syntax but a whole universe of compatibility with Node.js tooling and security.&lt;/p&gt;

&lt;p&gt;Node v20 brings several enhancements that Meteor utilizes to improve performance and developer experience. These include Top-Level Await and Timers Promises API!&lt;/p&gt;

&lt;h2&gt;
  
  
  Top-Level Await
&lt;/h2&gt;

&lt;p&gt;Allows using the await keyword outside of async functions within modules, simplifying the initialization of applications.&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="c1"&gt;// At the top level in your Meteor app's server-side code&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;settings&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;SettingsCollection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findOneAsync&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;app-config&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nx"&gt;Meteor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startup&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;configureApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;settings&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;This feature allows developers to perform asynchronous operations before the application fully starts, ensuring that necessary configurations are in place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stable Timers Promises API
&lt;/h2&gt;

&lt;p&gt;Provides a promise-based alternative to traditional timer functions like &lt;code&gt;setTimeout&lt;/code&gt; and &lt;code&gt;setInterval&lt;/code&gt;, enhancing the way delays and periodic tasks are handled in a non-blocking manner.&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="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;setTimeout&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;timers/promises&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;Meteor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;methods&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;delayedGreeting&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Wait for 2 seconds before continuing&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Process after the delay&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`Hello, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&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="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Integrating Express into Meteor
&lt;/h2&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%2Frc9e7ktnkwrojazvfz1m.gif" 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%2Frc9e7ktnkwrojazvfz1m.gif" alt="Image description" width="1024" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The adoption of Express in Meteor.js 3 opens up new possibilities for developers, especially when building RESTful APIs or serving static files. Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.&lt;/p&gt;

&lt;p&gt;Here is an example of using the &lt;code&gt;WebApp.handlers&lt;/code&gt; as your express instance as you typically would:&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="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;LinksCollection&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/imports/api/links&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;WebApp&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;meteor/webapp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;WebApp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;handlers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/all-links&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;links&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;LinksCollection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;fetchAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nx"&gt;res&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;links&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;In this example, express is used to define a simple API endpoint that returns data from a Meteor collection. This setup shows how seamlessly Express can integrate into the Meteor ecosystem, providing familiar tools for those accustomed to traditional Node.js development.&lt;/p&gt;

&lt;p&gt;You can read more &lt;a href="https://dev.to/meteor/meteor-v3-uses-express-under-the-hood-how-to-use-and-deploy-it-5c2n"&gt;about Meteor with Express here&lt;/a&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Renaissance
&lt;/h2&gt;

&lt;p&gt;We are very proud of this release, and want to invite you to an &lt;a href="https://meteor.com/the-renaissance-of-meteorjs" rel="noopener noreferrer"&gt;online event&lt;/a&gt; with members of the Meteor Core Team to talk about everything we’ve been working on and our plans for the future!&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%2F8x0bv2zck2fb5xwmbywq.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%2F8x0bv2zck2fb5xwmbywq.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It will happen from July 29th to August 1st. On each day, we’ll do live streams at 1 pm (GMT-3) simultaneously on YouTube, LinkedIn, Twitch, and X.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://meteor.com/the-renaissance-of-meteorjs" rel="noopener noreferrer"&gt;Subscribe here&lt;/a&gt; to be notified about the event and participate in the Meteor SWAG and Galaxy credits giveaway!&lt;/p&gt;

&lt;p&gt;Here’s the event schedule:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;July 29th&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;The State of Meteor.js in 2024&lt;/strong&gt; - A deep dive into what the Meteor core team members have been working on to release this major version. From the compatibility with the latest Node.js features, including version 20 LTS, and moving from Fibers to native async/await syntax.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;July 30th&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Understand the potential of the platform&lt;/strong&gt; - Discover what the coolest features of Meteor.js are, what you create with it, and its advantages compared to other platforms and frameworks.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;July 31th&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Built with Meteor.js: Galaxy Cloud&lt;/strong&gt; - Join us as we chat with the developers of the biggest Meteor.js successful project: Galaxy, a cloud service provider that ofers a variety of different products and has hundreds of satisfied customers.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;August 1st&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Chat with the Meteor.js team&lt;/strong&gt; - Q&amp;amp;A session with members of the Meteor.js Core Team hosted inside Meteor Lounge, our official Discord Server.&lt;/p&gt;

&lt;p&gt;We’re very excited about this and I hope to see you all there!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
