Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building a component framework

Building a component framework

Working with multiple teams on multiple front-end applications brings a whole new set of challenges to software development. Which code do you share, where do you draw the line and how do you work together keeping a certain amount of consistency. At the ANWB we’re currently tackling these problems and building a component library using (p)react.

1. The need for a structured component library. The tradeoffs between complete developer freedom and a rigid code regime.
2. I want to share our learnings on how to use React or Preact on a generic component level and our decisions to move from React to Preact.
3. How to build and use an individually versioned component system using tools like Lerna and Storybook.
4. Challenges for the future

(https://medium.com/@BartWaardenburg/creating-a-react-component-library-using-storybook-e7c3fd105fd5)

Bart Waardenburg

March 29, 2018
Tweet

More Decks by Bart Waardenburg

Other Decks in Technology

Transcript

  1. “How can we work together on ~200 front-end applications with

    ~30 developers spread out over ~15 scrum teams?”
  2. “We want developers to have as much autonomy as possible

    while maintaining a certain amount of alignment.”
  3. ecosystem wishes single framework well documented style guide developer friendly

    designer friendly automated unit testing automated regression testing individually versioned components
  4. framework wishes focused on components high performance small size pleasant

    learning curve available in-house knowledge large community stable server side rendering possible
  5. preact just user interface components only ~3kb in size if

    you know react you know preact great templating with JSX possibility to use react components high performance in benchmarks server side rendering possible
  6. individually versioned components each component has its own package.json and

    version lerna & yarn workspaces handle all node modules we use conventional commits for our commit messages we use commitizen and commit-lint to help with commit messages new semver component versions are derived from commit messages changelogs are generated based on commit messages components are privately hosted on our nexus repository