SlideShare a Scribd company logo
"Crafting a Third-Party Banking Library with Web Components and React", German Smolyar
You are never alone 🤲
If you need banking features, don’t build a Bank - integrate with it…
Custom Coding Low-Code No-Code
Crafting a Third-Party
Banking Library with Web
Components and React
Nice to meet you 🤝
● Software Engineer at Unit
● Was born in Zhytomyr 󰑒
● Studied Cyber Security 🔐
● Former Radio and Wedding host 🎤
● Moved to Israel 󰏛 in 2017
● Writing in TS and Scala
● Don’t want to write a lot of code
● No impact on my app
● Minimal documentation reading
● Designer must be satisfied
● Compatible with my framework
● Should be fast
Using 󰞦
● Don’t want to write a lot of code
● No bugs, please
● No client specific features
● Write with favorite framework
● Should work everywhere
● Business needs to serve throw CDN for
regulatory issues
Building 󰠻
🧐 Which options do we have?
💡 We can build React, Angular, Vue, Ember... whichever library? 😔
💡 We could use <Iframe>? 😔
💡 Maybe classical way of exposing functions? 😔
󰠻👍 One more thing
Web Components
Key features 🔑
Shadow DOM
Encapsulation
󰞲
Custom Elements
Way to create new
HTML elements
👻
Slots
Placeholders
🚮
󰞲 Custom elements <component> </component>
🪴 Shadow DOM helps with DOM pollution
🪴 Shadow DOM helps with DOM pollution
🚮 <slot> </slot>
󰠻 Why?
● Widely supported across all browsers
● Framework-independent
● Declarative
● Encapsulation
● Fail safe (calling an HTML element which doesn’t exist does not cause
an error)
😨 What about framework?
Lit
Stencil
React
“React and Web Components are built to solve different problems.
Web Components provide strong encapsulation for reusable
components, while React provides a declarative library that keeps
the DOM in sync with your data. The two goals are complementary.
As a developer, you are free to use React in your Web Components,
or to use Web Components in React, or both.”
🤨 Is it ok to use React?
"Crafting a Third-Party Banking Library with Web Components and React", German Smolyar
But in a real world…
We ended up with this
📡 Communication
Web Component
React Application
const ui = function(state)
Web
Component
Web
Component
Main App Elements
Main App Elements
You can request to refresh component
⚙ Custom Events
⚙ Custom Events
You can listen to onload
Reflect on async changes
⚙ Custom Events
󰞦
Enough of me, how can you use it?
Demo
"Crafting a Third-Party Banking Library with Web Components and React", German Smolyar
"Crafting a Third-Party Banking Library with Web Components and React", German Smolyar
"Crafting a Third-Party Banking Library with Web Components and React", German Smolyar
"Crafting a Third-Party Banking Library with Web Components and React", German Smolyar
So each view is component
󰠻 Event Bus (sub / pub pattern)
To ensure a React component receives events meant
specifically for it, we utilize a dedicated event bus for each
web component. The event bus has two key functions:
eventbus.publish() Receives data and publishes an even
encapsulating that data. Internally it creates a new
CustomEvent.
eventbus.subscribe() Tells the event bus to add an event
listener This is the way to get event that WE KNOW was
addressed to us.
📱 Can we do something for Native (iOS, Android)?
Web View Native Experiences
😬 How can we achieve it?
Card
App own UI
Component
App own UI
Component
Web view
Menu
🤔 What if we change it a bit?
Card
App own UI
Component
App own UI
Component
Web view
Card
App own UI
Component
App own UI
Component
Web view
Bottom Sheet
Web view
{ Event }
󰞦
What's going on here? Can you prove it?
"Crafting a Third-Party Banking Library with Web Components and React", German Smolyar
💪 How are we working?
Atomic Design Methodology
Atoms Molecules Organisms Templates Pages
🧪 How are we theming?
Global Settings
Theming
Default Settings
Component Setting
The @layer CSS at-rule is used to declare a cascade
layer and can also be used to define the order of
precedence in case of multiple cascade layers.
🚀 How are we performing?
📦 General
● We use Storybook for development
● We follow Semantic Versioning. Each version
is a new file.
● We keep the right to deploy regulatory
changes to existing versions using cherry pick
● We use Cypress for UI tests
● We have security check in CI process
● We deploy preview for each PR
🎁 Takeaways
● While building client libraries, put yourself in junior pants 👖 Always
choose best possible interfaces
● Be native and clear in your interfaces
● React is not framework for SPA, it’s just a library
as jQuery 💔💀 was
● Everything is possible, don’t work too much
Q&A

