Frontend:
- If there is no dedicated UI design team, I like to sketch up a few pages of the website I am making and show the design to stakeholders to get on the same page. It also makes the vision a lot clearer.
- I choose a UI component library. For vanilla React I use Material UI. But for Next.js, shad/cn UI (tailwind based) or Mantine UI goes nicely. They are also very lightweight and have some good design out of the box.
- Since there is a shopping cart on the website which could require robust state management, I would use a Redux like lib. The react context would be good for themes and colors mostly. The state management lib will also help with User sessions.
- For API calls I like to keep all my API calls in a separate API client file and make use of axios to call the APIs with appropriate tokens.
- Recent Next.js versions suggest to use App router for optimization so we can go with that.
- Finally, build the code base by coding reusable components and using those components to build full pages.