<?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: Alex Gonzalez</title>
    <description>The latest articles on DEV Community by Alex Gonzalez (@algorodev).</description>
    <link>https://dev.to/algorodev</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%2F817587%2Fb840d149-5cd9-48c5-93a5-c946c7c24a3f.jpg</url>
      <title>DEV Community: Alex Gonzalez</title>
      <link>https://dev.to/algorodev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/algorodev"/>
    <language>en</language>
    <item>
      <title>I stopped setting up TypeScript APIs from scratch — here's what I do instead</title>
      <dc:creator>Alex Gonzalez</dc:creator>
      <pubDate>Wed, 18 Mar 2026 10:56:37 +0000</pubDate>
      <link>https://dev.to/algorodev/i-stopped-setting-up-typescript-apis-from-scratch-heres-what-i-do-instead-3al1</link>
      <guid>https://dev.to/algorodev/i-stopped-setting-up-typescript-apis-from-scratch-heres-what-i-do-instead-3al1</guid>
      <description>&lt;p&gt;Every new project starts the same way.&lt;/p&gt;

&lt;p&gt;Open terminal. &lt;code&gt;mkdir new-project&lt;/code&gt;. And then... 2 days of configuration before writing a single line of business logic.&lt;/p&gt;

&lt;p&gt;After 8 years building APIs professionally — across startups and companies — I realized I was solving the same problems every single time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TypeScript strict mode setup that actually works&lt;/li&gt;
&lt;li&gt;JWT auth with refresh token rotation&lt;/li&gt;
&lt;li&gt;A folder structure that doesn't fall apart at scale&lt;/li&gt;
&lt;li&gt;Docker that works the same on every machine&lt;/li&gt;
&lt;li&gt;CI/CD that doesn't take half a day to configure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I stopped. And I packaged everything into a boilerplate I actually use in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the stack looks like
&lt;/h2&gt;

&lt;p&gt;After trying many combinations, this is what I landed on:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fastify&lt;/strong&gt; over Express — it's faster, has better TypeScript support out of the box, and the plugin system is genuinely good once you understand it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prisma&lt;/strong&gt; over raw SQL or other ORMs — the DX is excellent and the generated types save hours of manual typing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zod&lt;/strong&gt; for validation — schema-first validation that integrates cleanly with TypeScript. No more runtime surprises.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vitest&lt;/strong&gt; over Jest — faster, same API, zero config with TypeScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  The folder structure
&lt;/h2&gt;

&lt;p&gt;This is the part most boilerplates get wrong. Everything dumped in a flat &lt;code&gt;src/&lt;/code&gt; folder doesn't scale.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/
  config/       # Zod-validated env vars, constants
  modules/      # Feature modules
    auth/       # routes, controller, service, schema
    users/      # routes, controller, service, schema
  middlewares/  # error handler, auth guard, rate limiter
  plugins/      # Fastify plugins (Prisma, JWT)
  utils/        # AppError, response helpers, logger
  app.ts
  server.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each module owns its routes, controller, service and validation schema. Adding a new feature means adding a new folder — nothing else changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auth that actually works in production
&lt;/h2&gt;

&lt;p&gt;Most boilerplates ship with basic JWT. This one has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access token (short-lived) + refresh token (long-lived)&lt;/li&gt;
&lt;li&gt;Refresh tokens stored in DB and rotated on every use&lt;/li&gt;
&lt;li&gt;Role-based access control: &lt;code&gt;authenticate()&lt;/code&gt; and &lt;code&gt;authorize(ROLES.ADMIN)&lt;/code&gt; guards&lt;/li&gt;
&lt;li&gt;Passwords hashed with Node.js native &lt;code&gt;scrypt&lt;/code&gt; — no bcrypt dependency
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Protecting a route is two lines&lt;/span&gt;
&lt;span class="nx"&gt;fastify&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="s1"&gt;/admin/users&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="na"&gt;preHandler&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;authenticate&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;authorize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ROLES&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ADMIN&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="nx"&gt;usersController&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;findAll&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Error handling that doesn't leak internals
&lt;/h2&gt;

&lt;p&gt;Centralized error handler with a custom &lt;code&gt;AppError&lt;/code&gt; class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Throw anywhere in your code&lt;/span&gt;
&lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;AppError&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 not found&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;404&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// Consistent response format everywhere&lt;/span&gt;
&lt;span class="c1"&gt;// { success: false, message: 'User not found', statusCode: 404 }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Zod validation errors are also caught and formatted automatically — no more unhandled validation crashes.&lt;/p&gt;

