For us, we found ourselves repeating again and again when we had multiple UI projects. It became boring and we decided to write the design system. It took us about 3-4 months to complete this.
- It takes a LOT of effort to migrate old projects. A LOT! So, make sure you really have the time and effort for a migration like that.
- In my opinion, it only makes sense to have a component library if you have multiple different projects / repos.
- Try not to reinvent the wheel. Design your components library, but follow a pattern of a popular library so you can see "hey if you have used this library, it's the same here. Just the UI is different"
- Write an extensive documentation with examples (here's ours: [1])
- In our case, integrating dark mode, docs, and i18n into the design system (in an opinionated way) saved us a lot of time.
[0] https://github.com/hyvor/design [1] https://hyvor-design.pages.dev