SlideShare a Scribd company logo
Extending OutSystems UI Framework with
Openness and Extensibility
Bernardo Cardoso
Senior Software Engineer @OutSystems
Empowering Advanced
Users
What you’ll
learn here
1. How we got here
2. Now & Future
• The new vision
• Why
• How
3. Extensibility Vision
4. Demo
5. Public GitHub Repo
6. See you later
How we got here
From Silk to OutSystems UI
2015-2016
Silk UI/ Silk UI Mobile
● Great out-of-the-box defaults.
● Completely closed Patterns.
Extensibility
Developer Experience
2018
OutSystems UI Web
● Increased extensibility & customization with
ExtendedClass and CSS Variables.
● Atomic Design.
● Less emphasis on defaults, as increased
modularity was expected to be used by
developers.
Extensibility
Developer Experience
2015-2016
2019
OutSystems UI
● Continuity of OutSystems UI Web CSS
improvements.
● Loss on the JavasScript extensibility, as
this was a continuation of the old Silk UI
Mobile.
2015-2016
2018
Extensibility
Developer Experience
2019
2022
OutSystems UI (New JS Framework)
● Great increase on extensibility.
● Improvement of the out-of-the-box
defaults and developer experience.
2015-2016
2018
Extensibility
Developer Experience
Now & Future
The new vision
Why
Give more power to customers
Why
Give more power to customers
Improve low-code developer experience
Why
Give more power to customers
Improve low-code developer experience
Why
Improve code quality and security
How
Scalability
How
Scalability
Openness
How
Scalability
Openness
Community driven
How
The tools
A new JavaScript Framework, that holds all Patterns Classes and API’s
used on the low-code side.
Implementation of TypeScript and SCSS.
All done on Visual Studio Code and stored on GitHub.
#scalability
#scalability
Providers
#scalability
Providers
OSFramework
#scalability
OutSystems Low-Code
Providers
OSFramework
OSUI API
#scalability
OutSystems Low-Code
Providers
OSFramework
OSUI API
#scalability
OnInitialize
OnReady
ParametersChange
Destroy
OutSystems.OSUI.<PatternsName>API.Create
OutSystems.OSUI.<PatternsName>API.Initialize
OutSystems.OSUI.<PatternsName>API.ChangeProperty
OutSystems.OSUI.<PatternsName>API.Destroy
OutSystems Low-Code
Providers
OSFramework
OSUI API
#scalability
For more information about the architecture
behind it, check the amazing talk by Ruben
Gonçalves: Building Frameworks: from concept to
completion.
You can also check the public OutSystems UI JS
TypeDocs’s Documentation, with UML Diagrams
with detailed information about properties,
methods, interfaces, inheritance, etc., for each
Pattern’s JS Class.
#openness
Extensibility Vision
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
Blocks Input Parameters
● Root level
● OptionalConfigs
structures
#openness #scalability
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
UI Patterns’s Client Actions
● Low-code wrappers for the
API calls on OutSystems UI
JS.
● Covers basic use-cases like
Open/Close/Disabled/etc or
it can be used to offer other
non-essential use-cases,
that wouldn’t fit as Input
Parameters.
#openness #scalability
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
“The new AdvancedFormat”
● Set[ProviderName]Configs
● Set[ProviderName]Event
● Unset[ProviderName]Event
#openness #scalability
Check a full detailed example on this article:
OutSystems UI Extensibility Part I
https://medium.com/@bernardocardoso/outsystems-ui-extensibility-part-i-f0d5304896ee
Amazing Author
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
Direct usage of API’s from
OutSystems UI, that are not
covered by Client Actions.
Better to use them on the
Initialized event of each
Pattern.
#openness #scalability
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
● Extend Pattern’s JS
Classes
● Install OutSystems UI
npm package
● Create new Patterns
using our TypeScript
architecture
● Generate your own scss
theme.
#openness #scalability
Check a full detailed example on this article:
OutSystems UI Extensibility Part II
https://medium.com/@bernardocardoso/outsystems-ui-extensibility-part-ii-dd35da19de4e
Amazing Author
Approachability
C
o
m
p
l
e
x
i
t
y
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
Configurability
(OutSystems Low-Code)
More extensibility solutions
abstracted to low-code.
#openness #scalability
Approachability
C
o
m
p
l
e
x
i
t
y
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
High Code
(JavaScript/TypeScript)
More freedom for advanced
developers, that know and
want to have control of the
code behind the UI Patterns.
#openness #scalability
Configurability
(OutSystems Low-Code)
More extensibility solutions
abstracted to low-code.
Extensibility Example
Install npm package & extend UI Pattern’s
JS Class
Github Repo
#openness #community-driven
OutSystems UI npm package
OutSystems UI Git Repository
PR’s are very much
welcomed! 👍
OutSystems UI npm package
OutSystems UI Git Repository
PR’s are very much
welcomed! 👍
#openness #community-driven
https://medium.com/@bernardocardoso
https://www.linkedin.com/in/bernardo-cardoso-0a740b95/
Thank You
Bernardo Cardoso
Senior Software Engineer @OutSystems
40
RATE THE SESSION
Go to the app > agenda > select the session > rate.
Extending OutSystems UI Framework with
Openness and Extensibility
Empowering Advanced
Users

More Related Content

