Build Library Management System Using React, Shadcn/ui, Supabase, Tanstack Query(React Query)🚀 11+ hours of video content⚡️ What you will learn: ✅ How to build an application from scratch in a step-by-step way ✅ How to work with Supabase from scratch ✅ How to 𝘀𝗲𝗮𝗿𝗰𝗵 𝘁𝗵𝗿𝗼𝘂𝗴𝗵 𝗦𝘂𝗽𝗮𝗯𝗮𝘀𝗲 𝗱𝗼𝗰𝘂𝗺𝗲𝗻𝘁𝗮𝘁𝗶𝗼𝗻 to implement anything you need ✅ How to create better folder and file structure to better organize code ✅ How to easily implement a 𝗱𝗮𝘁𝗮 𝗴𝗿𝗶𝗱 𝘄𝗶𝘁𝗵 𝗽𝗮𝗴𝗶𝗻𝗮𝘁𝗶𝗼𝗻, 𝗳𝗶𝗹𝘁𝗲𝗿𝗶𝗻𝗴, 𝗮𝗻𝗱 𝘀𝗼𝗿𝘁𝗶𝗻𝗴 𝗳𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝗮𝗹𝗶𝘁𝘆 ✅ How to work with 𝗧𝗮𝗻𝘀𝘁𝗮𝗰𝗸 𝗤𝘂𝗲𝗿𝘆 (𝗥𝗲𝗮𝗰𝘁 𝗤𝘂𝗲𝗿𝘆) & 𝗦𝗵𝗮𝗱𝗰𝗻/𝘂𝗶 from scratch ✅ How to write better code using 𝗰𝘂𝘀𝘁𝗼𝗺 𝗵𝗼𝗼𝗸𝘀 ✅ How to add a 𝘀𝗸𝗲𝗹𝗲𝘁𝗼𝗻 𝗹𝗼𝗮𝗱𝗶𝗻𝗴 𝗲𝗳𝗳𝗲𝗰𝘁 while loading the image ✅ How to quickly implement 𝗟𝗼𝗴𝗶𝗻, 𝗥𝗲𝘀𝗲𝘁 𝗣𝗮𝘀𝘀𝘄𝗼𝗿𝗱, 𝗘𝗺𝗮𝗶𝗹 𝗦𝗲𝗻𝗱𝗶𝗻𝗴 functionality Using Supabase ✅ How to create dynamic custom modals without re-writing the same code again ✅ How to 𝗯𝘂𝗶𝗹𝗱 𝗰𝗵𝗮𝗿𝘁𝘀 from scratch ✅ How to 𝘂𝗽𝗹𝗼𝗮𝗱 𝗶𝗺𝗮𝗴𝗲𝘀 𝘁𝗼 𝗦𝘂𝗽𝗮𝗯𝗮𝘀𝗲 ✅ How to 𝗯𝘂𝗶𝗹𝗱 𝗿𝗲𝘀𝗽𝗼𝗻𝘀𝗶𝘃𝗲 𝗮𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 using Tailwind CSS ✅ Various tips, tricks and better coding practices ✅ And the most important thing - 𝗛𝗼𝘄 𝘁𝗼 𝗱𝗲𝗽𝗹𝗼𝘆 𝘁𝗵𝗲 𝗮𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝘁𝗼 𝗽𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝘀𝘁𝗲𝗽-𝗯𝘆-𝘀𝘁𝗲𝗽 𝗖𝗵𝗲𝗰𝗸 𝗼𝘂𝘁 𝘁𝗵𝗲 𝗙𝗥𝗘𝗘 𝗽𝗿𝗲𝘃𝗶𝗲𝘄 𝘃𝗶𝗱𝗲𝗼𝘀 𝗼𝗻 𝘁𝗵𝗲 𝗰𝗼𝘂𝗿𝘀𝗲 𝗽𝗮𝗴𝗲. 𝗣𝗦: 𝗗𝗼𝗻'𝘁 𝗳𝗼𝗿𝗴𝗲𝘁 𝘁𝗼 𝗰𝗵𝗲𝗰𝗸 𝗼𝘂𝘁 𝘁𝗵𝗲 𝗺𝗮𝘀𝘀𝗶𝘃𝗲 𝗼𝗳𝗳𝗲𝗿 𝗼𝗳 𝟵𝟯% 𝗱𝗶𝘀𝗰𝗼𝘂𝗻𝘁 𝗼𝗻 𝘁𝗵𝗲 𝗣𝗿𝗼 / 𝗟𝗶𝗳𝗲𝘁𝗶𝗺𝗲 𝗦𝘂𝗯𝘀𝗰𝗿𝗶𝗽𝘁𝗶𝗼𝗻. 𝗟𝗶𝗻𝗸 𝗶𝗻 𝘁𝗵𝗲 𝗰𝗼𝗺𝗺𝗲𝗻𝘁 𝗮𝗻𝗱 𝗶𝗻 𝘁𝗵𝗲 𝗳𝗲𝗮𝘁𝘂𝗿𝗲𝗱 𝘀𝗲𝗰𝘁𝗶𝗼𝗻 𝗼𝗳 𝗺𝘆 𝗟𝗶𝗻𝗸𝗲𝗱𝗜𝗻 𝗽𝗿𝗼𝗳𝗶𝗹𝗲. #javascript #reactjs #supabase #tantackquery #webdevelopment
More Relevant Posts
-
Build Library Management System Using React, Shadcn/ui, Supabase, Tanstack Query(React Query)🚀 11+ hours of video content⚡️ What you will learn: ✅ How to build an application from scratch in a step-by-step way ✅ How to work with Supabase from scratch ✅ How to 𝘀𝗲𝗮𝗿𝗰𝗵 𝘁𝗵𝗿𝗼𝘂𝗴𝗵 𝗦𝘂𝗽𝗮𝗯𝗮𝘀𝗲 𝗱𝗼𝗰𝘂𝗺𝗲𝗻𝘁𝗮𝘁𝗶𝗼𝗻 to implement anything you need ✅ How to create better folder and file structure to better organize code ✅ How to easily implement a 𝗱𝗮𝘁𝗮 𝗴𝗿𝗶𝗱 𝘄𝗶𝘁𝗵 𝗽𝗮𝗴𝗶𝗻𝗮𝘁𝗶𝗼𝗻, 𝗳𝗶𝗹𝘁𝗲𝗿𝗶𝗻𝗴, 𝗮𝗻𝗱 𝘀𝗼𝗿𝘁𝗶𝗻𝗴 𝗳𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝗮𝗹𝗶𝘁𝘆 ✅ How to work with 𝗧𝗮𝗻𝘀𝘁𝗮𝗰𝗸 𝗤𝘂𝗲𝗿𝘆 (𝗥𝗲𝗮𝗰𝘁 𝗤𝘂𝗲𝗿𝘆) & 𝗦𝗵𝗮𝗱𝗰𝗻/𝘂𝗶 from scratch ✅ How to write better code using 𝗰𝘂𝘀𝘁𝗼𝗺 𝗵𝗼𝗼𝗸𝘀 ✅ How to add a 𝘀𝗸𝗲𝗹𝗲𝘁𝗼𝗻 𝗹𝗼𝗮𝗱𝗶𝗻𝗴 𝗲𝗳𝗳𝗲𝗰𝘁 while loading the image ✅ How to quickly implement 𝗟𝗼𝗴𝗶𝗻, 𝗥𝗲𝘀𝗲𝘁 𝗣𝗮𝘀𝘀𝘄𝗼𝗿𝗱, 𝗘𝗺𝗮𝗶𝗹 𝗦𝗲𝗻𝗱𝗶𝗻𝗴 functionality Using Supabase ✅ How to create dynamic custom modals without re-writing the same code again ✅ How to 𝗯𝘂𝗶𝗹𝗱 𝗰𝗵𝗮𝗿𝘁𝘀 from scratch ✅ How to 𝘂𝗽𝗹𝗼𝗮𝗱 𝗶𝗺𝗮𝗴𝗲𝘀 𝘁𝗼 𝗦𝘂𝗽𝗮𝗯𝗮𝘀𝗲 ✅ How to 𝗯𝘂𝗶𝗹𝗱 𝗿𝗲𝘀𝗽𝗼𝗻𝘀𝗶𝘃𝗲 𝗮𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 using Tailwind CSS ✅ Various tips, tricks and better coding practices ✅ And the most important thing - 𝗛𝗼𝘄 𝘁𝗼 𝗱𝗲𝗽𝗹𝗼𝘆 𝘁𝗵𝗲 𝗮𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝘁𝗼 𝗽𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝘀𝘁𝗲𝗽-𝗯𝘆-𝘀𝘁𝗲𝗽 𝗖𝗵𝗲𝗰𝗸 𝗼𝘂𝘁 𝘁𝗵𝗲 𝗙𝗥𝗘𝗘 𝗽𝗿𝗲𝘃𝗶𝗲𝘄 𝘃𝗶𝗱𝗲𝗼𝘀 𝗼𝗻 𝘁𝗵𝗲 𝗰𝗼𝘂𝗿𝘀𝗲 𝗽𝗮𝗴𝗲. Link for the course is in the comment and in the featured section of my LinkedIn profile. #javascript #reactjs #supabase #tantackquery #webdevelopment
Build Library Management System Using React, Shadcn/ui, Supabase, Tanstack Query(React Query)
To view or add a comment, sign in
-
JavaScript Feature: Fetch API The Fetch API is a modern way to make HTTP requests in JavaScript. It’s promise-based, making it cleaner and easier than the old XMLHttpRequest. Basic Usage: fetch('https://lnkd.in/gWKpgMrT') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); fetch() returns a Promise. response.json() parses the response into JSON. .catch() handles errors gracefully. Using Async/Await for Cleaner Syntax: async function getData() { try { const response = await fetch('https://lnkd.in/gWKpgMrT'); const data = await response.json(); console.log(data); } catch (error) { console.error('Error:', error); } } getData(); Pro Tips: Always handle network errors. Use headers for authentication or content-type. Can be used for GET, POST, PUT, DELETE requests. The Fetch API is powerful, modern, and essential for building dynamic web apps! #JavaScript #FetchAPI #AsyncProgramming #WebDevelopment #Frontend #Promises #AsyncAwait #CodingTips #CleanCode
To view or add a comment, sign in
-
💡React Tips💡 ✅ Write API calls in separate files instead of directly inside components: It avoids deep coupling of component and its code. With APIs written separately helps to change their implementation anytime without worrying about breaking the application. ✅ Don't waste time in formatting code: Install a prettier extension for VS Code and avoid the need of manually formatting code. It formats the code on every file save automatically, after configuring it. ✅ Organize code in better folder and file structure: Better organization of files for apis, services etc helps to quickly find and update the required information without wasting time. ✅ Use React Developer Tools for Debugging: Install the React Developer Tools extension in your browser to inspect component hierarchies, props, and state directly, making debugging much easier. ✅ Keep Components Small and Focused: Break your UI into small, reusable components that each handle a single responsibility. This improves readability and makes components easier to test and maintain. ✅ Use Functional Components and Hooks: Favor functional components over class components. Leverage hooks like useState, useEffect, and useContext for cleaner and more modern code. ✅ Memoize Expensive Computations: Use useMemo, or useCallback to prevent unnecessary re-renders for components or functions that handle expensive operations. ✅ Prop-Drilling? Use Context API or State Libraries: Avoid drilling props through multiple levels by using React Context or state management tools like Redux for global state handling. ✅ Lazy Load Components: Optimize performance by using React.lazy and Suspense to split your code and load components only when needed. ✅ Follow Clean and Semantic Naming Conventions: Name components, files, and functions descriptively to improve code readability and collaboration with other developers. 𝗙𝗼𝗿 𝗺𝗼𝗿𝗲 𝘀𝘂𝗰𝗵 𝘂𝘀𝗲𝗳𝘂𝗹 𝗰𝗼𝗻𝘁𝗲𝗻𝘁, 𝗱𝗼𝗻'𝘁 𝗳𝗼𝗿𝗴𝗲𝘁 𝘁𝗼 𝗳𝗼𝗹𝗹𝗼𝘄 𝗺𝗲. #javascript #reactjs #nextjs #webdevelopment
To view or add a comment, sign in
-
-
⚡ React Tip: Use useRef When You Don’t Want Re-Renders Not every piece of data in React needs to trigger a re-render. That’s where the useRef hook shines. 💡 Think of useRef as a box that holds a value — and React doesn’t care what’s inside. It’s perfect for storing values that change but don’t affect the UI. import { useRef, useState } from "react"; function Timer() { const [count, setCount] = useState(0); const intervalRef = useRef(null); // 👈 No re-renders const start = () => { if (intervalRef.current) return; // prevent multiple intervals intervalRef.current = setInterval(() => { setCount((c) => c + 1); }, 1000); }; const stop = () => { clearInterval(intervalRef.current); intervalRef.current = null; }; return ( <div> <p>⏱️ Count: {count}</p> <button onClick={start}>Start</button> <button onClick={stop}>Stop</button> </div> ); } ✅ Why it’s awesome: 1. Doesn’t cause re-renders when updated 2. Great for storing timers, previous values, or DOM references 3. Keeps your component efficient and smooth 💭 Remember: Use useRef for mutable values that shouldn’t trigger renders. Use useState for UI values that should. How often do you reach for useRef in your projects? 👇 #ReactJS #JavaScript #WebDevelopment #FrontendTips #CodingTips #CleanCode #ReactHooks #Programming #WebDev #TechTips
To view or add a comment, sign in
-
🧩 Top-Level Await - Async Code Made Simple! ⚡ JavaScript just got smarter - you can now use await directly at the top level of your modules without wrapping it inside an async function! 😎 💡 What it means: No more writing this 👇 (async () => { const data = await fetchData(); console.log(data); })(); Now you can simply do 👇 const data = await fetchData(); console.log(data); ✅ Why it’s awesome: • Cleaner async code at the module level • Great for initializing data before rendering apps • Works perfectly with ES modules (ESM) • Makes async setup logic feel synchronous ⚙️ Use Case Example: Fetching config, environment data, or translations before your app starts 🌍 JavaScript keeps getting better - less boilerplate, more clarity! 💪 #JavaScript #AsyncProgramming #WebDevelopment #ReactJS #ReactNative #ESModules #CodingTips #FrontendDevelopment #TypeScript #Developer
To view or add a comment, sign in
-
🗓️ SK - 3 – React Hooks (Deep Dive) 🪝 🎯 Goal: Master React Hooks — the heart of modern React development. 🧠 Core Topics ✅ useState, useEffect, useContext, useReducer ✅ useMemo, useCallback, useRef ✅ Custom Hooks for reusability 💻 Coding Practice ⚙️ Create a custom hook for fetching data from an API. ⚙️ Use useMemo and useCallback to optimize renders. ⚙️ Build a stopwatch using useRef. 🎥 Learning Resources 🔗 React Hooks Tutorial – Net Ninja 🔗 useEffect Deep Dive – Codevolution 💬 Mock Interview Prep ❓ When does useEffect run? ❓ What’s the difference between useMemo and useCallback? ❓ How do you share logic between components using custom hooks? 🌟 Reflection: Hooks aren’t just syntax — they’re a paradigm shift. They make React code more readable, modular, and powerful. Every time you replace a class lifecycle with a clean useEffect, you write smarter code. ⚙️ Mastering Hooks = mastering React’s functional mindset. Write less. Do more. Think declaratively. 💡 💬 Which React Hook do you use the most in your projects? Comment below 👇 📌 Follow Sasikumar S for daily React insights, code challenges & growth reflections. 🤝 Connect Now: sasiias2024@gmail.com 💟 Visit: sk-techland.web.app ❤️ Follow our LinkedIn Page for more React & JavaScript wisdom. #ReactJS #ReactHooks #WebDevelopment #FrontendDeveloper #useEffect #useState #CustomHooks #JavaScript #CodingJourney #Optimization #CleanCode #SoftwareEngineering #CareerGrowth #TechLearning
To view or add a comment, sign in
-
⚛️ React 19 – New & Updated Hooks use() → Lets you directly use async data or promises inside components without useEffect, simplifying data fetching. 🧠 Example: const user = use(fetchUser()); useOptimistic() → Makes optimistic UI updates easy by letting you show temporary data before the server confirms changes. 🧠 Example: Instantly add a todo to the list before it’s saved. useActionState() → Manages form state, submission, and errors in one place, making form handling cleaner. 🧠 Example: Handle loading and validation directly with one hook. useFormStatus() → Gives real-time status of a form (like pending or submitted) during server actions. 🧠 Example: Disable the submit button while the form is sending data. useDeferredValue() (from React 18) → Defers rendering of slow components to keep the UI responsive. 🧠 Example: Smooth typing experience during heavy data filtering. useTransition() (from React 18) → Allows marking state updates as non-urgent, improving perceived performance. 🧠 Example: Show loading spinner while background updates happen. React 18 improved performance with concurrent rendering and transitions, React 19 makes async data and forms simpler and more intuitive with use(), useOptimistic(), and useActionState(). #react #reactjs #nextjs #javascript #frontend
To view or add a comment, sign in
-
JavaScript Tip: Error Handling Patterns Error handling is crucial for building robust and reliable applications. JavaScript provides several patterns to catch and manage errors effectively. 1. Try…Catch Wrap code that may throw an error: try { let result = riskyOperation(); console.log(result); } catch (error) { console.error('Error caught:', error); } 2. Try…Catch…Finally finally runs regardless of success or failure, ideal for cleanup: try { performTask(); } catch (error) { console.error(error); } finally { console.log('Task finished'); } 3. Promises Catch Handle async errors with .catch(): fetchData() .then(data => console.log(data)) .catch(err => console.error('Fetch error:', err)); 4. Async/Await with Try…Catch Clean syntax for async code: async function fetchData() { try { const response = await fetch('https://lnkd.in/gWKpgMrT'); const data = await response.json(); console.log(data); } catch (error) { console.error('Error:', error); } } Best Practices: Always handle both sync and async errors. Provide meaningful error messages for debugging. Use centralized error logging in production apps. Error handling is not optional—it makes your app resilient, reliable, and professional. #JavaScript #ErrorHandling #AsyncProgramming #Frontend #WebDevelopment #CodingTips #Promises #AsyncAwait #CleanCode
To view or add a comment, sign in
-
You think you know React... until you have to clean up a third-party script. I had a major "Aha!" moment building my Financial dashboard project, and it's a perfect example of how React's declarative world meets imperative, real-world JavaScript. The Problem: I'm integrating TradingView's embeddable widgets, which aren't React components. This requires manually creating <script> tags and injecting them into a div using a useEffect hook. The Naive Approach: Just create the script in useEffect and let React unmount the div when it's done. Simple, right? Wrong. This creates massive memory leaks. The third-party script (the "tenant") running inside my div (the "house") has its own background processes: setIntervals, WebSockets, and global event listeners. When React unmounts the div (demolishes the house), it doesn't tell the tenant to clean up. The "ghost" tenant lives on, still fetching data and consuming memory. The Solution & The "Aha!" Moments: 1. The "Stale Ref" Problem: My first attempt at a cleanup function failed because ref.current is null when the cleanup runs! The Fix: You have to snapshot the ref's value inside the effect: const node = ref.current;. The cleanup function's closure then remembers this node, even after ref.current is nullified. 2. The "Tenant Eviction" Model: This was the real lightbulb moment. Why clean the div with node.innerHTML = "" if React is removing it anyway? The Fix: The cleanup is not for React. It's a signal for the third-party script. Setting innerHTML = "" is like "evicting the tenant." The script is built to detect this, triggering its own internal destroy() logic—clearing its timers, closing its connections, and actually preventing the memory leak. Takeaway: React manages its own lifecycle, but we are 100% responsible for the lifecycle of any imperative, non-React code we introduce. This dive was a powerful lesson in JavaScript closures, React's lifecycle, and robust memory management. #reactjs #javascript #webdevelopment #frontend #MERNstack #reacthooks #memorymanagement #learning #coding
To view or add a comment, sign in
-
-
🚀 𝗗𝗲𝗲𝗽 𝗖𝗹𝗼𝗻𝗲 𝗢𝗯𝗷𝗲𝗰𝘁𝘀 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 (𝘁𝗵𝗲 𝗥𝗜𝗚𝗛𝗧 𝘄𝗮𝘆) Most of us have cloned objects at some point using: const clone = JSON.parse(JSON.stringify(obj)); But… this method silently breaks things 😬 It: ❌ Removes functions ❌ Converts Date objects into strings ❌ Loses undefined, NaN, and Infinity ❌ Completely fails with Map, Set, or circular references So what’s the better approach? ✅ Option 1: Use structuredClone() Modern, fast, and now available in most browsers + Node.js (v17+). It correctly handles: • Dates • Maps • Sets • Circular references No fuss. No polyfills. Just works. ✅ Option 2: Write your own deep clone (for learning) A recursive deep clone function helps understand how object copying really works. (Sharing my implementation in the code snippet images above 👆) ⚡ Pro Tip: If you're dealing with complex nested objects, just use structuredClone(). It’s native, efficient, and avoids hours of debugging later. 🔥 If you found this helpful, 👉 Follow me for more bite-sized JavaScript insights. Let’s learn smart, not hard 🚀 #JavaScript #WebDevelopment #Frontend #NodeJS #CodeTips
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