<?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: Oscar Luna</title>
    <description>The latest articles on DEV Community by Oscar Luna (@oaluna).</description>
    <link>https://dev.to/oaluna</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%2F296644%2F41b043b9-7af9-4fe8-8236-5f2b5552c1b5.jpg</url>
      <title>DEV Community: Oscar Luna</title>
      <link>https://dev.to/oaluna</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oaluna"/>
    <language>en</language>
    <item>
      <title>What’s New in Tailwind CSS 4.0?</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Sat, 21 Dec 2024 15:51:59 +0000</pubDate>
      <link>https://dev.to/oaluna/whats-new-in-tailwind-css-40-7hn</link>
      <guid>https://dev.to/oaluna/whats-new-in-tailwind-css-40-7hn</guid>
      <description>&lt;p&gt;Tailwind CSS has transformed the landscape of web design by streamlining how developers build user interfaces.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/codex/whats-new-in-tailwind-css-4-0-e98fdab03730?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on CodeX »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>webdesign</category>
      <category>frontend</category>
      <category>tailwindcss</category>
    </item>
    <item>
      <title>Object-Oriented Programming vs Functional Programming</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Wed, 18 Dec 2024 19:51:54 +0000</pubDate>
      <link>https://dev.to/oaluna/object-oriented-programming-vs-functional-programming-o24</link>
      <guid>https://dev.to/oaluna/object-oriented-programming-vs-functional-programming-o24</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/object-oriented-programming-vs-functional-programming-8fe8112325ff?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2AmZPwdmWOKKk2-Ygl" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figuring Out Which Programming Style Works Best for You&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/object-oriented-programming-vs-functional-programming-8fe8112325ff?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>objectoriented</category>
      <category>webdev</category>
      <category>softwaredevelopment</category>
      <category>functionalprogrammin</category>
    </item>
    <item>
      <title>Here are the 7 Best Practices for Security when Working With Node.js</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Wed, 18 Dec 2024 19:50:38 +0000</pubDate>
      <link>https://dev.to/oaluna/here-are-the-7-best-practices-for-security-when-working-with-nodejs-1n9d</link>
      <guid>https://dev.to/oaluna/here-are-the-7-best-practices-for-security-when-working-with-nodejs-1n9d</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/here-are-the-7-best-practices-for-security-when-working-with-node-js-6f228bae9f1a?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2AREidXMxMxaKelFQC" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Protect your users and safeguard data when building your server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/here-are-the-7-best-practices-for-security-when-working-with-node-js-6f228bae9f1a?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>inputvalidation</category>
      <category>dataprotection</category>
      <category>node</category>
    </item>
    <item>
      <title>7 Best Practices for Security When Working With Node.js</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Thu, 12 Dec 2024 05:15:48 +0000</pubDate>
      <link>https://dev.to/oaluna/best-practices-for-security-when-working-with-nodejs-jp6</link>
      <guid>https://dev.to/oaluna/best-practices-for-security-when-working-with-nodejs-jp6</guid>
      <description>&lt;p&gt;Node.js has revolutionized the way we develop web applications, offering a robust and scalable solution for building high-performance servers and applications. As a crucial component of modern web development, ensuring the security of Node.js applications is paramount. Here, we will delve into the top 7 best practices for securing your Node.js applications, protecting your users, and safeguarding your data.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Node.js Does for Web Applications
&lt;/h2&gt;

