What I learned
Cloning a familiar UI is a really efficient way to learn — you don’t waste cycles on design decisions, so all your attention goes to the engineering. This project was where async data handling, useEffect lifecycles, and the useState patterns for paginated lists became muscle memory for me.
Vite was the other lesson: once you’ve felt sub-100ms HMR, it’s hard to go back. The build tool matters.
What I did
- Built the reader in React functional components, with hooks for state and effects.
- Integrated a third-party news API with the Fetch API, error handling, and rate-limit awareness.
- Implemented “Load more” infinite-scroll pagination so users can keep reading without page breaks.
- Added lazy image loading to keep initial paint fast.
What I shipped
A live Apple-News-style reader at https://apple-news-clone.netlify.app/ — built fast, deployed fast, and now living in the portfolio as evidence of how I learned React + modern build tooling end-to-end.