<?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: Muhammad Kashif Pathan</title>
    <description>The latest articles on DEV Community by Muhammad Kashif Pathan (@muhammadkashifpathan).</description>
    <link>https://dev.to/muhammadkashifpathan</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%2F2671114%2F89f55190-e869-45ca-9e5f-cf401b252c18.jpg</url>
      <title>DEV Community: Muhammad Kashif Pathan</title>
      <link>https://dev.to/muhammadkashifpathan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muhammadkashifpathan"/>
    <language>en</language>
    <item>
      <title>Membership Tiers Component – A Modern UI Design</title>
      <dc:creator>Muhammad Kashif Pathan</dc:creator>
      <pubDate>Thu, 06 Mar 2025 09:23:10 +0000</pubDate>
      <link>https://dev.to/muhammadkashifpathan/membership-tiers-component-a-modern-ui-design-4ail</link>
      <guid>https://dev.to/muhammadkashifpathan/membership-tiers-component-a-modern-ui-design-4ail</guid>
      <description>&lt;p&gt;Looking for a sleek and responsive Membership Tiers Component for your website? I’ve built a visually appealing and fully customizable pricing table that enhances user experience.&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%2Ffy1rn5qiwat3wnbedry7.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%2Ffy1rn5qiwat3wnbedry7.png" alt="Membership Tiers Component – Muhammad Kashif Pathan" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Features:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Fully responsive design&lt;/li&gt;
&lt;li&gt;✅ Hover effects for smooth interaction&lt;/li&gt;
&lt;li&gt;✅ Clean and structured code&lt;/li&gt;
&lt;li&gt;✅ Easy to customize&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗&lt;a href="https://muhammadkashifpathan.github.io/membership-tiers/" rel="noopener noreferrer"&gt;Live Preview&lt;/a&gt;&lt;br&gt;
📌 &lt;a href="https://github.com/muhammadkashifpathan/membership-tiers/" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 How would you improve this component? Drop your suggestions below! 👇&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ui</category>
      <category>webcomponents</category>
    </item>
    <item>
      <title>Build Your Own Image Search Engine with Unsplash API - Muhammad Kashif Pathan</title>
      <dc:creator>Muhammad Kashif Pathan</dc:creator>
      <pubDate>Wed, 26 Feb 2025 11:13:23 +0000</pubDate>
      <link>https://dev.to/muhammadkashifpathan/build-your-own-image-search-engine-with-unsplash-api-38g</link>
      <guid>https://dev.to/muhammadkashifpathan/build-your-own-image-search-engine-with-unsplash-api-38g</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Have you ever wanted to create your own image search engine? In this project, I built a simple yet powerful image search engine using &lt;strong&gt;HTML&lt;/strong&gt;, &lt;strong&gt;CSS&lt;/strong&gt;, &lt;strong&gt;JavaScript&lt;/strong&gt;, and the &lt;strong&gt;Unsplash API&lt;/strong&gt;. It allows users to search for high-quality images and load more results seamlessly. Let’s dive into the details!&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Search millions of images from Unsplash&lt;/li&gt;
&lt;li&gt;Fast &amp;amp; responsive UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show More&lt;/strong&gt; button to load extra results&lt;/li&gt;
&lt;li&gt;Works on both desktop &amp;amp; mobile&lt;/li&gt;
&lt;li&gt;Lightweight and easy to implement&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Live Demo
&lt;/h2&gt;

&lt;p&gt;You can check out the live version of this project here:&lt;br&gt;
🔗 &lt;a href="https://muhammadkashifpathan.github.io/image-search-engine/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;
&lt;h2&gt;
  
  
  1. Setting Up the HTML Structure
&lt;/h2&gt;

&lt;p&gt;First, I created a simple layout with an input field for search, a results section, and a &lt;strong&gt;Show More&lt;/strong&gt; button.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;

