I get where you’re coming from, but I think you’re missing some pretty major benefits that these frameworks actually solve.
The “just clone it” approach works fine when you’re building simple, static UIs. But once you start dealing with complex state management, like having dozens of UI elements that need to update based on player data, game state, inventory changes, etc, manually tracking and updating everything becomes a nightmare.
Declarative programming is not about being fancy, it’s about reducing bugs. When you describe what the UI should look like based on the current state, you literally eliminate entire categories of errors. No more forgetting to update that one textlabel when the player’s gold changes, no more desynced UI states, no more “why is this button still enabled when it shouldn’t be?”
The performance argument doesn’t really hold water either. These frameworks are built by people who understand Roblox’s constraints. They’re not adding bloat for the sake of it, but solving real performance problems that come up when you’re manually managing complex UI hierarchies.
Sure, if you’re building a simple main menu or a basic shop ui, maybe you don’t need a framework. But once you’re dealing with dynamic inventory systems, real time game state displays, or any UI that needs to respond to multiple data sources at the same time, these tools start paying for themselves pretty quickly.
The “TV remote” comparison is kinda unfair too. Good frameworks actually give you more control, not less. You just express that control at a higher level instead of getting bogged down in the tedious manual updates.
At the end of the day, use what you are most comfortable with, but don’t hate on the other one just because you don’t use it.
@officialnabalt: Answering your question, I think both Roact and Fusion are great choices, you should try them out and see what you think afterwards. If you find it’s too much overhead for your UI needs, you’re not required to use it.