SlideShare a Scribd company logo
~ Bart Waardenburg – Front-End Lead @ ANWB
Building a design system with (p)react
February 2019
1. What is a design system?
2. The process we have in place.
3. The technical choices we had to make.
Topics
Design system?
A design system offers a library of visual style,
components, and other concerns documented and
released by an individual, team or community as
code and design tools so that adopting products can
be more efficient and cohesive.
“
~ Nathan Curtis – Founder & Designer @ Eightshapes
Better consistancy
All products use the same design &
development standards.
Why use a Design System?
Ship faster
Teams can design & develop products
more quickly.
Higher quality
Hard design & development challanges
are solved together and do not need
to be repeated.
The Great Divide
The list of skills required for
building web applications is
getting longer and longer.
Our design system
14
Teams
Organization structure
Front-end applications
121
Front-end developers
30
Poncho
Documentation
Everything needed to explain the
visual language (colors, typography,
tone and voice, etc.).
What does Poncho include?
Sketch Symbols
Symbols for User Experience designers
to mock up applications and the
rationales for using them.
Preact Components
Components build using Preact which
developers can use to assemble their
products.
Shipping products
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
Build within only a single day, because all UI
components were already there.
Search on anwb.nl
"@anwb/api": "^2.0.5",
"@anwb/browser": "^0.4.0",
"@anwb/button": "^2.2.0",
"@anwb/checkbox": "^1.6.0",
"@anwb/form": "^3.7.3",
"@anwb/form-block": "^1.4.2",
"@anwb/form-field-autosuggest": "^0.3.8",
"@anwb/form-field-button": "^0.1.1",
"@anwb/iris": "^2.0.7",
"@anwb/pagination": "^0.5.0",
"@anwb/panel": "^2.4.0",
"@anwb/results": "^0.6.0",
"@anwb/spinner": "^0.7.0",
"@anwb/structure": "^2.3.0",
"@anwb/tabbox": "^4.4.0",
Poncho components
Our process
Ownership
How do we handle ownership of Poncho
Platform team
A central team holds ownership over
the platform and tooling.
Design together
All design changes are reviewed and
decided on together.
Code together
Every new feature or refactor goes
through a code review process.
Shared responsibility
Everyone is allowed to make changes
and take ownership over components
they create.
Source of truth
The design for a component is the
source of truth. Initial changes are
always made at the design level and
synced to the component.
A design system is a product
Adaption
How did we motivate people to use Poncho
Ease of use
Using Poncho should have been easier
then not using Poncho.
Dogfooding
Every team using components should
also create them where needed and
take ownership.
Show & Tell
Designers and developers have to
show each other changed or new
components every week.
Guidelines
How do we create or change Poncho components
1. Proposal
A team creates a proposal which is
pitched by developers and designers
within their respective peer groups.
2. Validation
The proposal is validated by doing
some form of user testing either
qualitative or quantitative.
3. Development
The developers of the requesting team
create a merge request and start
developing the component.
4. Review
The merge request is being reviewed
visually and technically by the Poncho
team.
5. Release
The component is being released and
available for use by developers and UX
designers.
6. Show & Tell
The developers and designers pitch the
component within their respective
peer groups.
78
Components
Poncho usage
Applications
35
Technical choices
Familiar
The React api is the most popular
component model out there.
Preact
Small
Preact is smaller in bundle size
compared to React and the differences
were barely noticeable for developers.
Future
The future is slightly foggy when
comparing the firepower of the React
team with that of Preact.
Flexible upgrade path
Applications should be able to mix and
match their components and versions
to make working with them as easy as
possible.
Invidual versioning
Component freedom
Individual versioning and gradual
adoption allows for more freedom
when developing (breaking changes
have less of an impact).
Updating
Making sure all applications are up-to-
date has been proven hard.
Snapshot testing
Every component is rendered in every
state so deterministic html output is
ensured.
Quality Assurance
Screenshots
We are going to start storing visual
screenshots of components to ensure
visual consistency.
Analytics & error monitoring
We have analytics set up for
component usage statistics and
runtime error monitoring to detect
bugs.
CSS-in-JS
We have to keep the styling for our
CMS output in sync with the output of
our other applications.
Specifics
Typescript
We are using Flow but we might switch
to Flow based on overall developer
usage statistics.
Hooks
Not yet, stability and ease-of-use are
highest priority.
Thanks!
Questions?
@bartwaardenburg

More Related Content

What's hot

Fire up your mobile app!
Fire up your mobile app!Fire up your mobile app!
Fire up your mobile app!
Suganthi Giridharan
 
android_android + app engine- a developer's dream combination
android_android + app engine- a developer's dream combinationandroid_android + app engine- a developer's dream combination
android_android + app engine- a developer's dream combination
brada
 
