<?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: Aryan Neupane</title>
    <description>The latest articles on DEV Community by Aryan Neupane (@aryanneupane).</description>
    <link>https://dev.to/aryanneupane</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%2F3047585%2F41946824-d19f-48de-a831-a405113a34d1.jpeg</url>
      <title>DEV Community: Aryan Neupane</title>
      <link>https://dev.to/aryanneupane</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aryanneupane"/>
    <language>en</language>
    <item>
      <title>🚀 Building StayEase: My Full-Stack Vacation Rental Platform (Node.js + MongoDB + Bootstrap)</title>
      <dc:creator>Aryan Neupane</dc:creator>
      <pubDate>Tue, 12 Aug 2025 01:33:20 +0000</pubDate>
      <link>https://dev.to/aryanneupane/building-stayease-my-full-stack-vacation-rental-platform-nodejs-mongodb-bootstrap-adb</link>
      <guid>https://dev.to/aryanneupane/building-stayease-my-full-stack-vacation-rental-platform-nodejs-mongodb-bootstrap-adb</guid>
      <description>&lt;p&gt;Hey folks! 👋 I’m excited to share my latest project — StayEase, a full-stack web application I built to streamline vacation rental bookings.&lt;br&gt;
It’s live here:&lt;a href="https://stayease-9sga.onrender.com/" rel="noopener noreferrer"&gt;https://stayease-9sga.onrender.com/&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌟 The Idea
&lt;/h2&gt;

&lt;p&gt;Booking vacation rentals online can feel overwhelming — multiple tabs, hidden fees, sketchy listings. I wanted to build something &lt;strong&gt;simple, clean, and trustworthy&lt;/strong&gt; for travelers and hosts alike.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;StayEase&lt;/strong&gt; is my take on that challenge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Guests&lt;/strong&gt; can discover, browse, and securely book vacation properties.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosts&lt;/strong&gt; can list their properties with rich details and images.&lt;/li&gt;
&lt;li&gt;Both sides enjoy a smooth, intuitive interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠️ Tech Stack
&lt;/h2&gt;

&lt;p&gt;I went with a &lt;strong&gt;Node.js + Express backend&lt;/strong&gt; and &lt;strong&gt;MongoDB Atlas&lt;/strong&gt; for cloud database hosting, paired with &lt;strong&gt;Bootstrap&lt;/strong&gt; for a clean, responsive UI.&lt;/p&gt;

