Kickstart your library of shared React components

Initial observation

"I have a great idea: It would be awesome if we could create sharable components in order to sell them to other company departments, and even one day sell them outside!"
Quote from our client in April 2018

More realistically: our client produces many apps for different users but with the same business behind. Many identical features were remade from scratch on several projects.

First Attempt: Commando
- Owned and sustained by all the projects at the same time without owner

- One unique repository with one JS project: one package.json

- The components built altogether and served online on a unique un-versioned JS Script

 

Second Attempt: Tapas

- Owned and sustained by one project not thinking reusability when developing

- Still one unique repository with one JS project: one package.json

- A unique build on another GitHub branch where commits hashes were used as versions of the package

Failed attempts

Last Attempt: Component Studio

- The ownership of a dedicated core team whose only focus is to make a robust project of reusable components

- An architecture of several packages with their own scope and responsibility

- A mono-repository to develop faster

- A proper library versioning system pushed on a package store (like NPM)

Our last successful attempt

Demonstration

The resulting architecture

Inside packages

The necessary development flow

In detail...

The objective: At first, save money by reusing components across different projects

Our success indicator

Return on Investment

Problems met by the other teams

Beyond being reused, we need to make sure our project does not take more time to other projects than it would have if they made them from scratch, so we track and resolve their issues!

Issues VS Contibutions

We set up a process of issue solving that allows us to prioritise issues and focus on the most impactful problems

How to onboard the other teams

We proved that having a dedicated technical team on an advanced design system is worth the cost.

 

I hope this talk gave you the confidence to maintain one if need be.

Final words

Merci

Any Questions?

Kickstart your library of shared React components

By Xavier Lefèvre

Kickstart your library of shared React components

How to sustain a successful and complex design system thanks to our return of experience

  • 1,176