&lt;h2&gt;
  
  
  From zero to running API in 4 commands
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
docker compose up db &lt;span class="nt"&gt;-d&lt;/span&gt;
npx prisma migrate dev
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. PostgreSQL running in Docker, migrations applied, API live on localhost.&lt;/p&gt;

&lt;h2&gt;
  
  
  CI/CD included
&lt;/h2&gt;

&lt;p&gt;GitHub Actions pipeline with 4 stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Lint&lt;/strong&gt; — ESLint + Prettier&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test&lt;/strong&gt; — Vitest + Supertest integration tests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build&lt;/strong&gt; — TypeScript compilation check&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker&lt;/strong&gt; — multi-stage build (builder + alpine runner, non-root user)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Push to main and everything runs automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  The result
&lt;/h2&gt;

&lt;p&gt;38 files. Zero &lt;code&gt;any&lt;/code&gt; types. Strict TypeScript throughout. Consistent response format. Graceful shutdown. Pino logger with request ID tracing.&lt;/p&gt;

&lt;p&gt;Everything I wished existed when I started my first project.&lt;/p&gt;

&lt;p&gt;If you want to skip the setup and start with this foundation, I packaged it here: [link to your Gumroad product]&lt;/p&gt;

&lt;p&gt;Or just steal the ideas — either way, I hope it saves you 2 days.&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>node</category>
      <category>fastify</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Introduction to Web Development: Navigating the Digital Creation Space</title>
      <dc:creator>Alex Gonzalez</dc:creator>
      <pubDate>Tue, 02 Apr 2024 19:34:28 +0000</pubDate>
      <link>https://dev.to/algorodev/introduction-to-web-development-navigating-the-digital-creation-space-3jlh</link>
      <guid>https://dev.to/algorodev/introduction-to-web-development-navigating-the-digital-creation-space-3jlh</guid>
      <description>&lt;p&gt;Web development stands as the backbone of the internet, a dynamic field that encompasses the creation, design, and management of websites and web applications. It's the craft that turns complex codes into the visual and interactive experiences that fill our screens. Whether you're a curious beginner eager to dive into the digital creation space or a professional looking to refine your knowledge, understanding the fundamentals of web development is essential. This introduction aims to guide you through the basics, tools, and current trends in web development, offering a solid foundation to start or enhance your journey in this fascinating field.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44f5j3okkfbz0d9t5wzj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44f5j3okkfbz0d9t5wzj.jpg" alt="Infographic of Web Development Process" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Understanding the Core of Web Development&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Web development can be divided into two main categories: front-end and back-end development, with a third, overarching category known as full-stack development.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Front-end Development&lt;/strong&gt;: This area is concerned with the part of the website that users interact with directly. Front-end developers focus on designing and developing the layout, navigation, graphics, and overall aesthetics of the website using technologies like &lt;a href="https://dev.to/algorodev/introduction-to-html-the-hypertext-markup-language-bk7"&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://dev.to/algorodev/introduction-to-css-transforming-web-pages-with-style-22p7"&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;/a&gt;, and &lt;a href="https://dev.to/algorodev/introduction-to-javascript-empowering-web-development-with-interactivity-1cla"&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Back-End Development&lt;/strong&gt;: Back-end development deals with the server side of a website, where all the data processing happens. It involves creating and maintaining the technology needed to power the components which enable the user-facing side of the website to exist in the first place. This includes databases, servers, and applications. Languages commonly used in back-end development include &lt;a href="https://www.php.net/"&gt;&lt;strong&gt;PHP&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://www.ruby-lang.org/es/"&gt;&lt;strong&gt;Ruby&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://www.python.org/"&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;/a&gt;, and &lt;a href="https://nodejs.org/en"&gt;&lt;strong&gt;Node.js&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full-Stack Development&lt;/strong&gt;: Full-stack developers are jacks-of-all-trades in web development, with expertise in both front-end and back-end technologies. They are capable of creating a complete web application from scratch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tools and Technologies&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The world of web development is always evolving, with new tools and technologies continually emerging to make the development process more efficient and powerful. Some of the essential tools for web developers include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Version Control Systems&lt;/strong&gt; like &lt;a href="https://git-scm.com/"&gt;&lt;strong&gt;Git&lt;/strong&gt;&lt;/a&gt; help developers track and manage changes to a project’s codebase, facilitating collaboration among team members.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frameworks and Libraries&lt;/strong&gt; such as &lt;a href="https://react.dev/"&gt;&lt;strong&gt;React&lt;/strong&gt;&lt;/a&gt; (for front-end) and &lt;a href="https://www.djangoproject.com/"&gt;&lt;strong&gt;Django&lt;/strong&gt;&lt;/a&gt; (for back-end) provide pre-written code to help developers build applications faster and with more robust features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Development Environments and Editors&lt;/strong&gt; like &lt;a href="https://code.visualstudio.com/"&gt;&lt;strong&gt;Visual Studio Code&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://www.sublimetext.com/"&gt;&lt;strong&gt;Sublime Text&lt;/strong&gt;&lt;/a&gt; offer powerful coding tools tailored for web development, including syntax highlighting, code completion, and debugging features.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Trends and Best Practices&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Staying updated with current trends and best practices is crucial in the fast-paced world of web development. &lt;strong&gt;Responsive design&lt;/strong&gt;, ensuring websites work well on various devices and screen sizes, is now a standard. &lt;strong&gt;Progressive Web Apps&lt;/strong&gt; (PWAs) are gaining traction for their ability to provide a user experience closer to that of native apps. &lt;strong&gt;Web accessibility&lt;/strong&gt; is also a critical consideration, making sure websites are usable for people with disabilities.&lt;/p&gt;