&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;Build a Stunning Image Search Engine Using Unsplash API in JavaScript! - Muhammad Kashif Pathan&amp;lt;/title&amp;gt;
    &amp;lt;link rel="stylesheet" href="style.css"&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
    &amp;lt;main&amp;gt;
        &amp;lt;div class="container"&amp;gt;
            &amp;lt;div class="hero"&amp;gt;
                &amp;lt;h1&amp;gt;Find the Perfect Image for Your Project&amp;lt;/h1&amp;gt;
                &amp;lt;p&amp;gt;Search millions of high-quality images powered by Unsplash. Just type your keyword and explore
                    stunning visuals in seconds!&amp;lt;/p&amp;gt;
                &amp;lt;form&amp;gt;
                    &amp;lt;input type="text" placeholder="Search for beautiful images..."&amp;gt;
                    &amp;lt;img src="search-icon.svg" alt="search-icon"&amp;gt;
                &amp;lt;/form&amp;gt;
                &amp;lt;p class="discover"&amp;gt;Discover breathtaking images for free. Start searching now!&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;

            &amp;lt;div class="search-result"&amp;gt;
                &amp;lt;div id="loader" class="loader"&amp;gt;&amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class="show-more"&amp;gt;
                &amp;lt;button class="show-more-btn"&amp;gt;Show More&amp;lt;/button&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/main&amp;gt;
    &amp;lt;footer&amp;gt;
        &amp;lt;p&amp;gt;Powered by Unsplash API | Developed by Muhammad Kashif Pathan&amp;lt;/p&amp;gt;
    &amp;lt;/footer&amp;gt;
    &amp;lt;script src="script.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Adding Styling with CSS
&lt;/h2&gt;

&lt;p&gt;For a clean and modern look, I styled the page using CSS. I also designed a dark theme-friendly scrollbar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
}

body {
    color: white;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    background-color: rgb(9, 9, 9);
}

main {
    width: 100%;
    height: calc(100vh - 52px);
    overflow: hidden auto;
    text-align: center;
    background-image: linear-gradient(rgba(0, 0, 0, 0.986), rgba(0, 0, 0, 0.936)),
        url("bg-img.jpeg");
    background-size: cover;
}

main::-webkit-scrollbar {
    width: 0;
}

.container .hero {
    background-image: linear-gradient(rgba(0, 0, 0, 0.968), rgba(0, 0, 0, 0.635)),
        url("coding.jpg");
    background-size: cover;

    padding: 20px;
    background-position: center;
    background-size: cover;
}

.hero h1 {
    margin-bottom: 20px;
    background-color: rgba(10, 198, 60, 0.1);
    border: 2px solid rgb(10, 198, 60);
    border-radius: 50px;
    padding: 10px 20px;
    font-size: 16px;
    display: inline-flex;
}

.hero p:nth-child(2) {
    margin: 20px auto;
}

.hero form {
    display: flex;
    border-radius: 5px;
    width: 100%;
    justify-content: center;
}

.hero form input {
    border: none;
    outline: none;
    border-radius: 10px 15px 15px 10px;
    padding: 10px;
    background-color: black;
    color: white;
    max-width: 500px;
    width: 100%;
    position: relative;
    left: 20px;
    font-size: 16px;
}

.hero form img {
    padding: 10px;
    cursor: pointer;
    border-radius: 50%;
    background-color: rgb(10, 198, 60);
    border: 5px solid rgb(24, 24, 24);
    position: relative;
    left: -20px;
    transition: all 0.8s linear;
}

.hero form img:hover {
    border: 5px solid rgb(10, 198, 60);
}

.hero .discover {
    margin: 20px auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
}

.show-more button {
    border: none;
    padding: 10px 20px;
    cursor: pointer;
    border-radius: 0 5px 5px 0;
    background-color: rgb(10, 198, 60);
    color: white;
    font-weight: 700;
    transition: background-color 0.3s ease;
}

.hero form button:hover,
.show-more button:hover {
    background-color: rgb(5, 158, 28);
}