&lt;p&gt;Here’s the full stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: EJS templates, Bootstrap 5, Vanilla JS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Node.js, Express.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database&lt;/strong&gt;: MongoDB Atlas (Mongoose ODM)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth &amp;amp; Security&lt;/strong&gt;: Passport.js, bcrypt, Helmet, express-session&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosting&lt;/strong&gt;: Render.com (backend) + MongoDB Atlas (database)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image Handling&lt;/strong&gt;: Cloudinary for image storage&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔑 Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📍 &lt;strong&gt;Listings Page&lt;/strong&gt; – Browse properties with images, descriptions, and locations.&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Create &amp;amp; Edit Listings&lt;/strong&gt; – Hosts can manage their properties easily.&lt;/li&gt;
&lt;li&gt;🔐 &lt;strong&gt;User Authentication&lt;/strong&gt; – Secure login/signup with encrypted passwords.&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Reviews &amp;amp; Ratings&lt;/strong&gt; – Guests can leave feedback on properties.&lt;/li&gt;
&lt;li&gt;🛡️ &lt;strong&gt;Secure Payments (Future Scope)&lt;/strong&gt; – Planned Stripe integration.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚙️ Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;views/        # EJS templates
routes/       # Express route handlers
models/       # Mongoose schemas
public/       # Static assets (CSS, JS, images)
app.js        # Main application entry point
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MVC Pattern&lt;/strong&gt; for organized separation of concerns&lt;/li&gt;
&lt;li&gt;Middleware for authentication, authorization, and error handling&lt;/li&gt;
&lt;li&gt;Modular route structure for scalability&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Deployment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Database&lt;/strong&gt;: Hosted on MongoDB Atlas for global accessibility&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Hosted on Render.com (free tier works great for dev/testing)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Environment Variables&lt;/strong&gt;: Managed securely with &lt;code&gt;.env&lt;/code&gt; files (never committed to git!)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 Lessons Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;UI consistency matters&lt;/strong&gt; — aligning all pages to a unified Bootstrap theme makes a &lt;em&gt;huge&lt;/em&gt; difference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud database setup&lt;/strong&gt; — MongoDB Atlas made deployments painless compared to local DB hosting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security early on&lt;/strong&gt; — Helmet + session management from day one saved me from late-stage headaches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep routes clean&lt;/strong&gt; — splitting routes by resource type (&lt;code&gt;listings.js&lt;/code&gt;, &lt;code&gt;users.js&lt;/code&gt;) keeps the codebase readable.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Search &amp;amp; Filter&lt;/strong&gt; — Make it easier to find properties by location, price, amenities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payments Integration&lt;/strong&gt; — Stripe or PayPal for seamless bookings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Dashboard&lt;/strong&gt; — Personalized area for bookings, favorites, and hosting tools.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;StayEase was a fun challenge that helped me sharpen my &lt;strong&gt;full-stack development skills&lt;/strong&gt; — from database design to deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out the repo here:&lt;/strong&gt; &lt;a href="https://github.com/AryanNeupane/StayEase" rel="noopener noreferrer"&gt;https://github.com/AryanNeupane/StayEase&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://stayease-9sga.onrender.com/" rel="noopener noreferrer"&gt;https://stayease-9sga.onrender.com/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;💬 What do you think? I’d love your feedback on the UI, features, or any ideas for improvements!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Express v5 Error: “Missing parameter name at position 1” — Caused by * in Routes</title>
      <dc:creator>Aryan Neupane</dc:creator>
      <pubDate>Sun, 20 Jul 2025 12:19:37 +0000</pubDate>
      <link>https://dev.to/aryanneupane/express-v5-error-missing-parameter-name-at-position-1-caused-by-in-routes-50d4</link>
      <guid>https://dev.to/aryanneupane/express-v5-error-missing-parameter-name-at-position-1-caused-by-in-routes-50d4</guid>
      <description>&lt;p&gt;While upgrading a Node.js project from Express v4 to v5, I encountered a confusing error that looked something like this:&lt;/p&gt;

&lt;p&gt;At first, I thought it was something deep in the code, but after narrowing it down, the issue came from this familiar catch-all route:&lt;/p&gt;

&lt;p&gt;js&lt;br&gt;
// Express v4&lt;br&gt;
&lt;code&gt;app.all("*", (req, res) =&amp;gt; {&lt;br&gt;
  res.send("Not Found");&lt;br&gt;
});&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Turns out, Express v5 introduced a breaking change to how route paths are matched using path-to-regexp.&lt;/p&gt;

