Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Drawing the line between 3rd party and custom code
Search
Glenn Reyes
October 11, 2019
Programming
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Drawing the line between 3rd party and custom code
Glenn Reyes
October 11, 2019
More Decks by Glenn Reyes
See All by Glenn Reyes
Dutch AI Conference - Building Interactive Chat Interfaces with MCP-UI
glennreyes
0
51
Advanced TypeScript for React
glennreyes
0
140
TypeScript Patterns for Better React Components
glennreyes
1
560
GraphQL for React Developers
glennreyes
0
230
When things go wrong, get errors right!
glennreyes
0
170
GraphQL for JS developers
glennreyes
1
190
Building Dapps with React
glennreyes
0
140
Third-Party or Custom Code? The Art of Software Decisions
glennreyes
0
130
UI/UX challenges of Web3 and Dapps
glennreyes
0
210
Other Decks in Programming
See All in Programming
ActionController meets Protocol Buffers
sorah
0
530
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
1.4k
Event is what happens
moro
2
790
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
220
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Discover your Explorer Soul
emna__ayadi
2
1.3k
4 Signs Your Business is Dying
shpigford
187
23k
Building an army of robots
kneath
307
47k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Crafting Experiences
bethany
1
380
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Transcript
Drawing the line between 3rd party and custom code @glnnrys
· glennreyes.com
@glnnrys
@glnnrys
Glenn Reyes @glnnrys
Why do we love building apps? @glnnrys
None
Open Source is ❤ @glnnrys
Vincent van Gogh “Great things are done by a series
of small things brought together.” @glnnrys
@glnnrys
How do we decide on things? @glnnrys
Which form library in React? @glnnrys
Which form library? formik final-form redux-form Vanilla @glnnrys
Which date library? @glnnrys
Which date library? moment dayjs date-fns Native luxon @glnnrys
Which id generator? nanoid cuid shortid my own @glnnrys
None
Making decisions are hard and time consuming. @glnnrys
Approaches @glnnrys
Just pick any @glnnrys
None
None
None
None
None
What I need vs what my users need @glnnrys
None
👩💻👨💻 @glnnrys
In any case ... @glnnrys
@glnnrys 🤓 👩💻 👷 @glnnrys
@glnnrys 🤓 👩💻 👷 🐒 👩🎤 🔮 🥑 🍌 @glnnrys
Architectural Decision @glnnrys
Complexity Speed API Size Bugs Dependency Documentation Time Constraints Development
Environment License @glnnrys
How to measure complexity? @glnnrys
// $(el).toggleClass(className) function toggleClass(el, className) { if (el.classList) { el.classList.toggle(className);
} else { var classes = el.className.split(' '); var existingIndex = classes.indexOf(className); if (existingIndex >= 0) classes.splice(existingIndex, 1); else classes.push(className); el.className = classes.join(' '); } } youmightnotneedjquery.com @glnnrys
// $(el).toggleClass(className) var classes = el.className.split(' '); var existingIndex =
classes.indexOf(className); if (existingIndex >= 0) classes.splice(existingIndex, 1); else classes.push(className); el.className = classes.join(' '); } @glnnrys
// $(el).toggleClass(className) var classes = el.className.split(' '); var existingIndex =
classes.indexOf(className); if (existingIndex >= 0) classes.splice(existingIndex, 1); else classes.push(className); el.className = classes.join(' '); } 🧐 @glnnrys
@glnnrys
// $(el).toggleClass(className) function toggleClass(el, className) { if (el.classList) { el.classList.toggle(className);
} else { var classes = el.className.split(' '); var existingIndex = classes.indexOf(className); if (existingIndex >= 0) classes.splice(existingIndex, 1); else classes.push(className); el.className = classes.join(' '); } } @glnnrys
// $(el).toggleClass(className) function toggleClass(el, className) { el.classList.toggle(className); } @glnnrys
element.classList.toggle(className); @glnnrys
Bundle size @glnnrys
https://bundlephobia.com/result?p=react @glnnrys
Import Cost VSCode Extension @glnnrys
@glnnrys
@glnnrys
On the web there's new libraries every day @glnnrys
Use what works best for you @glnnrys
Community Support ❤ @glnnrys
@glnnrys
People love solving problems @glnnrys
NO PROBLEMS === NO 🤑 🤑 🤑
None
How are problems solved in web development? @glnnrys
Decisions @glnnrys
How to decide what library to use? @glnnrys
Is it over-engineered? @glnnrys
@glnnrys
@glnnrys
Look into the source code 🤓 @glnnrys
The node_modules folder is your friend @glnnrys
Let maintainers know about your problem, ideas & improvements @glnnrys
It should solve your problem @glnnrys
Dealing with picking the most popular library @glnnrys
@glnnrys
⭐ GitHub stars 🛠 Active maintenance 🍃 Active community 💻
Platforms @glnnrys
Should I pick the most popular library? @glnnrys
@glnnrys
How about just roll my own? @glnnrys
¯\_(ツ)_/¯ @glnnrys
Rolling your own code allows you to Tailor code to
your exact needs @glnnrys
Rolling your own code gives you full control @glnnrys
With full control it's your responsibility to maintain and keep
track of your code @glnnrys
Where to draw the line? @glnnrys
Find the right balance intuitively @glnnrys
Understand the importance of decisions @glnnrys
Harm reduction @glnnrys
Try to get the best outcome but reduce potential risks
@glnnrys
Make decisions @glnnrys
Make good decisions @glnnrys
Make good decisions Make clean decisions @glnnrys
Make good decisions Make clean decisions Make right decisions @glnnrys
Make good decisions Make clean decisions Make right decisions Make
smart decisions @glnnrys
Make good decisions Make clean decisions Make right decisions Make
smart decisions Make reasonable decisions @glnnrys
Everytime we add more code into our library we increase
the spectrum for new bugs @glnnrys
Take risks and keep moving forward @glnnrys
Always start simple @glnnrys
Keep good practices that worked in the past. @glnnrys
Don't let new things intimidate you @glnnrys
Write the best code possible @glnnrys
One day old code becomes legacy. And if they are
great, we'll enjoy using older code even more. @glnnrys
“ ” Kent C. Dodds We should be mindful of
the fact that we don't really know what requirements will be placed upon our code in the future. @glnnrys
Keep using code what you know best @glnnrys
Never stop learning @glnnrys
Never stop learning new things @glnnrys
Thank you @glnnrys · glennreyes.com