.search-result {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 20px;
    padding: 20px;
}

.search-result a {
    width: calc(33.333% - 20px);
    max-width: 300px;
    background-color: transparent;
    border-radius: 5px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.search-result a img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    object-position: center;
    display: block;
}

.search-result a:hover {
    transform: scale(1.05);
}


.hide {
    display: none;
}

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #1e1e1e;
    border-radius: 10px; 
}

::-webkit-scrollbar-thumb {
    background: #555;
    border-radius: 10px; 
    transition: all 0.3s ease;
}

::-webkit-scrollbar-thumb:hover {
    background: #888;
}

::-webkit-scrollbar-thumb:active {
    background: #aaa;
}

* {
    scrollbar-width: thin;
    scrollbar-color: #555 #1e1e1e;
}

.loader {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50px;
    height: 50px;
    border: 6px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    z-index: 1000;
    background-color: transparent;
    display: none;
}

.loader {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50px;
    height: 50px;
    border: 6px solid rgba(255, 255, 255, 0.3);
    border-top-color: #3498db;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    display: none;
}

@keyframes spin {
    0% {
        transform: translate(-50%, -50%) rotate(0deg);
    }

    100% {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}


.show-more {
    display: flex;
    justify-content: center;
}

.show-more-btn {
    margin-top: 20px;
    padding: 10px 20px;
    border-radius: 5px;
    font-size: 14px;
    font-weight: 700;
    display: none;
}

footer p {
    font-size: 10px;
    color: gray;
    font-weight: 700;
    padding: 20px;
    height: 52px;
}

@media (max-width: 768px) {
    .search-result a {
        width: calc(50% - 10px);
    }
}

@media (max-width: 550px) {
    main {
        padding: 20px 0;
    }

    .container .hero {
        padding: 20px 10px;
    }

    .hero, .hero h1 {
        font-size: 12px;
    }

    .search-result {
        padding: 10px;
    }

    .search-result a {
        min-width: 100%;
    }

    .search-result a img {
        height: 250px;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Fetching Images from Unsplash API
&lt;/h2&gt;

&lt;p&gt;The main functionality is powered by &lt;strong&gt;JavaScript&lt;/strong&gt; and the &lt;strong&gt;Unsplash API&lt;/strong&gt;. Here’s how I handled image fetching and display:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const accessKey = "YOUR_UNSPLASH_ACCESS_KEY";

const form = document.querySelector("form");
const searchInp = document.querySelector("input");
const searchResult = document.querySelector(".search-result");
const showMoreBtn = document.querySelector(".show-more-btn");
const loader = document.getElementById("loader");
const discoverText = document.querySelector(".discover");

let keyword = "";
let page = 1;

// ✅ Function to fetch images
async function searchImages() {
    keyword = searchInp.value.trim();
    if (!keyword) return;

    // Show loader and clear previous results for a new search
    if (page === 1) {
        searchResult.innerHTML = "";
        discoverText.textContent = "";
        discoverText.style.display = "block";
    }

    loader.style.display = "block";

    const url = `https://api.unsplash.com/search/photos?page=${page}&amp;amp;query=${keyword}&amp;amp;client_id=${accessKey}&amp;amp;per_page=12`;

    try {
        const response = await fetch(url);
        if (!response.ok) throw new Error("Failed to fetch images");

        const data = await response.json();
        const results = data.results;

        if (results.length === 0) {
            discoverText.textContent = `No images found for "${keyword}". Try a different keyword.`;
            showMoreBtn.style.display = "none";
            loader.style.display = "none";
            return;
        }

        // Append new images
        results.forEach((result) =&amp;gt; {
            const image = document.createElement("img");
            image.src = result.urls.small;
            image.alt = result.alt_description || "Search result image";

            const imageLink = document.createElement("a");
            imageLink.href = result.links.html;
            imageLink.target = "_blank";

            imageLink.appendChild(image);
            searchResult.appendChild(imageLink);
        });

        discoverText.style.display = "none";

        showMoreBtn.style.display = results.length &amp;gt; 0 ? "block" : "none";
    } catch (error) {
        console.error("Error fetching images:", error);
        searchResult.innerHTML = `&amp;lt;p class="error-message"&amp;gt;Something went wrong. Please try again later.&amp;lt;/p&amp;gt;`;
    } finally {
        // Hide loader after fetching is complete
        setTimeout(() =&amp;gt; {
            loader.style.display = "none";
        }, 500);
    }
}

form.addEventListener("submit", (e) =&amp;gt; {
    e.preventDefault();
    page = 1;
    searchImages();
});

showMoreBtn.addEventListener("click", () =&amp;gt; {
    page++;
    searchImages();
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Here’s how the project looks:
&lt;/h3&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%2F9qoa71g74h19m8vuvk3w.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%2F9qoa71g74h19m8vuvk3w.png" alt="Final Project Screenshot" width="800" height="420"&gt;&lt;/a&gt;&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%2F3awjhm28ah8a8yhremkv.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%2F3awjhm28ah8a8yhremkv.png" alt="Final Project Screenshot With Search Result" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This project is a great way to practice working with APIs, handling asynchronous JavaScript, and creating a user-friendly UI. If you want to expand it, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add pagination for infinite scrolling&lt;/li&gt;
&lt;li&gt;Implement a light/dark mode switch&lt;/li&gt;
&lt;li&gt;Allow users to download images directly&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💡 What do you think?
&lt;/h2&gt;

&lt;p&gt;I’d love to hear your feedback! If you liked this project, feel free to like, comment, and follow me for more awesome content. 🚀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/muhammadkashifpathan/image-search-engine" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Developed by Muhammad Kashif Pathan&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔥 Ready to build your own image search engine? Let’s discuss in the comments below!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Built a Responsive Calculator with JavaScript by Muhammad Kashif Pathan</title>
      <dc:creator>Muhammad Kashif Pathan</dc:creator>
      <pubDate>Thu, 09 Jan 2025 11:48:56 +0000</pubDate>
      <link>https://dev.to/muhammadkashifpathan/built-a-responsive-calculator-with-javascript-by-muhammad-kashif-pathan-4ng6</link>
      <guid>https://dev.to/muhammadkashifpathan/built-a-responsive-calculator-with-javascript-by-muhammad-kashif-pathan-4ng6</guid>
      <description>&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%2Fdxr7m27l7mf3gua71din.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%2Fdxr7m27l7mf3gua71din.png" alt="Image description" width="314" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I recently developed a fully functional Calculator using HTML, CSS, and JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Clean and intuitive design&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supports basic arithmetic operations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Smooth button interactions and real-time output&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project helped me practice DOM manipulation and improve my UI/UX skills. Would love to hear your thoughts or suggestions for enhancements!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>Tic-Tac-Toe Game Using HTML, CSS, and JavaScript</title>
      <dc:creator>Muhammad Kashif Pathan</dc:creator>
      <pubDate>Tue, 07 Jan 2025 17:39:27 +0000</pubDate>
      <link>https://dev.to/muhammadkashifpathan/built-a-tic-tac-toe-game-using-javascript-1070</link>
      <guid>https://dev.to/muhammadkashifpathan/built-a-tic-tac-toe-game-using-javascript-1070</guid>
      <description>&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%2F4q0jxo4w9zupt35wthrd.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%2F4q0jxo4w9zupt35wthrd.png" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I recently built a simple Tic-Tac-Toe game as a fun project to practice game logic and interactivity with web technologies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Highlights:
&lt;/h3&gt;

&lt;p&gt;Clean, user-friendly design&lt;br&gt;
Two-player mode with real-time game state updates&lt;br&gt;
A dynamic message system that tracks the game winner or draw&lt;br&gt;
I’m always excited to learn from others. What similar projects have you worked on? Share your thoughts below!&lt;/p&gt;

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