&lt;p&gt;Moreover, the rise of &lt;strong&gt;artificial intelligence&lt;/strong&gt; (AI) and &lt;strong&gt;machine learning&lt;/strong&gt; is starting to make its mark on web development, from automating certain tasks to creating more personalised user experiences.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Getting Started&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The best way to learn web development is by doing. Here are a few steps to get you started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Learn the Basics&lt;/strong&gt;: Start with HTML, CSS, and JavaScript. There are numerous free resources online, such as &lt;a href="https://www.codecademy.com/"&gt;&lt;strong&gt;Codecademy&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://www.freecodecamp.org/"&gt;&lt;strong&gt;freeCodeCamp&lt;/strong&gt;&lt;/a&gt;, and &lt;a href="https://www.w3schools.com/"&gt;&lt;strong&gt;W3Schools&lt;/strong&gt;&lt;/a&gt;, where you can learn these skills.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build Projects&lt;/strong&gt;: Apply what you've learned by building projects. Start simple with a personal portfolio site and progressively build more complex applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore Further&lt;/strong&gt;: Once you're comfortable with the basics, start exploring more advanced topics, such as frameworks, back-end development, or even full-stack development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Join a Community&lt;/strong&gt;: Web development has a vast and supportive community. Join forums like &lt;a href="https://stackoverflow.com/"&gt;&lt;strong&gt;Stack Overflow&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://www.reddit.com/"&gt;&lt;strong&gt;Reddit's&lt;/strong&gt;&lt;/a&gt; web development subreddit, or local meetups to learn from others, get advice, and stay updated on the latest trends.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Web development is a constantly evolving field, with new tools, technologies, and best practices emerging all the time. It requires a commitment to lifelong learning but offers a rewarding and creative career path. Whether you're interested in front-end, back-end, or full-stack development, there's a place for you in the world of web development.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Web development is a continually changing field that requires a passion for learning and adaptation. By understanding its fundamentals, mastering the tools and technologies, and staying abreast of trends and best practices, anyone can embark on a rewarding journey into web development. Whether your goal is to become a professional developer or simply to explore the digital creation space, web development offers a versatile platform to bring your ideas to life.&lt;/p&gt;

&lt;p&gt;Comment your thoughts about Web Development!&lt;/p&gt;

