One data grid for JavaScript, React, Vue & Angular. Sorting, filtering, virtualization, pinning, and CSV export included. Early access $199 $349 → [Get it now]

CoreUI PRO for React v5.24.1 - Maintenance Update

CoreUI PRO for React v5.24.1 - Maintenance Update

We are pleased to announce the release of CoreUI PRO for React v5.24.1. This maintenance release includes bug fixes and improvements while maintaining all functionality from v5.24.0, including the powerful Calendar component with custom cell rendering and quarter selection, plus Chip and Chip Input components.

Read More…

How to optimize large lists in React

Rendering thousands of DOM nodes in a React list causes severe performance degradation — slow initial render, janky scrolling, and high memory usage. As the creator of CoreUI, I’ve optimized data-heavy tables and lists in CoreUI dashboards that display thousands of rows, and virtualization is the single most impactful technique. The approach with react-window renders only the rows visible in the viewport, keeping the DOM node count constant regardless of data size. A list with 10,000 items renders the same ~20 DOM nodes as a list with 10 items when virtualized.

Read More…

How to fix stale closures in React hooks

Stale closures are one of the most confusing bugs in React hooks — a callback or useEffect captures a variable’s value at the time it was created, then the variable updates but the closure still uses the old value. As the creator of CoreUI, I’ve debugged dozens of stale closure bugs in complex React components and the fix always comes down to dependency arrays and refs. The problem occurs because JavaScript closures close over variables by reference at the time of creation, and React components close over state at each render. Understanding when to add dependencies to arrays and when to use a ref solves the vast majority of stale closure bugs.

Read More…

How to use Redux in React

Redux with Redux Toolkit is the standard solution for complex global state in React applications — when Context API becomes too verbose or performance-intensive, Redux provides predictable state updates with excellent DevTools support. As the creator of CoreUI, I use Redux Toolkit (RTK) in large-scale React dashboards where multiple features share state and async data fetching needs centralized management. Redux Toolkit eliminates the boilerplate of classic Redux — no separate action creators, no switch statements, just slices with immer-powered reducers. Start with the simplest state management that works; reach for Redux when you have genuinely complex cross-component state.

Read More…

How to use Apollo Client in React

Apollo Client is the most powerful GraphQL client for React, providing intelligent caching, optimistic updates, subscriptions, and error handling out of the box. As the creator of CoreUI, I use Apollo Client in data-intensive React dashboards where normalized caching significantly reduces redundant API calls and keeps the UI in sync across components. Beyond useQuery and useMutation, Apollo’s real power lies in its normalized cache — when any component fetches a user, every other component showing that user updates automatically. Understanding the cache is what separates basic Apollo usage from production-grade Apollo usage.

Read More…

How to use GraphQL in React

Using GraphQL in React lets you request exactly the data your components need — no over-fetching, no under-fetching — with a single flexible endpoint. As the creator of CoreUI, I’ve used GraphQL in production React dashboards where the ability to query multiple data sources in one request dramatically reduced load times compared to multiple REST calls. For simple use cases, GraphQL works with a plain fetch call. For production apps with caching, optimistic updates, and subscriptions, Apollo Client is the standard choice. Both approaches are covered here so you can choose what fits your project.

Read More…

How to use WebSockets in React

WebSockets enable real-time bidirectional communication between your React app and the server — perfect for chat applications, live dashboards, notifications, and collaborative features. As the creator of CoreUI, I’ve built real-time dashboards that display live data streams from WebSocket servers, and the key is encapsulating all WebSocket logic in a custom hook. The hook manages connection lifecycle, reconnection logic, and cleanup so your components stay simple. Without cleanup, WebSocket connections outlive the component and continue consuming resources.

Read More…

How to integrate PayPal in React

Integrating PayPal in React is straightforward with the official @paypal/react-paypal-js package, which renders PayPal’s smart payment buttons and handles the payment flow without requiring you to build custom UI. As the creator of CoreUI, I’ve implemented PayPal payments in several e-commerce applications alongside Stripe to maximize payment method coverage. The correct approach creates the PayPal order on your server to keep credentials secure, then confirms the capture server-side as well. Never process order creation or capture entirely on the frontend — always validate and confirm on your server.

Read More…

How to integrate Stripe in React

Integrating Stripe in React requires both a server-side component to create payment intents and a client-side component to collect card details securely using Stripe’s hosted fields. As the creator of CoreUI, I’ve implemented Stripe payments in multiple production e-commerce applications and the most common mistake is trying to process payments from the frontend — always create payment intents on your server. Stripe’s @stripe/react-stripe-js library provides pre-built, PCI-compliant form elements that never expose raw card data to your application. This approach keeps you out of PCI scope and lets Stripe handle security compliance.

Read More…

How to build a checkout page in React

A checkout page combines form validation, order summary display, and payment processing into one of the most complex flows in any e-commerce application. As the creator of CoreUI, I’ve built checkout pages for multiple production e-commerce platforms and the key is breaking it into focused sections: shipping, payment, and order review. Each section should be a separate component with its own validation, and the parent page coordinates the multi-step flow. This structure keeps the code manageable and makes it easy to add, remove, or reorder steps.

Read More…