Creating Static Customizable Page via app

16 0 14

I want to build an app that user can create his/her own content/design from admin/app dashboard. 
I figured this may be developed by using couple of ways. (I suppose)

Let's say we want to create About Us page.
Flow may be like this:
When app installed,
0. install js & css under theme/assets
1. create template under theme/templates (page.myAboutUsApp.liquid)
2. create automatically a page (this can be reached from Online Store/Pages) by using page.myAboutUsApp.liquid template.
3. add to main menu (About Us)

This doesn't seem to me it's like a best practice, because do we have any chance to remove this changes if the one wants to delete app ? 

I have read in somewhere, do not register your javascript files in theme/layout because if one deletes the app, they also will need to go and delete from theme as well. So what is the solution ? 
How can I create this kind of static (but customizable) page ? 

I examined couple of similar apps, I saw some of them doing this by directly changing themes, some of them use external server to store this custom data and make the website fetch from this server when the page is loaded etc. (couldn't figure how yet though)

Waiting your helps, thanks in advance

Second Image Hover Animations converts product images on your site into dynamic ones with simply one click
The Detective FAQ outstanding FAQ page templates & Product FAQs
Boostify ‑ Variant Swatch Show variants on collections with one click.