Excited to share my latest project — a full-featured Weather App built with React! This project helped me deepen my understanding of browser APIs, async data fetching, and clean UI design. 🛠️ Built with: • React & Bootstrap 5 • Open-Meteo & Nominatim APIs • Geolocation API 🌟 Key Features: • City search with debounced input • Current location detection • Hourly & 7-day forecasts • Sunrise/sunset, UV index, wind & pressure data 🔗 Live: https://lnkd.in/gBYT_8HZ 💻 Code: https://lnkd.in/g5AcZG-r Feedback is always welcome — happy to connect with fellow developers! #React #JavaScript #WebDev #Frontend #Programming
React Weather App with Open-Meteo API
More Relevant Posts
-
🚀 Understanding Conditional Rendering in React — Simplified! In real-world apps, UI is rarely static. 👉 Show loading 👉 Hide elements 👉 Display data conditionally That’s where Conditional Rendering comes in. 💡 What is Conditional Rendering? It allows you to render UI based on conditions. 👉 Just like JavaScript conditions—but inside JSX ⚙️ Common Ways to Do It 🔹 1. if/else (outside JSX) if (isLoggedIn) { return <Dashboard />; } else { return <Login />; } 🔹 2. Ternary Operator return isLoggedIn ? <Dashboard /> : <Login />; 🔹 3. Logical AND (&&) {isLoggedIn && <Dashboard />} 👉 Renders only if condition is true 🔹 4. Multiple Conditions {status === "loading" && <Loader />} {status === "error" && <Error />} {status === "success" && <Data />} 🧠 Real-world use cases ✔ Authentication (Login / Dashboard) ✔ Loading states ✔ Error handling ✔ Feature toggles ✔ Dynamic UI 🔥 Best Practices (Most developers miss this!) ✅ Use ternary for simple conditions ✅ Use && for single-condition rendering ✅ Keep JSX clean and readable ❌ Avoid deeply nested ternaries ❌ Don’t mix too many conditions in one place ⚠️ Common Mistake // ❌ Hard to read return isLoggedIn ? isAdmin ? <AdminPanel /> : <UserPanel /> : <Login />; 👉 Extract logic instead 💬 Pro Insight Conditional rendering is not just about showing UI— 👉 It’s about controlling user experience dynamically 📌 Save this post & follow for more deep frontend insights! 📅 Day 10/100 #ReactJS #FrontendDevelopment #JavaScript #WebDevelopment #ReactHooks #SoftwareEngineering #100DaysOfCode 🚀
To view or add a comment, sign in
-
-
After working on state, routing, and UI in earlier projects, I wanted to build something that depends on external data and real-time updates 🌍 Built a Weather App where you can search any city and get current conditions in a clean, responsive UI 🌦️ What this added for me 1. Working with API data instead of static state 2. Handling loading and error states properly 3. Keeping the UI clear even when data changes dynamically 📱 Stack: React, Vite, Tailwind CSS, Vercel 🔗 Live: https://lnkd.in/gZGcnUFS 💻 Code: https://lnkd.in/gasfj-vK Still building and improving, open to feedback or connections 👍 #React #JavaScript #FrontendDevelopment #WebDevelopment #BuildInPublic #LearningInPublic #API #Vite #TailwindCSS #DevCommunity #TechCareers #SoftwareDevelopment Error Makes Clever
To view or add a comment, sign in
-
-
I just started a deep dive into React and came across how it uses snapshots to re-render the view, by strictly comparing references of the old state copy in memory to the newer one. That immediately triggered a question: When we do so many state updates in a large production app, we are essentially creating so many snapshots in memory that will most likely never be used again. What happens to all this garbage sitting in memory? There must be massive leaks everywhere, right? Short answer: No. Long answer: Here's why. Every state update creates a new snapshot in memory. The old one loses all references pointing to it. JavaScript's Garbage Collector sees this and frees it automatically. GC's only rule → if nothing points to it, it's gone. 🧹 Real leaks in React come from YOU accidentally holding references outside React's control: ❌ Pushing state into an array that lives outside the component ❌ Adding event listeners without removing them ❌ setInterval running after the component unmounts In all these cases GC sees "something still points here" and leaves it alone, forever. useEffect cleanup exists for exactly this reason: return () => window.removeEventListener("resize", handler); One line. Prevents an entire class of memory leaks. React is not the problem. Uncleaned side effects are. #React #JavaScript #Frontend #SoftwareEngineering #WebDev
To view or add a comment, sign in
-
I launched Weather Dashboard 🌤️, an interactive web application designed to display weather data in a fast, clear, and user-friendly way. The project was built using React + TypeScript + Vite, with WeatherAPI for real-time data fetching. The application allows users to search for any city with instant suggestions, or select a location directly from the map to get weather data based on coordinates. It provides current weather conditions, hourly forecasts, and a 7-day forecast, along with detailed information such as temperature, rain probability, wind speed, humidity, pressure, visibility, and sunrise/sunset times. It also includes interactive charts 📊 to visualize temperature trends, rain intensity, and wind speed, making the data easier to understand at a glance. The goal of this project was to build a clean, structured, and efficient interface that delivers a smooth and intuitive user experience. 🔗 Live Demo (Vercel): [https://lnkd.in/deuUKU8v] #ReactJS #TypeScript #FrontendDevelopment #Vite #WeatherApp #JavaScript #UIUX #APIs #FrontendEngineer
To view or add a comment, sign in
-
Organizing React apps by file type is a trap. We’ve all done it. At the start of a project, we create: 📁 /components 📁 /hooks 📁 /services It feels clean and logical. But a few months later, when you need to update something like the User Profile, it turns into a scavenger hunt: • /components → to find the Avatar •/hooks → to locate useUser •/services → for API calls •/store → for state management Instead of building features, you’re navigating folders. 🚀 The shift: Feature-Based Architecture Structure your code by what it does, not by what it is. 📁 /features/auth 📁 /features/profile 📁 /features/billing Each feature becomes a self-contained unit: • UI • Business logic • API interactions • State 📍 Locality All related code lives in one place — faster development, less context switching. 🔒 Isolation Clear boundaries reduce coupling and prevent unintended side effects. 🧹 The “Delete Test” Removing a feature is as simple as deleting one folder — no leftovers. It transforms your codebase from a collection of scattered files into a system of modular, scalable features. Good architecture reflects the business domain, not just the technology stack. Curious to hear your thoughts — Do you still prefer /components-based structures, or have you moved to feature-based design? 👇 #ReactJS #SoftwareEngineering #CleanArchitecture #Frontend #WebDevelopment
To view or add a comment, sign in
-
-
Most React performance problems don’t come from re-renders. They come from creating new identities every render. This is something I completely overlooked for years. --- Example 👇 const options = { headers: { Authorization: token } }; useEffect(() => { fetchData(options); }, [options]); Looks harmless. But this runs on every render. Why? Because "options" is a new object every time → new reference → dependency changes → effect runs again. --- Now imagine this in a real app: - API calls firing multiple times - WebSocket reconnecting randomly - Expensive logic running again and again All because of reference inequality, not value change. --- The fix is simple, but rarely discussed 👇 const options = useMemo(() => ({ headers: { Authorization: token } }), [token]); Now the reference is stable. The effect runs only when it should. --- This doesn’t just apply to objects: - Functions → recreated every render - Arrays → new reference every time - Inline props → can break memoization --- The deeper lesson: React doesn’t compare values. It compares references. --- Since I understood this, my debugging approach changed completely. Whenever something runs “unexpectedly”, I ask: 👉 “Did the reference change?” --- This is one of those small concepts… that silently causes big production issues. --- Curious — have you ever debugged something like this? #ReactJS #Frontend #JavaScript #WebDevelopment #Performance
To view or add a comment, sign in
-
Most React devs know when to use useLayoutEffect. Almost none can explain why it behaves differently. The answer lives inside the commit phase. React's update cycle has two big stages: render (reconcile, diff, no DOM writes) and commit (apply changes, run effects). Commit itself splits into 3 sub-phases: → Before Mutation — read DOM snapshots before anything changes → Mutation — insert, update, remove DOM nodes → Layout — refs attached, useLayoutEffect fires here, synchronously useEffect never runs in the Layout pass. During reconciliation, React builds an Effect List — fiber nodes tagged with pending work. Fibers marked HookLayout flush during the Layout sub-phase. Fibers marked HookPassive get handed to the scheduler and run after the browser paints. React docs put it directly: "React guarantees that the code inside useLayoutEffect and any state updates scheduled inside it will be processed before the browser repaints the screen." Classic case where this matters: tooltip positioning. With useEffect, users catch a flicker — the tooltip renders in the wrong spot, then jumps. With useLayoutEffect, both renders complete before any pixel changes on screen. The tradeoff: useLayoutEffect blocks paint. Use it only when you need to measure or mutate the DOM before the user sees the frame. Data fetching, subscriptions, analytics — those belong in useEffect. One gotcha: useLayoutEffect is a no-op in SSR. React will warn you. Guard with typeof window !== 'undefined' or default to useEffect in universal code. #frontend #reactjs #javascript #typescript #frontenddevelopment #softwareengineering #webdevelopment
To view or add a comment, sign in
-
-
I Just built and deployed a Weather App 🌤️ This project helped me understand how to work with APIs and handle real-time data using JavaScript… Features include: • Search weather by city • Real-time temperature and conditions • Weather icons • Clean and responsive UI (though basic) Try it here: 👉 https://lnkd.in/ea_SveTQ View code: 👉 https://lnkd.in/ervqjNiN More projects coming — currently building and improving daily 🚀 #FrontendDeveloper #JavaScript #WebDevelopment #BuildInPublic
To view or add a comment, sign in
-
🚀 Intersection Observer in React — Boost Performance Without Scroll Events Handling scroll-based features in React can get messy… 👉 Scroll listeners = heavy + inefficient ⚠️ That’s where Intersection Observer comes in 👇 🧩 What is Intersection Observer? 👉 A browser API that detects when an element enters or leaves the viewport ✔ No manual scroll tracking ✔ Better performance ✔ Runs asynchronously ⚙️ How It Works 1️⃣ You select a target element 2️⃣ Browser observes its visibility 3️⃣ When it enters/leaves viewport → callback triggers 👉 No continuous scroll events needed ⚡ Why It Matters ✔ Reduces unnecessary re-renders ✔ Improves performance ✔ Cleaner implementation 🔥 Real Use Cases ✔ Lazy loading images ✔ Infinite scrolling ✔ Scroll-based animations ✔ Ad visibility tracking ✔ Reading progress bars 💻 Simple React Example import { useEffect, useRef, useState } from "react"; function useInView(options = {}) { const ref = useRef(null); const [inView, setInView] = useState(false); useEffect(() => { const observer = new IntersectionObserver(([entry]) => { setInView(entry.isIntersecting); }, options); if (ref.current) observer.observe(ref.current); return () => observer.disconnect(); }, [options]); return [ref, inView]; } 🧠 Important Options ✔ `root` → viewport/container ✔ `rootMargin` → margin around viewport ✔ `threshold` → visibility percentage ⚠️ Best Practices ✔ Avoid observing too many elements ✔ Disconnect observer when not needed ✔ Use proper threshold for performance 🧠 Simple Way to Understand • Scroll event → checks continuously ❌ • Intersection Observer → triggers only when needed ✅ 🔥 Takeaway 👉 Observe visibility, not scroll 👉 Build faster & smarter React apps 💬 Have you used Intersection Observer in your projects? #React #Frontend #WebPerformance #JavaScript #WebDevelopment #Optimization #Coding #SoftwareEngineering
To view or add a comment, sign in
-
-
The React Hook "Periodic Table": From Basics to Performance ⚛️ If you want to write clean, professional React code in 2025, you need more than just useState. While useState is the heart of your component, these 7 hooks form the complete toolkit for building scalable, high-performance apps. Here is the breakdown: 🌟 The Core Essentials 1️⃣ useState: The bread and butter. Manages local state (toggles, form inputs, counters). 2️⃣ useEffect: The "Swiss Army Knife." Handles side effects like API calls, subscriptions, and DOM updates. 3️⃣ useContext: The prop-drilling killer. Shares global data (themes, user auth) across your entire app without passing props manually. ⚡ The Performance Boosters 4️⃣ useMemo: Caches expensive calculations. Don't re-run that heavy data filtering unless your dependencies actually change! 5️⃣ useCallback: Memoizes functions. Perfect for preventing unnecessary re-renders in child components that rely on callback props. 🛠️ The Power Tools 6️⃣ useRef: The "Persistent Finger." Accesses DOM elements directly (like auto-focusing an input) or stores values that persist without triggering a re-render. 7️⃣ useReducer: The "Traffic Cop." Best for complex state logic where multiple sub-values change together. If your useState logic is getting messy, this is your solution. 💡 Pro-Tip : Keep an eye on React 19 hooks like useOptimistic (for instant UI updates) and useFormStatus (to simplify form loading states). The ecosystem is moving fast! Which hook do you find yourself reaching for the most lately? Is there a custom hook you’ve built that you now use in every project? 👇 #ReactJS #WebDevelopment #Frontend #CodingTips #Javascript #SoftwareEngineering #ReactHooks #WebDev2025
To view or add a comment, sign in
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development