&lt;p&gt;Node.js is a JavaScript runtime environment that allows developers to run JavaScript on the server side. It provides an event-driven, non-blocking I/O model, making it ideal for real-time web applications. With Node.js, you can handle multiple connections concurrently, which is a significant advantage over traditional server-side technologies. This capability makes Node.js particularly suited for applications that require rapid data exchange, such as live updates, chat applications, and real-time analytics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Components of Node.js
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Event Loop&lt;/strong&gt;: The core of Node.js, handling asynchronous operations efficiently. The event loop ensures that the application remains responsive by processing tasks in a non-blocking manner, allowing other tasks to run while waiting for I/O operations to complete.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modules&lt;/strong&gt;: Reusable pieces of code that can be easily integrated into your application. Node.js has a vast ecosystem of modules available through npm, which simplifies the development process by providing pre-built solutions for common tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm (Node Package Manager)&lt;/strong&gt;: The largest package ecosystem, providing access to millions of packages. npm makes it easy to manage dependencies, update packages, and share code with the community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Express.js and Other Frameworks&lt;/strong&gt;: Simplifying the development process with structured frameworks. Express.js, for example, provides a lightweight and flexible way to build web applications, making it easier to handle routes, middleware, and templates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Primary Benefits of Implementing Node.js
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: Handles high traffic with ease. Node.js's ability to handle multiple connections concurrently makes it highly scalable, allowing your application to grow without significant performance degradation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt;: Fast and efficient due to its non-blocking I/O model. This model ensures that the application remains responsive even under heavy loads, providing a better user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;: Large and active community, ensuring continuous support and updates. The Node.js community is known for its vibrant ecosystem, with numerous contributors and maintainers working on various projects and libraries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extensive Libraries&lt;/strong&gt;: Access to a vast array of packages through npm. This extensive library ecosystem saves developers time and effort by providing pre-built solutions for many common tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  7 Best Practices for Node.js Security
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Validate and Sanitize User Input&lt;/strong&gt;&lt;br&gt;
User input is one of the most common entry points for malicious attacks. Validating and sanitizing user input is essential to prevent XSS (Cross-Site Scripting), SQL injection, and command injection attacks. Use libraries like DOMPurify, express-validator, and XSS-filters to automate the validation process. These tools ensure that only data in the expected format is allowed to pass through, preventing unexpected behavior due to unforeseen input.&lt;br&gt;
For instance, when handling form submissions, use express-validator to define rules for each field, ensuring that the data conforms to the expected format. Additionally, always sanitize user input before storing it in your database or displaying it on your website to prevent XSS attacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Implement Strong Authentication and Authorization&lt;/strong&gt;&lt;br&gt;
Strong authentication policies are critical to protect your application from unauthorized access. Use secure password hashing algorithms like bcrypt or scrypt instead of the Node.js built-in crypto library. Implement multi-factor authentication (MFA) and single sign-on (SSO) to add extra layers of security. Limit failed login attempts to mitigate brute-force attacks, and use role-based access control (RBAC) to define user roles and permissions.&lt;br&gt;
When implementing authentication, ensure that passwords are hashed using a salted hashing algorithm to prevent rainbow table attacks. Also, consider using libraries like passport.js to simplify the authentication process and integrate various authentication strategies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Keep Dependencies Updated and Secure&lt;/strong&gt;&lt;br&gt;
Dependencies can introduce significant vulnerabilities if not managed properly. Use tools like npm audit and npm outdated to check for and update dependencies regularly. Specify fixed versions in your package.json to minimize unexpected changes, and use lockfiles to pin every dependency (direct and transitive) to a specific immutable version.&lt;br&gt;
Regularly running npm audit can help identify vulnerabilities in your dependencies and suggest updates or patches. Additionally, using a tool like Snyk can provide continuous monitoring of your dependencies for security issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Ensure Secure Deserialization&lt;/strong&gt;&lt;br&gt;
Node.js lacks advanced object serialization, making it vulnerable to attacks through serialized objects. Implement integrity and user authentication checks, and sanitize deserialized data. Use anti-CSRF tokens, custom request headers, and the SameSite flag in cookie sessions to protect against such attacks.&lt;br&gt;
When deserializing data, ensure that the data comes from a trusted source and is properly validated. Use libraries like jsonwebtoken to handle JSON Web Tokens securely, and always verify the integrity of the data before processing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Avoid Errors That Reveal Too Much&lt;/strong&gt;&lt;br&gt;
Error handling is crucial for security. Avoid returning detailed error messages to users, as they can reveal sensitive information such as paths, library versions, or secrets. Wrap routes with catch clauses to prevent the application from crashing due to malicious requests, and return generic error messages instead of detailed ones.&lt;br&gt;
Implementing a global error handler using Express.js can help catch and handle errors uniformly across your application. Ensure that error messages are logged securely using a logging library like Bunyan, but do not expose these details to the end user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Setup Logging and Monitoring&lt;/strong&gt;&lt;br&gt;
Logging and monitoring are essential for identifying and responding to security incidents promptly. Implement logging using modules like Bunyan and toobusy-js. This helps in gaining insights into your application's activities and detecting potential security issues early on.&lt;br&gt;
Use logging levels effectively – log important events at the info level, errors at the error level, and debug information at the debug level. Integrate your logging with monitoring tools like New Relic or Datadog to get real-time insights into your application's performance and security.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Run Node.js with Non-Root Privileges&lt;/strong&gt;&lt;br&gt;
Running Node.js with root privileges can be catastrophic if your application is compromised. Create a dedicated user with minimal permissions required to run the application. This limits the potential damage in case of a security breach, as attackers will only have access to the privileges of the dedicated user.&lt;br&gt;
To set up a non-root user, create a new user on your server and configure the application to run under this user's credentials. Use tools like sudo or setuid to manage permissions, ensuring that the application has only the necessary access to system resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Securing your Node.js application is not just a best practice, but a necessity in today's digital landscape. By following these top 7 security best practices, you can significantly enhance the security of your web applications, protect user data, and ensure the integrity of your system.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Validate and sanitize user input to prevent common injection attacks and ensure data integrity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement strong authentication and authorization to secure user access and protect against unauthorized actions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep dependencies updated and secure to avoid vulnerabilities introduced by outdated libraries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure secure deserialization to protect against object serialization attacks and maintain data integrity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid errors that reveal too much to keep sensitive information hidden from potential attackers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Setup logging and monitoring to detect and respond to security incidents promptly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run Node.js with non-root privileges to limit potential damage in case of a security breach.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By integrating these practices into your development workflow, you not only safeguard your application but also build trust with your users, ensuring a secure and reliable web experience. In a world where cybersecurity threats are ever-evolving, staying proactive and vigilant is key to maintaining the security and integrity of your web applications.&lt;/p&gt;