More Related Content

PDF
React - The JavaScript Library for User Interfaces
PDF
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
PDF
React for Non Techies
PDF
React for non techies
PDF
React for non techies
PPTX
Introduction to React
PDF
react hook and wesite making structure ppt
PDF
FRONTEND DEVELOPMENT WITH REACT.JS
React - The JavaScript Library for User Interfaces
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
React for Non Techies
React for non techies
React for non techies
Introduction to React
react hook and wesite making structure ppt
FRONTEND DEVELOPMENT WITH REACT.JS

Similar to "Crafting a Third-Party Banking Library with Web Components and React", German Smolyar (20)

PPTX
Full Stack_Reac web Development and Application
PDF
Getting Started with React, When You’re an Angular Developer
PDF
Webcomponents are your frameworks best friend
PDF
ReactJS - frontend web developing reactjs
PPSX
React introduction
PDF
React & Flux Workshop
PPTX
Progressive Web Apps and React
PPTX
Professionalizing the Front-end
PDF
Fundamental concepts of react js
PDF
An Overview of the React Ecosystem
PDF
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
PDF
Tech Talk on ReactJS
PPTX
React.js at Cortex
PDF
React && React Native workshop
PPTX
React JS - A quick introduction tutorial
PPTX
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
PDF
Welcome to React & Flux !
PDF
An Intense Overview of the React Ecosystem
PPTX
Angular or React
PDF
React JS and why it's awesome
Full Stack_Reac web Development and Application
Getting Started with React, When You’re an Angular Developer
Webcomponents are your frameworks best friend
ReactJS - frontend web developing reactjs
React introduction
React & Flux Workshop
Progressive Web Apps and React
Professionalizing the Front-end
Fundamental concepts of react js
An Overview of the React Ecosystem
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
Tech Talk on ReactJS
React.js at Cortex
React && React Native workshop
React JS - A quick introduction tutorial
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
Welcome to React & Flux !
An Intense Overview of the React Ecosystem
Angular or React
React JS and why it's awesome
Ad

More from Fwdays (20)

PDF
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
PDF
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
PPTX
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
PPTX
"Як ми переписали Сільпо на Angular", Євген Русаков
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
PDF
"Validation and Observability of AI Agents", Oleksandr Denisyuk
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
PPTX
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
PPTX
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
PDF
"AI is already here. What will happen to your team (and your role) tomorrow?"...
PPTX
"Is it worth investing in AI in 2025?", Alexander Sharko
PDF
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
PDF
"Database isolation: how we deal with hundreds of direct connections to the d...
PDF
"Scaling in space and time with Temporal", Andriy Lupa .pdf
PPTX
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
PPTX
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
PPTX
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
"Як ми переписали Сільпо на Angular", Євген Русаков
"AI Transformation: Directions and Challenges", Pavlo Shaternik
"Validation and Observability of AI Agents", Oleksandr Denisyuk
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
"AI is already here. What will happen to your team (and your role) tomorrow?"...
"Is it worth investing in AI in 2025?", Alexander Sharko
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Database isolation: how we deal with hundreds of direct connections to the d...
"Scaling in space and time with Temporal", Andriy Lupa .pdf
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
Ad

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
sap open course for s4hana steps from ECC to s4
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPT
Teaching material agriculture food technology
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
KodekX | Application Modernization Development
PPTX
Big Data Technologies - Introduction.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Encapsulation_ Review paper, used for researhc scholars
Unlocking AI with Model Context Protocol (MCP)
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Understanding_Digital_Forensics_Presentation.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
sap open course for s4hana steps from ECC to s4
MIND Revenue Release Quarter 2 2025 Press Release
Digital-Transformation-Roadmap-for-Companies.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Spectral efficient network and resource selection model in 5G networks
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
cuic standard and advanced reporting.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Teaching material agriculture food technology
NewMind AI Weekly Chronicles - August'25 Week I
KodekX | Application Modernization Development
Big Data Technologies - Introduction.pptx

