- Install dependencies using either npm or yarn.
- Run
npm start
to start the server (backend) and the app itself.
- Add routes for different pages. react-router would be a great choice. As the app grows we can add more routes and lazy load or chunk javascript on demand.
/
(To view all videos)/videos/new
(To add a new video)/videos/:id
(To edit a new video)
- Add pagination to the videos table.
- Add error handling.
- Wrap root component within an Error Boundary to gracefully catch errors anywhere inside the component tree
- Log errors to a service like sentry
- Add performance thresholds. It would be a good idea to keep bundle sizes in check. size-limit is a great option for it.
- Introduce a state management library like redux as the app grows in complexity.
- Introduce stronger linting, integrate eslint plugins for
react
,react-hooks
,a11y
, etc. - Caching files with a service worker to support offline mode (if necessary).