Full configuration from zero (Webpack). Configured React, Typescript, Babel, Scss, Css modules, Prettier and testing enviroment - Jest, Storybook, Loki. Using a lot of loaders and plugins.
Library components. 20+ UI components including modal windows with portals, dropdowns, sidebar, buttons with different themes, skeletons, lazy images, drawer, avatars, etc. Made all components accessible and semantic.
Architecture. Modules Decomposition. Business entities. Weak coupling and strong coupling. Reuse. Specific examples
Optimization, using a lot of memo, useMemo, useCallback. Bundle size analysis. Using bundle analyzers. Asynchronous components. Asynchronous Redux reducers. Reducer manager and creation of a small library for implementing asynchronous reducers. Module isolation. Using debouce and throttle
Filters, search, sorting, infinite scroll, multi-block pages
SCSS modules and theming. Three color themes of the application (dark, light, orange) and possibility to add new ones for several minutes
Test each developed module (selectors, async thunks, reducers, components) using React Testing Library and Jest.
Using ErrorBoundary for catching errors
Configured access for pages, by authorization, or by role. Also to maintain a minimum bundle size. I moved the pages into separate chunks.
Internationalization. Implemented two languages (Russian and English) into the interface. I divided the translations into chunks for loading them in portions, so as not to increase the size of the bundle.
Configured TS (tsconfig), it works with webpack, used it with union types, generic components
Working with Entity Adapter
Using Redux toolkit, axios instances, RTK query with endpoint injections
Implement our script, which generate features\entities with the entire structure of folders and files
Migration from 17 to version 18 of React
Depending on the user agent, render mobile/desktop components.
Influence on bundle size
Working with abstract syntax tree nodes, changing code throughout the entire project globally using scripts, creating files, adding the necessary content to them.
Configuration of both webpack and vite
Detection and removal using plugins