</description>
      <category>node</category>
      <category>security</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Dark Mode Everything!</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Mon, 25 Nov 2024 08:15:47 +0000</pubDate>
      <link>https://dev.to/oaluna/dark-mode-everything-1noj</link>
      <guid>https://dev.to/oaluna/dark-mode-everything-1noj</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/dark-mode-everything-70b6c540f951?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2ANm_Wi5SQQhVXuUiE" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enhance User Experience and Accessibility in your Web Applications&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/dark-mode-everything-70b6c540f951?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>userexperience</category>
      <category>technologytrends</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Understanding React Server Components</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Tue, 19 Nov 2024 19:02:01 +0000</pubDate>
      <link>https://dev.to/oaluna/understanding-react-server-components-1gej</link>
      <guid>https://dev.to/oaluna/understanding-react-server-components-1gej</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/understanding-react-server-components-5c5a3c18b3a7?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2ARgvL0enJgwiDGQ04" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Improve your page load speed and performance with this React feature!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/understanding-react-server-components-5c5a3c18b3a7?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>reactservercomponent</category>
      <category>serversiderendering</category>
    </item>
    <item>
      <title>Stay Ahead of the SEO Game By Optimizing Your Code for Voice Search</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Mon, 11 Nov 2024 04:10:31 +0000</pubDate>
      <link>https://dev.to/oaluna/stay-ahead-of-the-seo-game-by-optimizing-your-code-for-voice-search-2hln</link>
      <guid>https://dev.to/oaluna/stay-ahead-of-the-seo-game-by-optimizing-your-code-for-voice-search-2hln</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/stay-ahead-of-the-seo-game-by-optimizing-your-code-for-voice-search-a0028a15bc83?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2AHLJYTl6mAdoRtymO" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello! Today I’m going to discuss the rising trend of voice searching in web applications. As voice assistants become increasingly popular…&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/stay-ahead-of-the-seo-game-by-optimizing-your-code-for-voice-search-a0028a15bc83?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>voiceassistant</category>
      <category>voicesearch</category>
      <category>searchengineoptimiza</category>
    </item>
    <item>
      <title>Understanding Client-Server Interactions: A Guide to REST and HTTP Verbs</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Mon, 11 Nov 2024 04:06:09 +0000</pubDate>
      <link>https://dev.to/oaluna/understanding-client-server-interactions-a-guide-to-rest-and-http-verbs-cfi</link>
      <guid>https://dev.to/oaluna/understanding-client-server-interactions-a-guide-to-rest-and-http-verbs-cfi</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/understanding-client-server-interactions-a-guide-to-rest-and-http-verbs-b4478ea8d2a5?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2ALpBtmL_Xq-jTdPh2" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Revisiting "On API's and REST Architecture"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/understanding-client-server-interactions-a-guide-to-rest-and-http-verbs-b4478ea8d2a5?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>restarchitecture</category>
      <category>clientserver</category>
      <category>https</category>
      <category>apiintegration</category>
    </item>
    <item>
      <title>5 Ways to Implement the ChatGPT API in Web Applications</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Fri, 08 Nov 2024 06:46:55 +0000</pubDate>
      <link>https://dev.to/oaluna/5-ways-to-implement-the-chatgpt-api-in-web-applications-1gla</link>
      <guid>https://dev.to/oaluna/5-ways-to-implement-the-chatgpt-api-in-web-applications-1gla</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/5-ways-to-implement-the-chatgpt-api-in-web-applications-3577d13d285e?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2A092P61c_6-Odac8v" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/5-ways-to-implement-the-chatgpt-api-in-web-applications-3577d13d285e?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>artificialintelligen</category>
      <category>javascript</category>
      <category>chatbots</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Still Using UseEffect? Check Out React 19’s Exciting New Hooks</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Tue, 05 Nov 2024 01:51:46 +0000</pubDate>
      <link>https://dev.to/oaluna/still-using-useeffect-check-out-react-19s-exciting-new-hooks-295a</link>
      <guid>https://dev.to/oaluna/still-using-useeffect-check-out-react-19s-exciting-new-hooks-295a</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/still-using-useeffect-check-out-react-19s-exciting-new-hooks-08a537100ed8?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2AQWXzDFbF9plf-E2Y" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A game changer for developers!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/still-using-useeffect-check-out-react-19s-exciting-new-hooks-08a537100ed8?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>reacthook</category>
      <category>react</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Styling With Next.js 15</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Mon, 04 Nov 2024 05:32:01 +0000</pubDate>
      <link>https://dev.to/oaluna/styling-with-nextjs-15-2cj9</link>
      <guid>https://dev.to/oaluna/styling-with-nextjs-15-2cj9</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/styling-with-next-js-15-e29b85a6d403?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2Ar3KI4a5IkQa7aaMk" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An updated revision for implementing styles to Next.js&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/styling-with-next-js-15-e29b85a6d403?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>webdev</category>
      <category>cssstyling</category>
      <category>javascriptframeworks</category>
    </item>
    <item>
      <title>React 19 RC</title>
      <dc:creator>Oscar Luna</dc:creator>
      <pubDate>Mon, 04 Nov 2024 05:26:43 +0000</pubDate>
      <link>https://dev.to/oaluna/react-19-rc-15h</link>
      <guid>https://dev.to/oaluna/react-19-rc-15h</guid>
      <description>&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/react-19-rc-89d72ccee836?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2AEhHzypNqFiHw2Pu8" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;: Exciting New Features and Improvements&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/react-19-rc-89d72ccee836?source=rss-be00f566a88f------2" rel="noopener noreferrer"&gt;Continue reading on JavaScript in Plain English »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react19</category>
      <category>react</category>
      <category>webdev</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