&lt;p&gt;Happy Coding! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>frontend</category>
      <category>learning</category>
    </item>
    <item>
      <title>Introduction to JavaScript: Empowering Web Development with Interactivity</title>
      <dc:creator>Alex Gonzalez</dc:creator>
      <pubDate>Mon, 25 Mar 2024 14:39:57 +0000</pubDate>
      <link>https://dev.to/algorodev/introduction-to-javascript-empowering-web-development-with-interactivity-1cla</link>
      <guid>https://dev.to/algorodev/introduction-to-javascript-empowering-web-development-with-interactivity-1cla</guid>
      <description>&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; is a cornerstone of modern web development. It's a versatile programming language that enables developers to add &lt;strong&gt;interactivity&lt;/strong&gt;, &lt;strong&gt;dynamic behavior&lt;/strong&gt;, and &lt;strong&gt;functionality&lt;/strong&gt; to web pages. Whether you're building a simple website or a complex web application, JavaScript is essential for creating engaging user experiences on the web.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What is JavaScript?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;JavaScript is an interpreted, high-level, dynamically typed programming language. Unlike &lt;a href="https://dev.to/algorodev/introduction-to-html-the-hypertext-markup-language-bk7"&gt;HTML&lt;/a&gt; and &lt;a href="https://dev.to/algorodev/introduction-to-css-transforming-web-pages-with-style-22p7"&gt;CSS&lt;/a&gt;, which are used to define the structure and style of a web page, respectively, JavaScript is used to add behavior and dynamic functionality to web pages. This includes things like form validation, animations, DOM (Document Object Model) manipulation, user interaction, and much more.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Why Learn JavaScript?&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Frontend Development&lt;/strong&gt;: JavaScript is the primary language for frontend web development. It's used to create dynamic user interfaces, handle user events, and communicate with servers to fetch and display data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend Development&lt;/strong&gt;: With the advent of &lt;a href="https://nodejs.org/en"&gt;Node.js&lt;/a&gt;, JavaScript can now be used for server-side development as well. This means that developers can use JavaScript for both frontend and backend tasks, streamlining the development process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Versatility&lt;/strong&gt;: JavaScript is not limited to web browsers. It's used in a variety of environments, including mobile app development (using frameworks like &lt;a href="https://reactnative.dev/"&gt;React Native&lt;/a&gt;), game development (using libraries like &lt;a href="https://phaser.io/"&gt;Phaser&lt;/a&gt;), and even serverless computing (using platforms like &lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/welcome.html"&gt;AWS Lambda&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Popularity and Demand&lt;/strong&gt;: JavaScript consistently ranks as one of the most popular programming languages in the world. Learning JavaScript opens up a wide range of job opportunities in the tech industry.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Basic Syntax of JavaScript&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;JavaScript follows a syntax similar to other programming languages, making it relatively easy to learn for those who already have programming experience. Here's an example of basic JavaScript code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Definition of a function&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;functionName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;propertyName&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello, &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;propertyName&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;!&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="c1"&gt;// Function call and output&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;functionName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;World&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Comments&lt;/strong&gt;: These can be added with &lt;strong&gt;&lt;code&gt;//&lt;/code&gt;&lt;/strong&gt; for a single line or &lt;strong&gt;&lt;code&gt;/* */&lt;/code&gt;&lt;/strong&gt; for multiline comments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Functions&lt;/strong&gt;: Defined using the &lt;strong&gt;&lt;code&gt;function&lt;/code&gt;&lt;/strong&gt; keyword.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Variables&lt;/strong&gt;: Declared using &lt;strong&gt;&lt;code&gt;var&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;let&lt;/code&gt;&lt;/strong&gt;, or &lt;strong&gt;&lt;code&gt;const&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Console&lt;/strong&gt;: Used to print information to the browser's console.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Basic Concepts and Key features of JavaScript&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Variables and Data Types&lt;/strong&gt;: JavaScript supports various data types such as strings, numbers, booleans, arrays, and objects. Variables are used to store and manipulate data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Functions&lt;/strong&gt;: Functions are blocks of reusable code that perform a specific task. They allow developers to organize code into manageable chunks and make it more modular and reusable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control Flow&lt;/strong&gt;: JavaScript provides constructs like if-else statements, loops (for, while), and switch statements for controlling the flow of execution based on conditions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DOM Manipulation&lt;/strong&gt;: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction"&gt;The Document Object Model (DOM)&lt;/a&gt; represents the structure of an HTML document as a tree-like structure. JavaScript can manipulate this structure, allowing developers to dynamically update the content and style of web pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactivity&lt;/strong&gt;: JavaScript allows developers to create interactive web pages that respond to user actions, such as clicking a button or filling out a form.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Events&lt;/strong&gt;: JavaScript can respond to various events triggered by user interactions, such as clicks, mouse movements, and keyboard inputs. Event handling allows developers to create interactive and responsive web applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ajax and Fetch&lt;/strong&gt;: Allows for asynchronous HTTP requests to the server, enabling loading or sending of data without having to reload the entire page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frameworks and Libraries&lt;/strong&gt;: There are numerous JavaScript frameworks and libraries, such as &lt;a href="https://react.dev/"&gt;React&lt;/a&gt;, &lt;a href="https://angular.io/"&gt;Angular&lt;/a&gt;, and &lt;a href="https://vuejs.org/"&gt;Vue.js&lt;/a&gt;, which simplify the development of complex web applications.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Advancing with JavaScript&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;As you become familiar with JavaScript, you can explore more advanced concepts such as object-oriented programming, array and object manipulation, promises and asynchronous programming, and web application development using modern technologies like Node.js.&lt;/p&gt;

&lt;p&gt;JavaScript is a powerful language that has come a long way since its early days. Today, it's essential for any web developer looking to create interactive and dynamic experiences on the web. With practice and perseverance, you can master JavaScript and take your web development skills to the next level. Start your journey today!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Introduction to CSS: Transforming Web Pages with Style</title>
      <dc:creator>Alex Gonzalez</dc:creator>
      <pubDate>Wed, 20 Mar 2024 16:54:52 +0000</pubDate>
      <link>https://dev.to/algorodev/introduction-to-css-transforming-web-pages-with-style-22p7</link>
      <guid>https://dev.to/algorodev/introduction-to-css-transforming-web-pages-with-style-22p7</guid>
      <description>&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt;, or &lt;em&gt;Cascading Style Sheets&lt;/em&gt;, is a language used to style and present web pages. While &lt;a href="https://dev.to/algorodev/introduction-to-html-the-hypertext-markup-language-bk7"&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/a&gt; provides the structure and content of a page, CSS brings it to life by defining how that content will look. From color and typography to layout and arrangement.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What is CSS?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;CSS is a &lt;strong&gt;styling language&lt;/strong&gt; that describes how HTML elements should be presented on a web page. It allows control over aspects such as color, font, size, and layout of HTML elements, as well as the arrangement and positioning of those elements on the page.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Basic Syntax of CSS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The syntax of CSS consists of a set of &lt;strong&gt;rules&lt;/strong&gt; that specify how style should be applied to HTML elements. Each rule consists of a &lt;strong&gt;selector&lt;/strong&gt; and a set of &lt;strong&gt;style declarations&lt;/strong&gt;, which define the &lt;strong&gt;properties&lt;/strong&gt; and &lt;strong&gt;values&lt;/strong&gt; to be applied to the selected elements.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;selector&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;property&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c"&gt;/* Comment */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Selector&lt;/strong&gt;: Specifies which HTML elements will be affected by the style rule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Property&lt;/strong&gt;: Defines the aspect you want to change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Value&lt;/strong&gt;: Specifies the value to be applied to the property&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comments&lt;/strong&gt;: Used to add notes in the CSS code that are not interpreted as part of the style.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Applying Styles to HTML Elements&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;There are several ways to apply CSS styles to HTML elements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Inline Styles&lt;/strong&gt;: Applied directly to an element using the &lt;code&gt;style&lt;/code&gt; attribute.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"color: blue; font-size: 16px;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Paragraph with inline styles.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Internal Styles&lt;/strong&gt;: Defined within the &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; tag in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; section of the HTML document.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;External Styles&lt;/strong&gt;: Defined in a separate CSS file and linked to the HTML document using the &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; tag in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; section.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/css"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"styles.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Key CSS Properties&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;CSS offers a wide range of properties to customize the style of HTML elements. Some of the most common properties include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;color&lt;/strong&gt;: Defines the text color.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;font-family&lt;/strong&gt;: Specifies the font used for text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;font-size&lt;/strong&gt;: Sets the font size.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;margin&lt;/strong&gt;: Controls the space around an element.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;padding&lt;/strong&gt;: Defines the internal space of an element.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;border&lt;/strong&gt;: Sets the border around an element.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;background-color&lt;/strong&gt;: Defines the background color of an element.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more information about CSS Properties: &lt;a href="https://www.dofactory.com/css/properties"&gt;https://www.dofactory.com/css/properties&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Advancing with CSS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;As you become familiar with CSS, you can explore more advanced techniques such as using more specific selectors, &lt;strong&gt;responsive design&lt;/strong&gt; to adapt the page to different devices, and &lt;strong&gt;animation&lt;/strong&gt; to add &lt;strong&gt;visual interactivity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;With this introduction to CSS, you're ready to start styling your web pages and creating captivating visual experiences on the web. Experiment and have fun exploring the power of web design with CSS!&lt;/p&gt;

</description>
      <category>css</category>
      <category>beginners</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Introduction to HTML: The HyperText Markup Language</title>
      <dc:creator>Alex Gonzalez</dc:creator>
      <pubDate>Sat, 16 Mar 2024 00:00:05 +0000</pubDate>
      <link>https://dev.to/algorodev/introduction-to-html-the-hypertext-markup-language-bk7</link>
      <guid>https://dev.to/algorodev/introduction-to-html-the-hypertext-markup-language-bk7</guid>
      <description>&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;, or &lt;em&gt;HyperText Markup Language&lt;/em&gt;, is the standard language used for creating web pages. As a markup language, it provides the &lt;strong&gt;structure&lt;/strong&gt; and &lt;strong&gt;layout&lt;/strong&gt; of a &lt;strong&gt;web page&lt;/strong&gt;, defining elements like headings, paragraphs, links, and more. From simple static websites to complex interactive web applications, HTML is the foundation upon which much of the internet is built.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is HTML?
&lt;/h3&gt;

&lt;p&gt;HTML is a &lt;strong&gt;markup language&lt;/strong&gt; that uses a series of &lt;strong&gt;tags&lt;/strong&gt; to define the structure and content of a web page. These tags, written within angle brackets &lt;code&gt;&amp;lt; &amp;gt;&lt;/code&gt;, are interpreted by web browsers to render the content correctly on the user's screen, and are used to create elements like headers (represented by &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; through &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; tags), paragraphs (&lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;), links (&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;), or images (&lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;), among others.&lt;/p&gt;

&lt;h3&gt;
  
  
  The basic structure of an HTML document:
&lt;/h3&gt;

&lt;p&gt;Every HTML document follows a basic structure consisting of a set of key elements:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Page Title&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;This is an example of a heading.&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is an example of a paragraph.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt;: This declaration defines the HTML version used in the document. (In this case, HTML5).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt;: It is the root element that wraps all HTML content.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;: It contains metadata about the document, such as the page title and links to CSS style sheets and JavaScript scripts.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;: Defines the title of the page displayed in the browser’s tab.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;: Contains the visible content of the page, such as headers, paragraphs, images, and more.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Key HTML Tags:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Headers&lt;/strong&gt; (&lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; ,…,&lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt;): Used to organize and hierarchize page content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paragraphs&lt;/strong&gt; (&lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;): Defines a block of text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links&lt;/strong&gt; (&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;): Creates an hyperlink to other web pages or online resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Images&lt;/strong&gt; (&lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;): Inserts an image into the page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lists&lt;/strong&gt; (&lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;,&lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt;): Creates an unordered or ordered list.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;List item&lt;/strong&gt; (&lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;): Defines a list item.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tables&lt;/strong&gt; (&lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt;): Organizes data into a tables.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Table row&lt;/strong&gt; (&lt;code&gt;&amp;lt;tr&amp;gt;&lt;/code&gt;):Defines a table row.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Table column&lt;/strong&gt; (&lt;code&gt;&amp;lt;td&amp;gt;&lt;/code&gt;): Defines a table column.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forms&lt;/strong&gt; (&lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt;): Creates a form to collect user information.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input&lt;/strong&gt; (&lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;): Defines an input that can be filled with some information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Button&lt;/strong&gt; (&lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt;): Defines a button that can be pressed to send the form information.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more information about HTML tags: &lt;a href="https://html5doctor.com/element-index/"&gt;https://html5doctor.com/element-index/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Moving forward with HTML
&lt;/h3&gt;

&lt;p&gt;To create dynamic and visually appealing web pages, it's necessary to complement it with &lt;a href="https://dev.to/algorodev/introduction-to-css-transforming-web-pages-with-style-22p7"&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;/a&gt; (&lt;em&gt;Cascading Style Sheets&lt;/em&gt;) for styling the content and &lt;a href="https://dev.to/algorodev/introduction-to-javascript-empowering-web-development-with-interactivity-1cla"&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;/a&gt; for adding interactivity and functionality. Together, these three languages form the core of modern web programming.&lt;/p&gt;

</description>
      <category>html</category>
      <category>beginners</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
