React, Non-React, and tRPC (Framework Layer) React solved a problem. People turned it into a default. React earned its place. Complex stateful interfaces needed structure, and React delivered that at scale. But frameworks are not just technical choices. They are organizational ones. React works best when: • UI complexity is real • State changes are frequent • Teams can afford tooling, abstractions, and conventions It struggles when: • Pages are mostly server-driven • State is simple • Cognitive overhead outweighs UI complexity This is why non-React frameworks keep resurfacing. Svelte reduces runtime complexity by moving work to compile time. Vue favors pragmatism and approachability. HTMX pushes logic back to the server and reduces JavaScript entirely. Then there is tRPC. Type-safe APIs without REST ceremony. Frontend and backend share contracts by design. That feels incredible early on. In production, it introduces a new tradeoff. Tighter coupling can reduce bugs, or amplify them, depending on discipline. The pattern I keep seeing is this. Framework choice reflects how teams communicate, not just how code is written. Tomorrow, I want to zoom out again. What Rust brings to web development, and why it is not hype. When did a framework choice start shaping your organization more than your code? #React #WebFrameworks #SystemsThinking #EngineeringCulture
Rayan Aliane’s Post
More Relevant Posts
-
In modern frontend setups like React + Vite, there’s one fundamental thing to be aware of, 𝗧𝗵𝗲 𝗯𝗿𝗼𝘄𝘀𝗲𝗿 𝗻𝗲𝘃𝗲𝗿 𝘂𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱𝘀 𝗥𝗲𝗮𝗰𝘁. 𝗜𝘁 𝗼𝗻𝗹𝘆 𝘂𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱𝘀 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁, 𝗖𝗦𝗦, 𝗮𝗻𝗱 𝗛𝗧𝗠𝗟. Everything we write in React components, hooks, imports has to be processed and bundled before the browser can execute it. This is where bundlers come into the picture. Tools like 𝙑𝙞𝙩𝙚, 𝙒𝙚𝙗𝙥𝙖𝙘𝙠, 𝙍𝙤𝙡𝙡𝙪𝙥, 𝙋𝙖𝙧𝙘𝙚𝙡 all solve the same core problem: • 𝘤𝘰𝘯𝘷𝘦𝘳𝘵 𝘮𝘰𝘥𝘦𝘳𝘯 𝘑𝘚 𝘢𝘯𝘥 𝘑𝘚𝘟 𝘪𝘯𝘵𝘰 𝘣𝘳𝘰𝘸𝘴𝘦𝘳-𝘧𝘳𝘪𝘦𝘯𝘥𝘭𝘺 𝘤𝘰𝘥𝘦 • 𝘩𝘢𝘯𝘥𝘭𝘦 𝘮𝘰𝘥𝘶𝘭𝘦 𝘪𝘮𝘱𝘰𝘳𝘵𝘴 𝘢𝘯𝘥 𝘥𝘦𝘱𝘦𝘯𝘥𝘦𝘯𝘤𝘪𝘦𝘴 • 𝘰𝘱𝘵𝘪𝘮𝘪𝘻𝘦 𝘢𝘴𝘴𝘦𝘵𝘴 𝘧𝘰𝘳 𝘱𝘦𝘳𝘧𝘰𝘳𝘮𝘢𝘯𝘤𝘦 • 𝘱𝘳𝘦𝘱𝘢𝘳𝘦 𝘢 𝘱𝘳𝘰𝘥𝘶𝘤𝘵𝘪𝘰𝘯-𝘳𝘦𝘢𝘥𝘺 𝘣𝘶𝘯𝘥𝘭𝘦 Vite feels faster during development because of how it serves modules, while tools like Webpack focus more on bundling everything together before serving. Once I understood this, a lot of things started making sense: • 𝘸𝘩𝘺 𝘥𝘦𝘷 𝘢𝘯𝘥 𝘱𝘳𝘰𝘥𝘶𝘤𝘵𝘪𝘰𝘯 𝘣𝘦𝘩𝘢𝘷𝘦 𝘥𝘪𝘧𝘧𝘦𝘳𝘦𝘯𝘵𝘭𝘺 • 𝘸𝘩𝘺 𝘣𝘶𝘪𝘭𝘥 𝘵𝘰𝘰𝘭𝘴 𝘢𝘳𝘦 𝘶𝘯𝘢𝘷𝘰𝘪𝘥𝘢𝘣𝘭𝘦 • 𝘸𝘩𝘺 𝘵𝘩𝘦 𝘣𝘳𝘰𝘸𝘴𝘦𝘳 𝘯𝘦𝘷𝘦𝘳 𝘴𝘦𝘦𝘴 “𝘙𝘦𝘢𝘤𝘵 𝘤𝘰𝘥𝘦” React builds the UI. 𝗕𝘂𝗻𝗱𝗹𝗲𝗿𝘀 𝗽𝗿𝗲𝗽𝗮𝗿𝗲 𝗶𝘁 𝗳𝗼𝗿 𝘁𝗵𝗲 𝗯𝗿𝗼𝘄𝘀𝗲𝗿. #ReactJS #Vite #Webpack #FrontendDeveloper #WebDevelopment #JavaScript #FrontendEngineering #Html #Css #ReactDeveloper #React #AI
To view or add a comment, sign in
-
-
#Frontend_in_2026: Fewer Footguns, Stronger Defaults Now that 2025 has ended and we’re starting with 2026, I’ve been reflecting on where the JavaScript ecosystem is headed. A pattern I’ve been noticing across the JavaScript ecosystem: the “frontend stack” is becoming more intentional about doing the right thing by default — less glue-code, fewer footguns, and more built-in clarity around performance, caching, and developer experience. React is a good example of this shift. Since React 19 went stable, the focus has moved from “how do I manage async UI without a mess?” to “how do I keep my UI predictable while it’s doing real work?” Features like Actions reduce boilerplate around common product workflows, and React Compiler 1.0 reinforces the idea that optimization should come from tooling, instead of sprinkling useMemo/useCallback everywhere as a lifestyle. The ecosystem around React is following the same direction. Create React App being officially sunset in early 2025 reinforced that production apps need stronger architectural defaults like routing/data-loading/caching patterns that “starter kits” don’t cover well long-term. Meanwhile, frameworks are treating architecture as a first‑class feature: Next.js 16 (Oct 2025) made caching more explicit with Cache Components and “use cache”. TypeScript continues to quietly anchor large frontend codebases, with recent releases and native tooling previews focusing on faster feedback loops and scalability — the kind of improvements that meaningfully affect how teams ship. All of this keeps reinforcing the same takeaway for me: the most valuable frontend skill set is still the fundamentals — strong JavaScript/TypeScript, clean React component boundaries, state management discipline, testing habits (unit + E2E), and performance awareness — and the ecosystem is increasingly rewarding people who build with those principles consistently. What’s one recent change (React/tooling/TypeScript) that genuinely made your day-to-day development smoother? #javascript #typescript #reactjs #frontend #webdevelopment #webperformance
To view or add a comment, sign in
-
𝐀𝐛𝐨𝐫𝐭𝐂𝐨𝐧𝐭𝐫𝐨𝐥𝐥𝐞𝐫 𝐢𝐧 𝐑𝐞𝐚𝐜𝐭: 𝐀 𝐌𝐮𝐬𝐭-𝐊𝐧𝐨𝐰 : When we call an API in React (inside use-Effect), the request can sometimes take time. 𝐁𝐮𝐭 𝐰𝐡𝐚𝐭 𝐢𝐟 𝐭𝐡𝐞 𝐮𝐬𝐞𝐫: leaves the page, switches to another screen, or the component disappears. The API request may still be running in the background. 𝐓𝐡𝐢𝐬 𝐜𝐚𝐧 𝐜𝐚𝐮𝐬𝐞: bugs, unexpected UI behavior, wasted network calls 𝐓𝐡𝐚𝐭’𝐬 𝐰𝐡𝐞𝐫𝐞 𝐀𝐛𝐨𝐫𝐭𝐂𝐨𝐧𝐭𝐫𝐨𝐥𝐥𝐞𝐫 𝐡𝐞𝐥𝐩𝐬: 𝐖𝐡𝐲 𝐀𝐛𝐨𝐫𝐭𝐂𝐨𝐧𝐭𝐫𝐨𝐥𝐥𝐞𝐫 𝐢𝐬 𝐢𝐦𝐩𝐨𝐫𝐭𝐚𝐧𝐭,𝐖𝐡𝐞𝐧 𝐲𝐨𝐮 𝐜𝐚𝐧𝐜𝐞𝐥 𝐚 𝐫𝐞𝐪𝐮𝐞𝐬𝐭: 1). Prevents updating state after unmount 2). Avoids unnecessary network usage 3). Avoids race conditions (old request overriding new response) 𝐈𝐦𝐩𝐨𝐫𝐭𝐚𝐧𝐭 𝐍𝐨𝐭𝐞: Imagine your backend endpoint: /𝗮𝗽𝗶/𝘂𝘀𝗲𝗿𝘀 It takes 10 seconds to fetch users and process logic React calls the API But user closes the tab after 2 seconds 𝐘𝐨𝐮 𝐜𝐚𝐥𝐥 𝐀𝐛𝐨𝐫𝐭𝐂𝐨𝐧𝐭𝐫𝐨𝐥𝐥𝐞𝐫: React cancels the request immediately, No UI update will happen. But backend may still continue processing unless backend handles cancellation (client disconnect). 📌 In the next post, I’ll show how to handle aborted requests in Node/Express backend, detect when the client disconnects, and stop unnecessary processing. #ReactJS #JavaScript #Node #Express #Frontend #Backend #WebDevelopment #ReactHooks #CodingTips #AbortController
To view or add a comment, sign in
-
-
🚨Frontend growth doesn’t happen overnight. Not by jumping straight into frameworks. Not by memorizing hooks. It grows in layers — and the order matters. First comes structure. Then style. Then behavior. And only after that… systems. 🧱 HTML gives meaning 🎨 CSS gives personality ⚡ JavaScript gives life ⚛️ React gives scalability That’s why many developers say: “I learned React, but I still feel stuck.” Because frameworks don’t replace fundamentals, they amplify them. The strongest UIs aren’t built by people chasing tools. They’re built by people who respect the process. Strong foundation → clean abstractions → confident code. If you’re early in your frontend journey, this isn’t the slow path — It’s the fastest one that actually lasts. 👉 Which layer do you think most beginners rush into too early? 👇 Curious to hear your take. Follow me if you enjoy discussions around UI, JavaScript, and real-world frontend engineering. #FrontendDevelopment #WebDevelopment #JavaScript #ReactJS #HTML #CSS #FrontendEngineer #ProgrammingJourney #DevCommunity #LearnInPublic
To view or add a comment, sign in
-
-
It is the most common performance leak I see in React codebases. We often write inline objects like this: ❌ <𝐶ℎ𝑖𝑙𝑑𝐶𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡 𝑐𝑜𝑛𝑓𝑖𝑔={{ 𝑐𝑜𝑙𝑜𝑟: '𝑏𝑙𝑢𝑒' }} /> To us, that object looks the same every time. To JavaScript, { 𝑐𝑜𝑙𝑜𝑟: '𝑏𝑙𝑢𝑒' } is a new reference in memory on every single render. This means your ChildComponent thinks its props have changed every time, forcing a re-render and completely defeating the purpose of 𝑅𝑒𝑎𝑐𝑡.𝑚𝑒𝑚𝑜. The Fix: Stabilize your references. ✅ Use 𝑢𝑠𝑒𝑀𝑒𝑚𝑜 for objects. ✅ Use 𝑢𝑠𝑒𝐶𝑎𝑙𝑙𝑏𝑎𝑐𝑘 for functions. It feels like premature optimization to some, but in data-heavy dashboards, these micro-leaks stack up to a frozen UI. React Devs: Where do you stand on this? 1️⃣ Memoize everything by default (better safe than sorry). 2️⃣ Only memoize when things get slow (keep the code clean). I’m curious to hear from more experienced devs, which approach does your team prefer? 👇 #ReactJS #FrontendEngineering #Performance #WebDev #JavaScript #SoftwareEngineering
To view or add a comment, sign in
-
-
React.js: The Art of Building Dynamic User Interfaces React.js isn’t just a frontend framework — it’s a UI engine that changed how we think about interactivity, scalability, and performance. Here’s why it continues to dominate frontend engineering 👇 ✅ Component-Driven Architecture: Breaks UIs into reusable, independent components that make apps modular and maintainable. ✅ Virtual DOM for Speed: Instead of re-rendering entire pages, React efficiently updates only what changes — boosting performance. ✅ Declarative Programming: You describe what the UI should look like, not how to build it — React handles the rest. ✅ Hooks & State Management: From useState to useEffect to useContext, React gives developers superpowers for managing logic cleanly. ✅ Ecosystem Depth: Seamless integrations with Redux Toolkit, Next.js, and TypeScript make it enterprise-ready and scalable. 🎯 Why it matters: React isn’t about writing code — it’s about crafting experiences. Every pixel, every component, every state change… tells a story of performance and precision. #ReactJS #FrontendDevelopment #JavaScript #TypeScript #WebDevelopment #NextJS #Redux #FullStackDeveloper #UIUX #PerformanceEngineering
To view or add a comment, sign in
-
-
Common frontend issues I see in real projects (not hate, just experience) After reviewing and working on a lot of real-world projects, I keep seeing the same problems again and again. They’re not about “bad developers” - they’re about habits that slowly grow in real teams. Here are the most common ones 👇 1️⃣ Overengineering too early Complex abstractions, custom hooks everywhere, patterns “just in case”. Most projects would be easier to maintain if they stayed simpler for longer. 2️⃣ Ignoring performance until it hurts No memoization, heavy components rerendering, huge bundles. Performance is rarely a one-day fix - it should be part of daily decisions. 3️⃣ State chaos Global state for everything, or local state duplicated across components. Clear ownership of state solves half of frontend bugs. 4️⃣ Unreadable code for the sake of speed Code that works today but scares everyone tomorrow. Readable code is a feature, especially in teams. 5️⃣ Framework knowledge => fundamentals Developers know the framework API well, but struggle with JS basics. When something breaks, debugging becomes painful. All of this is normal. I’ve made these mistakes myself. The key is noticing patterns early and fixing them step by step. #frontend #frontenddeveloper #react #nextjs #javascript #webdevelopment #uidesign #performance #cleanCode #websites
To view or add a comment, sign in
-
-
React 19 quietly fixed one of the most repetitive patterns in frontend development, form submissions. For years, submitting a form in React meant writing the same boilerplate again and again. You had to prevent default behavior, manage loading state, handle errors manually, and carefully reset everything between attempts. One missed reset and bugs slipped into production. React 19 introduces useActionState, and it changes the mental model completely. Instead of wiring lifecycle logic yourself, you pass an async action and let React handle the flow. What you get out of the box: ✅ state: the result of the last submission, including errors or success data ✅ formAction, a function you pass directly to the form ✅ isPending, a reliable submission state without extra flags 💡 Why this matters in real projects: 🧠 Declarative by default You describe the outcome, React manages transitions between idle, pending, success, and error. 🛡️ More resilient UX When used with SSR capable frameworks, forms still work even before JavaScript fully loads. 📉 Less surface area for bugs No manual cleanup, no forgotten error resets, no duplicated logic across forms. This is not just a new hook, it is a shift toward treating forms as first class async workflows in React. Small change, big impact on code quality and maintainability. #ReactJS #React19 #WebDevelopment #Frontend #JavaScript #SoftwareEngineering
To view or add a comment, sign in
-
-
React State Is a Snapshot — Not a Variable (A Concept Every React Dev Should Know) One of the most misunderstood concepts in React is that state is a snapshot in time, not a mutable variable. When React renders a component, it gives you a snapshot of: props state event handlers That snapshot is fixed for that render. setCount(count + 1); setCount(count + 1); setCount(count + 1); You might expect count to increase by 3 — but it doesn’t. Why? Because all three updates read the same snapshot of count. The Correct Mental Model State updates are queued React re-renders later with a new snapshot Code inside the same render never sees updated state The Fix: Functional Updates setCount(prev => prev + 1); setCount(prev => prev + 1); setCount(prev => prev + 1); Now React applies each update to the latest value, not the old snapshot. Why This Matters Understanding state as a snapshot helps you: Avoid stale state bugs Write predictable event handlers Fix issues with async logic, debouncing, and batching Reason better about concurrent rendering in React 18+ Key Takeaway State doesn’t change inside a render. React gives you a snapshot — and the next render gives you a new one. Once this clicks, many “weird” React bugs suddenly make sense. #ReactJS #Frontend #JavaScript #WebDevelopment #ReactHooks #React18
To view or add a comment, sign in
-
🛒 Small React Optimizations That Actually Matter Early in my React journey, I used to think performance issues only come from large datasets or complex logic. But through real project experience, I noticed something important: 👉 Small things compound. In components like carts, lists, dashboards, or tables, a tiny detail — such as recreating a function on every render — can quietly trigger unnecessary re-renders. In this example: Passing a newly created function to child components caused them to re-render every time Stabilizing the callback with useCallback Memoizing the child component with React.memo …made the UI noticeably more predictable and efficient. This isn’t about over-optimizing everything. It’s about understanding when small improvements actually impact performance in real-world applications. Would love to know: Have you faced similar performance issues in list-heavy components? When do you decide to optimize vs keep it simple? #ReactJS #FrontendEngineering #PerformanceOptimization #WebDevelopment #JavaScript #CleanCode
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