"Crafting a Third-Party Banking Library with Web Components and React", German Smolyar

  • 2. You are never alone 🤲 If you need banking features, don’t build a Bank - integrate with it…
  • 4. Crafting a Third-Party Banking Library with Web Components and React
  • 5. Nice to meet you 🤝 ● Software Engineer at Unit ● Was born in Zhytomyr 󰑒 ● Studied Cyber Security 🔐 ● Former Radio and Wedding host 🎤 ● Moved to Israel 󰏛 in 2017 ● Writing in TS and Scala
  • 6. ● Don’t want to write a lot of code ● No impact on my app ● Minimal documentation reading ● Designer must be satisfied ● Compatible with my framework ● Should be fast Using 󰞦 ● Don’t want to write a lot of code ● No bugs, please ● No client specific features ● Write with favorite framework ● Should work everywhere ● Business needs to serve throw CDN for regulatory issues Building 󰠻
  • 7. 🧐 Which options do we have? 💡 We can build React, Angular, Vue, Ember... whichever library? 😔 💡 We could use <Iframe>? 😔 💡 Maybe classical way of exposing functions? 😔
  • 8. 󰠻👍 One more thing Web Components
  • 9. Key features 🔑 Shadow DOM Encapsulation 󰞲 Custom Elements Way to create new HTML elements 👻 Slots Placeholders 🚮
  • 10. 󰞲 Custom elements <component> </component>
  • 11. 🪴 Shadow DOM helps with DOM pollution
  • 12. 🪴 Shadow DOM helps with DOM pollution
  • 14. 󰠻 Why? ● Widely supported across all browsers ● Framework-independent ● Declarative ● Encapsulation ● Fail safe (calling an HTML element which doesn’t exist does not cause an error)
  • 15. 😨 What about framework? Lit Stencil React
  • 16. “React and Web Components are built to solve different problems. Web Components provide strong encapsulation for reusable components, while React provides a declarative library that keeps the DOM in sync with your data. The two goals are complementary. As a developer, you are free to use React in your Web Components, or to use Web Components in React, or both.” 🤨 Is it ok to use React?
  • 18. But in a real world… We ended up with this 📡 Communication Web Component React Application const ui = function(state) Web Component Web Component Main App Elements Main App Elements
  • 19. You can request to refresh component ⚙ Custom Events
  • 20. ⚙ Custom Events You can listen to onload
  • 21. Reflect on async changes ⚙ Custom Events
  • 22. 󰞦 Enough of me, how can you use it? Demo
  • 27. So each view is component
  • 28. 󰠻 Event Bus (sub / pub pattern) To ensure a React component receives events meant specifically for it, we utilize a dedicated event bus for each web component. The event bus has two key functions: eventbus.publish() Receives data and publishes an even encapsulating that data. Internally it creates a new CustomEvent. eventbus.subscribe() Tells the event bus to add an event listener This is the way to get event that WE KNOW was addressed to us.
  • 29. 📱 Can we do something for Native (iOS, Android)? Web View Native Experiences
  • 30. 😬 How can we achieve it? Card App own UI Component App own UI Component Web view Menu
  • 31. 🤔 What if we change it a bit? Card App own UI Component App own UI Component Web view Card App own UI Component App own UI Component Web view Bottom Sheet Web view { Event }
  • 32. 󰞦 What's going on here? Can you prove it?
  • 34. 💪 How are we working? Atomic Design Methodology Atoms Molecules Organisms Templates Pages
  • 35. 🧪 How are we theming? Global Settings Theming Default Settings Component Setting The @layer CSS at-rule is used to declare a cascade layer and can also be used to define the order of precedence in case of multiple cascade layers.
  • 36. 🚀 How are we performing?
  • 37. 📦 General ● We use Storybook for development ● We follow Semantic Versioning. Each version is a new file. ● We keep the right to deploy regulatory changes to existing versions using cherry pick ● We use Cypress for UI tests ● We have security check in CI process ● We deploy preview for each PR
  • 38. 🎁 Takeaways ● While building client libraries, put yourself in junior pants 👖 Always choose best possible interfaces ● Be native and clear in your interfaces ● React is not framework for SPA, it’s just a library as jQuery 💔💀 was ● Everything is possible, don’t work too much
  • 39. Q&A