Hi @vim! Welcome to Ember and sorry it took a while to get a response. It was a holiday weekend so I for one have been out. Anyway I’m pretty sure Ember (or any other SPA framework like Angular, React, etc really) is exactly what you want here. The only thing you want to make sure is that you’ll be able to make AJAX requests to the remove server and all that entails (authentication, authorization, does it require any API keys, etc).
Then you can host those files pretty much anywhere (S3, your own server, even github pages). What happens after that (at a high level) looks something like this:
- you request the client assets via your browser (let’s say it’s an S3 bucket with a domain configured for “foo.com”, the browser downloads the index.html, and all the linked script files, standard stuff
- your ember code makes data requests through the “store” service, and those requests are translated (using Ember Data adapters) to AJAX requests which load the data from your remote server, normalize them in the serializer layer, and cache them locally. NOTE: this assumes you use Ember Data, if not you can just use regular custom AJAX requests
- you can also create records on the front-end and “save” them which persists them to the server (again, via Ember Data)
- as I mentioned before, “pages” are called “routes” and while you might have a URL that looks like “foo.com/bar” what that really translates to is "foo.com/index.html#/bar (that’s an oversimplification but basically how it works). So anyway you change “routes” instead of pages and that can change what data you fetch, UI you display, etc. Essentially the analog of changing actual “pages” on a server rendered or static html site.
Ember is a great framework and there is a TON of stuff that it provides out of the box and a very rich ecosystem of plugins called “addons” which can help you with anything from authentication to data fetching to rendering maps to internationalization to… well basically sky’s the limit. I would definitely recommend working through the guides to get started and if you have any questions feel free to ask here or in the discord community. And good luck!