I took a long thinking on the subject, and read everything everyone here wrote.
I have a mixed feeling about it. Following a short discussion with Ohad, he encouraged me to write it here.
Some of what I’m writing here, already been raised, but trying to explain how I see things, so sorry from advance
I’ved created a web based management tool for also technical stuff, that is fully SPA, and progressive loading, and I made a lot of errors in designing it properly, that it’s a pain to maintain, and today I’m not sure that it was right thing to do.
The reason is that the data store sometimes holds old information that hurts the current usage, and on every page mount, I found myself in the need to either reload things, or just validate information what i currently have. The thing is, is that foreman is much more complex then what I wrote vue.js in this case, and the system I’ved created have some very complex stuff in it.
That worked for me much better, because it’s easier to create the proper API, and focus on functionality at the client side, and server side without limiting for a specific client side or server side technologies, so it was very easy to allow customers to integrate their own look and feel, while the server kept working, but it is not the case here. And I never created such system with integrated plugins.
The thing is, is that most current rails code becomes useless when moving to a real SPA, because even the routing will go over the client side, while the server side reports a 404 on a path request, the client capture it, and do the routing.
It means that the API calls must change, and then GraphQL comes in mind, and as mentioned, the API for tools such as hammer are a bit different then the UI, but the UI can use the same API, and also have additional API for it, for example user management, and other UI related stuff.
The thing that “scares” me here, is that the subject is so complex and requires so much trial and error before going to a path, and it’s not just “let’s go and see how it works”, because there are so many factors that will raise when testing, and I don’t think that there is right or wrong here, but only one big trail and error for trying to see what’s best suited for such system, after testing few paths and many types of usage and scenarios.
And when the best path for foreman will be found, I do see a lot of benefits for it.
Sorry for the scroll, but that’s how I see it