I’d do this, but it’s entirely determined by how competent you are and how scaleably you can build.

There’s much on this forum about performance scalability, but that’s the easy part. Product maintainability is the hard part - how do you effectively modularise and integrate various features of the app such that 1. new features are easy to develop and 2. modifying / revising existing features is easy and not fragile.

Reuseable elements are the answer to product maintainability, but it’s kind of hard to explain. As a rule of thumb, basically all of my apps now:

  • have all popups in reuseable elements

  • have all tables in reuseable elements with properties to show/hide columns depending on user type

  • have all group focus in reuseable element with conditions on each group focus items based on the current user’s permissions so they can/can’t take actions on a specific Thing

  • use option sets for screen / navigation

  • for thing ‘titles’, I call them tags. This is a tag for example:
    CleanShot 2024-09-17 at 15.59.45@2x

  • Have one reuseable tag for each data type. Then, inside the tag, you can configure actions like Go to page when the tag is clicked - e.g if a user tag is clicked, go to the user’s profile. That means that you can use the tag all over the app, and if you want to change it, it’ll be updated everywhere.

  • Other reuseable elements for things like empty states which are the same across app. Use properties for custom title/descriptions.

  • Same for action confirmations - those are the same across the app, so use a single popup for action confirmations with properties to modify the text/description inside the popup

Here’s my pages:

Here’s my reuseable elements:
CleanShot 2024-09-17 at 16.01.53

Reuseable elements are king.

Not relevant

Debateable but would be more hassle than it’s worth

2 Likes