What changed
- Create React App and
react-scriptsreplaced with the Next.js App Router and Turbopack. - React 16 replaced with React 19.3.0; Next.js 16.3.8 installed. Direct runtime packages use the latest stable npm versions checked on October 3, 2026.
- Axios and runtime Random User API requests replaced with bundled demo contacts and local portraits, so the page can render on the server and run without a third-party API connection.
- Moment replaced with native
Datearithmetic andIntl.DateTimeFormat. UTC timestamps render consistently during server rendering and hydration. - Shave DOM mutation replaced with CSS ellipsis. The old Ionicons CDN font replaced with locally bundled Lucide SVG icons.
- Obsolete ReactDOM initialization, CRA service worker, public HTML template, and stale Yarn lockfile removed. npm is the canonical package manager;
package-lock.jsonhas been regenerated. - Next.js metadata, manifest, optimized local contact images, accessible buttons, focus indicators, and native modal dialogs added.
- Sidebar and messages scroll independently. The composer stays within the message panel. On narrow screens, select a conversation and use the back button to return to the list.
Source captured: 2026-10-11