Trying to decide on going full SPA, or a mix of server rendering and VueJS

IMO Vue (or React) are a pretty poor choice for a SPA. You end up with too much glue and fairy dust holding together your app, while a more comprehensive framework would give a more cohesive experience. Ember's CLI in particular is a world-changing experience, and using other frameworks feels like a horrible slog to me now, a swamp of build tools and busy-work.

Have any of you done this, or are you working on projects that do this?

Sure. I work on SPAs all the time. It's pretty much the default pattern on my personal projects, and also what I work on full time.

How has that been?

Fine on my own stuff. My full time work is very constrained by old technologies and most critically exceptionally poorly thought-out API design.

What are some of the disadvantages of such an architecture?

Never ask for disadvantages without also asking for advantages. It will distort your view.

Disadvantages typically are potentially a reduction in usability - things like back and next buttons, bookmarking, open in new window, etc, are easy to break. When operating a backend only app you simply reset the state each request, but managing state in a long-lived JS app can be non-trivial. Can end up with some duplication - routes, tests, models, etc. Though SEO considerations are largely dealt with now (and typically irrelevant to many SPA needs) there are definite implications with things like social media sharing, AMP generation, etc.

Advantages: Implementation can be tested independently - API and interface. Possible to create fast, intuitive and highly responsive web applications. Can interact more cleanly - no full page refresh to top of page. Can animate transitions between pages. Creation of quality API leads to a re-usable resource to expose data for mobile app, etc.

Is there anything you wish you knew before going down that path?

Ember. I tried Angular, React, etc, but I only really found a joy for this sort of pattern when I started using Ember. It's solely and uniquely dedicated to SPA production, and it has a workflow that's amazingly productive.

/r/webdev Thread