&lt;p&gt;🧨 The Problem&lt;br&gt;
In Express v5, wildcards must now be named. That means * alone is no longer valid.&lt;br&gt;
Using /* or "*" without a name causes the following internal error:&lt;br&gt;
Missing parameter name at position X&lt;br&gt;
(comes from path-to-regexp used internally by Express) &lt;br&gt;
✅ The Fix&lt;br&gt;
To fix this, you need to name the wildcard route like so:&lt;br&gt;
// Updated for Express v5&lt;br&gt;
&lt;code&gt;app.all("/*splat", (req, res) =&amp;gt; {&lt;br&gt;
  res.send("Not Found");&lt;br&gt;
});&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Or to catch root path / as well:&lt;br&gt;
&lt;code&gt;app.all("/{*splat}", (req, res) =&amp;gt; {&lt;br&gt;
  res.send("Not Found");&lt;br&gt;
});&lt;/code&gt;&lt;br&gt;
📌 What Changed?&lt;br&gt;
In Express v5, the path-to-regexp matching syntax was updated. Wildcards like * must now follow the same naming rule as :param. So use /*splat or /{*splat} instead of plain *.&lt;/p&gt;

&lt;p&gt;You can read the official explanation here:&lt;br&gt;
👉 Express v5 Migration Guide&lt;/p&gt;

&lt;p&gt;🧠 Lesson Learned&lt;br&gt;
Don’t assume that old catch-all routes will still work in Express 5. If you see weird path matching errors, always check for named wildcards. 💬 Your Turn&lt;br&gt;
If you’ve run into a similar “wait, why is this broken?” moment while upgrading dependencies, share it below! Let's save others the headache.&lt;/p&gt;

&lt;p&gt;📌 The Official Reason&lt;br&gt;
“The wildcard * must have a name, matching the behavior of parameters :. Use /&lt;em&gt;splat instead of /&lt;/em&gt;.”&lt;br&gt;
&lt;a href="https://expressjs.com/en/guide/migrating-5.html#path-syntax" rel="noopener noreferrer"&gt;https://expressjs.com/en/guide/migrating-5.html#path-syntax&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧠 My Takeaway&lt;br&gt;
Even a small syntax like "*" can lead to a confusing stack trace when libraries upgrade. Always check migration guides for subtle changes like this.&lt;/p&gt;

&lt;p&gt;💬 Your Turn&lt;br&gt;
If you’ve run into a similar “wait, why is this broken?” moment while upgrading dependencies, share it below! Let's save others the headache.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>express</category>
      <category>node</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How I Built My First Employee Management System in React Without a Backend 🚀</title>
      <dc:creator>Aryan Neupane</dc:creator>
      <pubDate>Sat, 26 Apr 2025 08:34:22 +0000</pubDate>
      <link>https://dev.to/aryanneupane/how-i-built-my-first-employee-management-system-in-react-without-a-backend-5bfk</link>
      <guid>https://dev.to/aryanneupane/how-i-built-my-first-employee-management-system-in-react-without-a-backend-5bfk</guid>
      <description>&lt;p&gt;Hello developers! 👋&lt;br&gt;
I’m Aryan Neupane, currently on a mission to become a full-time cross-platform app developer in 6 months.&lt;br&gt;
Today, I’m super excited to share my journey of building my first full Employee Management System (EMS) — entirely using React, Context API, and LocalStorage (without a real backend!).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/AryanNeupane/Employee-Management-System.git" rel="noopener noreferrer"&gt;https://github.com/AryanNeupane/Employee-Management-System.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🛠️ The Motivation&lt;br&gt;
When I started learning React, I wanted to challenge myself by building something more than just a To-Do list or simple app.&lt;br&gt;
That’s how the idea of creating an Employee Management System came in — a system that handles user login, role-based dashboards, and task management.&lt;/p&gt;

&lt;p&gt;⚙️ What I Built&lt;br&gt;
Authentication Simulation:&lt;/p&gt;

&lt;p&gt;Separate login for Admin and Employees.&lt;/p&gt;

&lt;p&gt;Handled using React's Context API and stored session info in LocalStorage.&lt;/p&gt;

&lt;p&gt;Separate Dashboards:&lt;/p&gt;

&lt;p&gt;Admins can manage employees and assign tasks.&lt;/p&gt;

&lt;p&gt;Employees can view their assigned tasks.&lt;/p&gt;

&lt;p&gt;Task Management:&lt;/p&gt;

&lt;p&gt;Create, view, assign, and delete tasks.&lt;/p&gt;

&lt;p&gt;Data persists across browser reloads via LocalStorage.&lt;/p&gt;

&lt;p&gt;State Management:&lt;/p&gt;

&lt;p&gt;Created AuthContext for authentication state.&lt;/p&gt;

&lt;p&gt;Created TaskContext for managing tasks.&lt;/p&gt;

&lt;p&gt;🛠 Tech Stack Used&lt;br&gt;
ReactJS&lt;/p&gt;

&lt;p&gt;Context API&lt;/p&gt;

&lt;p&gt;JavaScript (ES6)&lt;/p&gt;

&lt;p&gt;HTML5/CSS3&lt;/p&gt;

&lt;p&gt;LocalStorage (for simulating backend persistence)&lt;/p&gt;

&lt;p&gt;🧠 Key Learnings&lt;br&gt;
Handling authentication flows without using libraries like Firebase.&lt;/p&gt;

&lt;p&gt;Managing state globally with Context API.&lt;/p&gt;

&lt;p&gt;Structuring bigger React apps into separate components and contexts.&lt;/p&gt;

&lt;p&gt;Working with LocalStorage to save and retrieve data dynamically.&lt;/p&gt;

&lt;p&gt;📈 Challenges Faced&lt;br&gt;
Managing who is logged in and redirecting to the right dashboard.&lt;/p&gt;

&lt;p&gt;Persisting tasks separately for employees and admins.&lt;/p&gt;

&lt;p&gt;Structuring state between multiple Context Providers.&lt;/p&gt;

&lt;p&gt;But overcoming these made me much stronger with React fundamentals! 🚀&lt;/p&gt;

&lt;p&gt;🔥 What’s Next?&lt;br&gt;
Learn and build apps in React Native (mobile app development!)&lt;/p&gt;

&lt;p&gt;Connect future projects to real databases (e.g., Firebase, Supabase).&lt;/p&gt;

&lt;p&gt;Keep building my portfolio with real-world projects!&lt;/p&gt;

&lt;p&gt;📢 Final Words&lt;br&gt;
If you're just starting out in web or app development,&lt;br&gt;
I highly recommend you try building a real system like this early on.&lt;br&gt;
It teaches you authentication, state management, and thinking like a full-stack developer — even without a backend!&lt;/p&gt;

&lt;p&gt;Thanks for reading! 🙌&lt;br&gt;
If you want to follow my journey, feel free to connect with me here or on LinkedIn.&lt;br&gt;
Let’s keep building together! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>reactnative</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I Built My First Weather App Using React &amp; OpenWeatherMap API — A Beginner’s Experience</title>
      <dc:creator>Aryan Neupane</dc:creator>
      <pubDate>Tue, 22 Apr 2025 19:10:24 +0000</pubDate>
      <link>https://dev.to/aryanneupane/i-built-my-first-weather-app-using-react-openweathermap-api-a-beginners-experience-29ic</link>
      <guid>https://dev.to/aryanneupane/i-built-my-first-weather-app-using-react-openweathermap-api-a-beginners-experience-29ic</guid>
      <description>&lt;h1&gt;
  
  
  I Built My First Weather App Using React &amp;amp; OpenWeatherMap API — A Beginner’s Experience
&lt;/h1&gt;

&lt;p&gt;Hi Devs 👋&lt;br&gt;&lt;br&gt;
I'm Aryan Neupane, and I recently started my 6-month journey to become a full-time cross-platform app developer. I’ve been sharing my learning in public, and today I’m excited to share my experience building a &lt;strong&gt;weather app&lt;/strong&gt; using &lt;strong&gt;React&lt;/strong&gt; and the &lt;strong&gt;OpenWeatherMap API&lt;/strong&gt;.&lt;br&gt;
This was my first time working with APIs — and wow, it felt like leveling up!&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 What I Wanted to Learn
&lt;/h2&gt;

&lt;p&gt;I didn’t just want to follow a tutorial and copy-paste code. My goal was to &lt;strong&gt;understand how to build a real-world feature&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Here’s what I focused on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Making a city-based weather search&lt;/li&gt;
&lt;li&gt;Using an external API (OpenWeatherMap)&lt;/li&gt;
&lt;li&gt;Handling user input&lt;/li&gt;
&lt;li&gt;Managing states in React&lt;/li&gt;
&lt;li&gt;Dealing with errors (like invalid cities)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚙️ How the App Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The user types a city name&lt;/li&gt;
&lt;li&gt;When they click “Get Weather”, the app fetches data from the OpenWeatherMap API&lt;/li&gt;
&lt;li&gt;It displays temperature, weather condition, and location&lt;/li&gt;
&lt;li&gt;If something goes wrong (like an empty or wrong input), the app shows a friendly error message&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  📚 What I Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React Hooks&lt;/strong&gt; — especially &lt;code&gt;useState&lt;/code&gt; and &lt;code&gt;useEffect&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How to fetch data&lt;/strong&gt; using the &lt;code&gt;fetch()&lt;/code&gt; API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Basic async/await concepts&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conditionally rendering&lt;/strong&gt; based on loading/error state&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reading API docs&lt;/strong&gt; and making sense of JSON&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was also my first time feeling like I was “talking to the internet” through APIs — and it was kind of magical 😄&lt;/p&gt;

&lt;h2&gt;
  
  
  🖥️ Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React (with Vite)&lt;/li&gt;
&lt;li&gt;OpenWeatherMap API&lt;/li&gt;
&lt;li&gt;Basic CSS
## GitHub&lt;/li&gt;
&lt;li&gt;🧑‍💻 GitHub Repo: &lt;a href="https://github.com/AryanNeupane/React-Weather-App.git" rel="noopener noreferrer"&gt;https://github.com/AryanNeupane/React-Weather-App.git&lt;/a&gt;
## live on : &lt;a href="https://react-weather-app-aryanneupanes-projects.vercel.app/" rel="noopener noreferrer"&gt;https://react-weather-app-aryanneupanes-projects.vercel.app/&lt;/a&gt;
## 🧠 Final Thoughts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This might be a small project, but it taught me how to bring &lt;strong&gt;dynamic data&lt;/strong&gt; into my app and make it &lt;strong&gt;interactive&lt;/strong&gt; for users. I feel way more confident now to try APIs and build real apps.&lt;/p&gt;

&lt;p&gt;If you're just starting out — trust me — it’s okay to feel confused at first. But once you see that weather data show up after your first fetch request... you’ll feel unstoppable.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧵 Follow My Journey
&lt;/h2&gt;

&lt;p&gt;I'm learning in public every day!&lt;br&gt;&lt;br&gt;
Come say hi on [X] &lt;a href="https://x.com/AryanNe2060" rel="noopener noreferrer"&gt;https://x.com/AryanNe2060&lt;/a&gt; or&lt;br&gt;
 [LinkedIn] &lt;a href="https://www.linkedin.com/in/aryanneupane/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/aryanneupane/&lt;/a&gt; 😊&lt;br&gt;&lt;br&gt;
And feel free to share your projects with me too!&lt;/p&gt;

&lt;h1&gt;
  
  
  React #100DaysOfCode #BeginnerDev #APIs #OpenWeatherMap #LearningInPublic #WebDev
&lt;/h1&gt;

</description>
      <category>reactnative</category>
      <category>react</category>
      <category>mobile</category>
      <category>programming</category>
    </item>
    <item>
      <title>I Built My First React App: A Beginner's Walkthrough of a Simple To-Do App.</title>
      <dc:creator>Aryan Neupane</dc:creator>
      <pubDate>Fri, 18 Apr 2025 17:26:56 +0000</pubDate>
      <link>https://dev.to/aryanneupane/i-built-my-first-react-app-a-beginners-walkthrough-of-a-simple-to-do-app-208c</link>
      <guid>https://dev.to/aryanneupane/i-built-my-first-react-app-a-beginners-walkthrough-of-a-simple-to-do-app-208c</guid>
      <description>&lt;p&gt;Hey everyone!&lt;br&gt;
I'm currently on a 6-month journey to become a job-ready cross-platform app developer. I'm learning in public and sharing everything I build.&lt;/p&gt;

&lt;p&gt;Today, I want to share my first React app — a simple To-Do List — and walk you through what I learned as a complete beginner.&lt;/p&gt;

&lt;p&gt;⚙️ What I Used&lt;br&gt;
React (with Vite)&lt;br&gt;
JSX for templating&lt;br&gt;
useState for handling state&lt;br&gt;
Basic HTML/CSS&lt;br&gt;
Visual Studio Code&lt;br&gt;
Git + GitHub for version control&lt;/p&gt;

&lt;p&gt;📚 Key Concepts I Learned&lt;br&gt;
JSX: How HTML works inside JS&lt;br&gt;
Components: Reusable building blocks&lt;br&gt;
State with useState(): To store &amp;amp; update task lists&lt;br&gt;
Event Handling: Buttons, inputs, and how React responds to user actions&lt;br&gt;
Rendering Lists: Using .map() to display tasks dynamically&lt;br&gt;
Conditional Rendering: Show/hide things based on logic&lt;/p&gt;

&lt;p&gt;Hers &lt;br&gt;
💻 How the App Works&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User enters a task in the input field&lt;/li&gt;
&lt;li&gt;Clicks “Add” to add it to the list&lt;/li&gt;
&lt;li&gt;Can remove tasks by clicking “Delete”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🧠 What I Struggled With&lt;br&gt;
Updating state immutably at first felt weird&lt;br&gt;
Remembering when to use event.target.value&lt;br&gt;
Keeping the code DRY (not repeating logic)&lt;br&gt;
But figuring these things out is what made it fun!&lt;/p&gt;

&lt;p&gt;Here's my GitHub link : &lt;a href="https://github.com/AryanNeupane/React-Todo-app" rel="noopener noreferrer"&gt;https://github.com/AryanNeupane/React-Todo-app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 What’s Next?&lt;br&gt;
Next up: diving into React Router, APIs, and then heading into React Native to start building mobile apps!&lt;/p&gt;

&lt;p&gt;🙌 Final Thoughts&lt;br&gt;
If you're also starting out with React, I hope this blog gives you a real idea of how it feels to build your first project. It's challenging but totally doable if you stick to it.&lt;/p&gt;

&lt;p&gt;Let’s keep building and learning together!&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
      <category>learning</category>
      <category>code</category>
    </item>
  </channel>
</rss>