App center an overview
App center  an overviewApp center  an overview
App center an overview
Microsoft Azure Japan
 
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Applitools
 
ESLint Plugin for UI Tests
ESLint Plugin for UI TestsESLint Plugin for UI Tests
ESLint Plugin for UI Tests
Applitools
 
[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team
Srijan Technologies
 
Reark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJavaReark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJava
Futurice
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases
Okko Oulasvirta
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automation
Sunny Tambi
 
Location based services 10
Location based services   10Location based services   10
Location based services 10Michael Shrove
 
The State of Testing 2017
The State of Testing 2017The State of Testing 2017
The State of Testing 2017
SmartBear
 
Flutter dhaval solanki
Flutter   dhaval solankiFlutter   dhaval solanki
Flutter dhaval solanki
Dhaval Solanki
 
Automation, Selenium Webdriver and Page Objects
Automation, Selenium Webdriver and Page ObjectsAutomation, Selenium Webdriver and Page Objects
Automation, Selenium Webdriver and Page Objects
Andrew Boyer
 
Integrate Visual AI Into Your Appium Scripts in Minutes
Integrate Visual AI Into Your Appium Scripts in MinutesIntegrate Visual AI Into Your Appium Scripts in Minutes
Integrate Visual AI Into Your Appium Scripts in Minutes
Applitools
 
Ci/CD Android
Ci/CD AndroidCi/CD Android
Ci/CD Android
rendra toro
 
What are The Top Features of Angular 7?
What are The Top Features of Angular 7?What are The Top Features of Angular 7?
What are The Top Features of Angular 7?
NCode Technologies, Inc.
 
How to Become an Effective Tester by Reusing Tests
How to Become an Effective Tester by Reusing TestsHow to Become an Effective Tester by Reusing Tests
How to Become an Effective Tester by Reusing Tests
SmartBear
 
Bringing Quality Design Systems to Life with Storybook & Applitools
Bringing Quality Design Systems to Life with Storybook & ApplitoolsBringing Quality Design Systems to Life with Storybook & Applitools
Bringing Quality Design Systems to Life with Storybook & Applitools
Applitools
 
One Test To Rule Them All - Conquer Android and iOS With One Script
One Test To Rule Them All - Conquer Android and iOS With One ScriptOne Test To Rule Them All - Conquer Android and iOS With One Script
One Test To Rule Them All - Conquer Android and iOS With One Script
Sauce Labs
 
Use Automation to Assist -Not Replace- Manual Testing
Use Automation to Assist -Not Replace- Manual TestingUse Automation to Assist -Not Replace- Manual Testing
Use Automation to Assist -Not Replace- Manual Testing
SmartBear
 

What's hot (20)

Fire up your mobile app!
Fire up your mobile app!Fire up your mobile app!
Fire up your mobile app!
 
android_android + app engine- a developer's dream combination
android_android + app engine- a developer's dream combinationandroid_android + app engine- a developer's dream combination
android_android + app engine- a developer's dream combination
 
App center an overview
App center  an overviewApp center  an overview
App center an overview
 
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
 
ESLint Plugin for UI Tests
ESLint Plugin for UI TestsESLint Plugin for UI Tests
ESLint Plugin for UI Tests
 
[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team
 
Reark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJavaReark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJava
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automation
 
Location based services 10
Location based services   10Location based services   10
Location based services 10
 
The State of Testing 2017
The State of Testing 2017The State of Testing 2017
The State of Testing 2017
 
Flutter dhaval solanki
Flutter   dhaval solankiFlutter   dhaval solanki
Flutter dhaval solanki
 
Automation, Selenium Webdriver and Page Objects
Automation, Selenium Webdriver and Page ObjectsAutomation, Selenium Webdriver and Page Objects
Automation, Selenium Webdriver and Page Objects
 
Integrate Visual AI Into Your Appium Scripts in Minutes
Integrate Visual AI Into Your Appium Scripts in MinutesIntegrate Visual AI Into Your Appium Scripts in Minutes
Integrate Visual AI Into Your Appium Scripts in Minutes
 
Ci/CD Android
Ci/CD AndroidCi/CD Android
Ci/CD Android
 
What are The Top Features of Angular 7?
What are The Top Features of Angular 7?What are The Top Features of Angular 7?
What are The Top Features of Angular 7?
 
How to Become an Effective Tester by Reusing Tests
How to Become an Effective Tester by Reusing TestsHow to Become an Effective Tester by Reusing Tests
How to Become an Effective Tester by Reusing Tests
 
Bringing Quality Design Systems to Life with Storybook & Applitools
Bringing Quality Design Systems to Life with Storybook & ApplitoolsBringing Quality Design Systems to Life with Storybook & Applitools
Bringing Quality Design Systems to Life with Storybook & Applitools
 
One Test To Rule Them All - Conquer Android and iOS With One Script
One Test To Rule Them All - Conquer Android and iOS With One ScriptOne Test To Rule Them All - Conquer Android and iOS With One Script
One Test To Rule Them All - Conquer Android and iOS With One Script
 
Use Automation to Assist -Not Replace- Manual Testing
Use Automation to Assist -Not Replace- Manual TestingUse Automation to Assist -Not Replace- Manual Testing
Use Automation to Assist -Not Replace- Manual Testing
 

Similar to Building a design system with (p)react

Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
samuel segal
 
Sana_Final_Project_Documentation
Sana_Final_Project_DocumentationSana_Final_Project_Documentation
Sana_Final_Project_DocumentationSameer Srinivas
 
Spm file33
Spm file33Spm file33
Spm file33
Poonam Singh
 
Pos 409 pos409 pos 409 forecasting and strategic planning -uopstudy.com
Pos 409 pos409 pos 409 forecasting and strategic planning -uopstudy.comPos 409 pos409 pos 409 forecasting and strategic planning -uopstudy.com
Pos 409 pos409 pos 409 forecasting and strategic planning -uopstudy.com
ULLPTT
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
Bill Scott
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
Michael Choi
 
Design and Monitoring Performance of Digital Properties
Design and Monitoring Performance of Digital PropertiesDesign and Monitoring Performance of Digital Properties
Design and Monitoring Performance of Digital Properties
IRJET Journal
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
FarjanaAhmed3
 
Sprinkle your Devops platform with product thinking.pdf
Sprinkle your Devops platform with product thinking.pdfSprinkle your Devops platform with product thinking.pdf
Sprinkle your Devops platform with product thinking.pdf
Javier Turégano Molina
 
Maruti gollapudi cv
Maruti gollapudi cvMaruti gollapudi cv
Maruti gollapudi cv
Maruti Gollapudi
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
Chris Mitchell
 
React Native App Development.
React Native App Development.React Native App Development.
React Native App Development.
Techugo
 
YouTube Trending Video Dashboard
YouTube Trending Video DashboardYouTube Trending Video Dashboard
YouTube Trending Video Dashboard
IRJET Journal
 
Top 7 react developer tools to use in 2021
Top 7 react developer tools to use in 2021Top 7 react developer tools to use in 2021
Top 7 react developer tools to use in 2021
WrapPixel
 
Redesigning a large B2B website - The FusionCharts revamping story
Redesigning a large B2B website - The FusionCharts revamping storyRedesigning a large B2B website - The FusionCharts revamping story
Redesigning a large B2B website - The FusionCharts revamping story
FusionCharts
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
PROIDEA
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
rupeshchanchal
 
Top angular component libraries to use in 2020 (build amazing web solution fa...
Top angular component libraries to use in 2020 (build amazing web solution fa...Top angular component libraries to use in 2020 (build amazing web solution fa...
Top angular component libraries to use in 2020 (build amazing web solution fa...
Katy Slemon
 

Similar to Building a design system with (p)react (20)

Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
 
Sana_Final_Project_Documentation
Sana_Final_Project_DocumentationSana_Final_Project_Documentation
Sana_Final_Project_Documentation
 
Spm file33
Spm file33Spm file33
Spm file33
 
Pos 409 pos409 pos 409 forecasting and strategic planning -uopstudy.com
Pos 409 pos409 pos 409 forecasting and strategic planning -uopstudy.comPos 409 pos409 pos 409 forecasting and strategic planning -uopstudy.com
Pos 409 pos409 pos 409 forecasting and strategic planning -uopstudy.com
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
Design and Monitoring Performance of Digital Properties
Design and Monitoring Performance of Digital PropertiesDesign and Monitoring Performance of Digital Properties
Design and Monitoring Performance of Digital Properties
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
Sprinkle your Devops platform with product thinking.pdf
Sprinkle your Devops platform with product thinking.pdfSprinkle your Devops platform with product thinking.pdf
Sprinkle your Devops platform with product thinking.pdf
 
Maruti gollapudi cv
Maruti gollapudi cvMaruti gollapudi cv
Maruti gollapudi cv
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
 
React Native App Development.
React Native App Development.React Native App Development.
React Native App Development.
 
YouTube Trending Video Dashboard
YouTube Trending Video DashboardYouTube Trending Video Dashboard
YouTube Trending Video Dashboard
 
SamSegalResume
SamSegalResumeSamSegalResume
SamSegalResume
 
Top 7 react developer tools to use in 2021
Top 7 react developer tools to use in 2021Top 7 react developer tools to use in 2021
Top 7 react developer tools to use in 2021
 
Redesigning a large B2B website - The FusionCharts revamping story
Redesigning a large B2B website - The FusionCharts revamping storyRedesigning a large B2B website - The FusionCharts revamping story
Redesigning a large B2B website - The FusionCharts revamping story
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
Top angular component libraries to use in 2020 (build amazing web solution fa...
Top angular component libraries to use in 2020 (build amazing web solution fa...Top angular component libraries to use in 2020 (build amazing web solution fa...
Top angular component libraries to use in 2020 (build amazing web solution fa...
 
GSOC 2016 mifos
GSOC 2016 mifosGSOC 2016 mifos
GSOC 2016 mifos
 

Recently uploaded

How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 

Recently uploaded (20)

How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 

Building a design system with (p)react

  • 1. ~ Bart Waardenburg – Front-End Lead @ ANWB Building a design system with (p)react February 2019
  • 2. 1. What is a design system? 2. The process we have in place. 3. The technical choices we had to make. Topics
  • 4. A design system offers a library of visual style, components, and other concerns documented and released by an individual, team or community as code and design tools so that adopting products can be more efficient and cohesive. “ ~ Nathan Curtis – Founder & Designer @ Eightshapes
  • 5. Better consistancy All products use the same design & development standards. Why use a Design System? Ship faster Teams can design & develop products more quickly. Higher quality Hard design & development challanges are solved together and do not need to be repeated.
  • 6. The Great Divide The list of skills required for building web applications is getting longer and longer.
  • 10. Documentation Everything needed to explain the visual language (colors, typography, tone and voice, etc.). What does Poncho include? Sketch Symbols Symbols for User Experience designers to mock up applications and the rationales for using them. Preact Components Components build using Preact which developers can use to assemble their products.
  • 12. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 13. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 14. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 15. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 16. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 17. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 18. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 19. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 20. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 21. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 22. Build within only a single day, because all UI components were already there. Search on anwb.nl
  • 23. "@anwb/api": "^2.0.5", "@anwb/browser": "^0.4.0", "@anwb/button": "^2.2.0", "@anwb/checkbox": "^1.6.0", "@anwb/form": "^3.7.3", "@anwb/form-block": "^1.4.2", "@anwb/form-field-autosuggest": "^0.3.8", "@anwb/form-field-button": "^0.1.1", "@anwb/iris": "^2.0.7", "@anwb/pagination": "^0.5.0", "@anwb/panel": "^2.4.0", "@anwb/results": "^0.6.0", "@anwb/spinner": "^0.7.0", "@anwb/structure": "^2.3.0", "@anwb/tabbox": "^4.4.0", Poncho components
  • 25. Ownership How do we handle ownership of Poncho Platform team A central team holds ownership over the platform and tooling. Design together All design changes are reviewed and decided on together. Code together Every new feature or refactor goes through a code review process. Shared responsibility Everyone is allowed to make changes and take ownership over components they create. Source of truth The design for a component is the source of truth. Initial changes are always made at the design level and synced to the component.
  • 26. A design system is a product
  • 27. Adaption How did we motivate people to use Poncho Ease of use Using Poncho should have been easier then not using Poncho. Dogfooding Every team using components should also create them where needed and take ownership. Show & Tell Designers and developers have to show each other changed or new components every week.
  • 28. Guidelines How do we create or change Poncho components 1. Proposal A team creates a proposal which is pitched by developers and designers within their respective peer groups. 2. Validation The proposal is validated by doing some form of user testing either qualitative or quantitative. 3. Development The developers of the requesting team create a merge request and start developing the component. 4. Review The merge request is being reviewed visually and technically by the Poncho team. 5. Release The component is being released and available for use by developers and UX designers. 6. Show & Tell The developers and designers pitch the component within their respective peer groups.
  • 31. Familiar The React api is the most popular component model out there. Preact Small Preact is smaller in bundle size compared to React and the differences were barely noticeable for developers. Future The future is slightly foggy when comparing the firepower of the React team with that of Preact.
  • 32. Flexible upgrade path Applications should be able to mix and match their components and versions to make working with them as easy as possible. Invidual versioning Component freedom Individual versioning and gradual adoption allows for more freedom when developing (breaking changes have less of an impact). Updating Making sure all applications are up-to- date has been proven hard.
  • 33. Snapshot testing Every component is rendered in every state so deterministic html output is ensured. Quality Assurance Screenshots We are going to start storing visual screenshots of components to ensure visual consistency. Analytics & error monitoring We have analytics set up for component usage statistics and runtime error monitoring to detect bugs.
  • 34. CSS-in-JS We have to keep the styling for our CMS output in sync with the output of our other applications. Specifics Typescript We are using Flow but we might switch to Flow based on overall developer usage statistics. Hooks Not yet, stability and ease-of-use are highest priority.