ProppyJS

ProppyJS

Functional props composition for components

1 follower

ProppyJS: JavaScript library for functional composition of props for UI components. Tiny JavaScript library for functional props composition. Supporting @ReactJS, @VueJS, @PreactJS, and @ReactiveX.
ProppyJS gallery image
ProppyJS gallery image
ProppyJS gallery image
Launch Team
Anima - OnBrand Vibe Coding
Design-aware AI for modern product teams.
Promoted

What do you think? …

Mark Petty
This looks really nice. What are the key areas of differentiation from recompose?
Fahad Heylaal
@pettymark: thanks for the kind words, Mark! I have tried to explain the differences between Proppy and Recompose in the FAQ page here: https://proppyjs.com/docs/faq/ I will copy it here for convenience: - Not tied to any rendering libraries (like React or Vue.js) - Allows access to application-wide dependencies (like Redux store, config, etc) - Deals with only props generation - Doesn’t create a new component in tree per function Hope that helps!
Mark Petty
@fahad19 Point 2 and 4 makes this very compelling.
Jacqueline von Tesmar
Hey @fahad19, Can you tell us more about what you've built here and why you wanted to create it?
Fahad Heylaal
Hi @jacqvon! ProppyJS is a 1.5kB JavaScript library, that is: - Rendering library agnostic (works with React, Vue, Preact) - Abstracts props generation (objects that components receive to render themselves) - Integrates with other libraries (like Redux and RxJS) for data source easily The idea is to make developers focus on: - The behaviour of their UI Components, irrespective of their stack - The behaviour can be expressed as props only - The generated props can then be connected to any other rendering library Benefits: - Your components layer becomes simple and functional - All they do is receive props and render themselves (nothing else) - Easier unit testing since logic and presentation layer becomes separate - Interoperability with other libraries without locking you in Please let me know if you have any further questions :)