PDF
C++でできる!OS自作入門
PPTX
認証サービスへのWebAuthnの導入
PDF
WebAssembly向け多倍長演算の実装
PDF
とあるメーカーのRedmine活用事例
PDF
Node.js 기본
PPTX
Cloudflareのソリューションを使用して悪意のあるBot対策
PPTX
BoostAsioで可読性を求めるのは間違っているだろうか
PDF
메타버스 서비스에 Android 개발자가 할 일이 있나요?
C++でできる!OS自作入門
認証サービスへのWebAuthnの導入
WebAssembly向け多倍長演算の実装
とあるメーカーのRedmine活用事例
Node.js 기본
Cloudflareのソリューションを使用して悪意のあるBot対策
BoostAsioで可読性を求めるのは間違っているだろうか
메타버스 서비스에 Android 개발자가 할 일이 있나요?

What's hot (20)

PPTX
reduxのstate設計の話
PDF
詳説WebAssembly
PDF
SpectreBustersあるいはLinuxにおけるSpectre対策
PPTX
JSON:APIについてざっくり入門
PDF
オブジェクトストレージの詳解とクラウドサービスを活かすスケーラブルなシステム開発
 
PPTX
レガシーコードに向き合ってみた話
PDF
Redmineを使ってみよう
PDF
C/C++プログラマのための開発ツール
PDF
条件分岐とcmovとmaxps
PDF
20190625 OpenACC 講習会 第3部
PPTX
冬のLock free祭り safe
PDF
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
PDF
2019/2/7 EC-CUBE東京UG勉強会-PurchaseFlowの使い方-
PDF
webエンジニアのためのはじめてのredis
PDF
UEFIベアメタルプログラミング
PDF
マイクロにしすぎた結果がこれだよ!
PDF
ソフトウェア設計のすすめ
PDF
はじめてのGit forデザイナー&コーダー
PPTX
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
PDF
Use Symfony Messenger Component and CQRS!
reduxのstate設計の話
詳説WebAssembly
SpectreBustersあるいはLinuxにおけるSpectre対策
JSON:APIについてざっくり入門
オブジェクトストレージの詳解とクラウドサービスを活かすスケーラブルなシステム開発
 
レガシーコードに向き合ってみた話
Redmineを使ってみよう
C/C++プログラマのための開発ツール
条件分岐とcmovとmaxps
20190625 OpenACC 講習会 第3部
冬のLock free祭り safe
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
2019/2/7 EC-CUBE東京UG勉強会-PurchaseFlowの使い方-
webエンジニアのためのはじめてのredis
UEFIベアメタルプログラミング
マイクロにしすぎた結果がこれだよ!
ソフトウェア設計のすすめ
はじめてのGit forデザイナー&コーダー
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
Use Symfony Messenger Component and CQRS!
Ad

Similar to Empowering Advanced Users: Extending OutSystems UI Framework with Openness and Extensibility (20)

PPTX
Extending OutSystems with Javascript
PDF
Streamline Development with OutSystems Low-Code App Development Solutions
PPTX
OutSystems: A more efficient way to build apps!
PDF
Top JavaScript Frameworks Compared
PPTX
Delivering Mobile Apps That Perform
PDF
Open-Source Low-Code - Craig St. Jean, Xebia
PDF
Universidade Aberta.pdfffsffdsddsggggsgsdddd
PDF
How to create high scalable JavaScript apps for Java Portals
PDF
Building an Enterprise Design System for 2024
PPT
TypeScript - Javascript done right
PDF
Session at Oredev 2016.
KEY
CommonJS via PINF JavaScript Loader - Introduction
PDF
Getting Started with OpenUI5 (San Francisco State University)
PDF
UX Workshop: Lean UX process (Usability Day FMH)
PPTX
UI5 Overview for ROOT
PPTX
Journey to Forge Mastery: Part 1 - Webinar on building a Forge component usi...
PDF
Slovenian Oracle User Group
PDF
Workshop UX Patterns for Developers - MicrosoftCommiunity
PPTX
UI5con 2025 - Keynote - Ignite the Future
PDF
Imworld.ro
Extending OutSystems with Javascript
Streamline Development with OutSystems Low-Code App Development Solutions
OutSystems: A more efficient way to build apps!
Top JavaScript Frameworks Compared
Delivering Mobile Apps That Perform
Open-Source Low-Code - Craig St. Jean, Xebia
Universidade Aberta.pdfffsffdsddsggggsgsdddd
How to create high scalable JavaScript apps for Java Portals
Building an Enterprise Design System for 2024
TypeScript - Javascript done right
Session at Oredev 2016.
CommonJS via PINF JavaScript Loader - Introduction
Getting Started with OpenUI5 (San Francisco State University)
UX Workshop: Lean UX process (Usability Day FMH)
UI5 Overview for ROOT
Journey to Forge Mastery: Part 1 - Webinar on building a Forge component usi...
Slovenian Oracle User Group
Workshop UX Patterns for Developers - MicrosoftCommiunity
UI5con 2025 - Keynote - Ignite the Future
Imworld.ro
Ad

Recently uploaded (20)

PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
history of c programming in notes for students .pptx
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Digital Strategies for Manufacturing Companies
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
ai tools demonstartion for schools and inter college
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Introduction to Artificial Intelligence
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Which alternative to Crystal Reports is best for small or large businesses.pdf
How Creative Agencies Leverage Project Management Software.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Upgrade and Innovation Strategies for SAP ERP Customers
Odoo Companies in India – Driving Business Transformation.pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
history of c programming in notes for students .pptx
Softaken Excel to vCard Converter Software.pdf
Digital Strategies for Manufacturing Companies
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Operating system designcfffgfgggggggvggggggggg
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
ai tools demonstartion for schools and inter college
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Introduction to Artificial Intelligence
How to Migrate SBCGlobal Email to Yahoo Easily
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025

Empowering Advanced Users: Extending OutSystems UI Framework with Openness and Extensibility