4 ms·
Ask HN: Is the need for SPA only a question of team size?
SPA vs Django/Rails is always a hot topic on HN. A lot of people don't like SPA and try to say that Django/Rail is better.
From my experience Django/Rail doesn't scale in term of number of developers working on the frontend.
When you have 3 good developers you don't need a super good architectured front-end and a SPA framework, you can use server rendering but as soon as you start to have 5-6 developers working only the front-end that doesn't work well
I'm interested about your point of view on that
- borplk 8y agoIt also depends on the nature of the app. The SPA arguments often have two groups on each side. On one hand there are people building content-heavy sites claiming traditional Django/Rails stuff is perfect. On the other hand you have people who work on heavy web apps where the user is interacting with the application for many hours. These are more like desktop apps that happen to run in a browser. To provide a good modern experience for a heavy web app using traditional Django/Rails stuff is basically impossible. People will eventually end up creating a half-SPA half-Django monster. SPAs used to be harder to do 5 years ago. Now they are still not super easy but easy enough that you can more safely pick a SPA for many apps.
- joelbluminator 8y ago"To provide a good modern experience for a heavy web app using traditional Django/Rails stuff is basically impossible", Any links to that? AFAIK Github are still on pjax which is a less fancy version of turbolinks. Basecamp isn't a SPA. I don't think shopify is a SPA. etc etc...
- CM30 8y agoNot really. It's more about the purpose of the site/app. If your site is mostly content based, then you likely don't need an SPA. That's the ideal use case for a traditional website done with whatever you use (in this case Django/Rails). A wiki, a blog/news site, a business info site, etc... all those are 100% use cases for traditional sites. You also need to ask how often a user will interact with the app and what they'll do. A forum probably doesn't need to be a SPA, since people won't (for the most part) be auto refreshing the page non stop for hours, they'll be coming back periodically to check for new content. On the other hand, if your site needs regular updates, users are going to be using it for hours on end, it replicates a desktop program, etc... then that's a good SPA use case. Team size is more an issue of management and splitting things into components.
- aosaigh 8y agoNo. For data-driven apps, it's a question of how your users interact with that data. Do you need an application that allows users to have an interactive view of some data that wouldn't be easily achieved through a traditional CRUD approach? Then consider SPAs. Otherwise, stick to traditional template driven apps. SPAs significantly multiply the complexity of an application, particularly if you are using unopinionated frontend frameworks, where you suddenly have to make a huge number of design decisions on how your local data is stored and transmitted to your API.
- andrei_says_ 8y agoThis is a very good point and complex data interfaces are often needed sparingly so a web app may be completely OK with SSR except for a couple of highly interactive pages. Unfortunately I see purely crud apps presented as SPAs for no apparent reason. A recent example is att’s consumer facing site — all page loads were happening via Ajax for no apparent reason.
- duiker101 8y agoI am not sure what is your relation between devs and framework. If you have good devs they will know how to work with what they have. Choosing your infrastructure should not be something exclusively driven by the size and skill of your team but mostly by the business's requirements.
- quickthrower2 8y agoI’d hope that SPA choice would be based on the needs of the users, as well as considering the teams skills and cost of maintaining which is likely higher in a SPA. Other considerations are the types of browser end users might have and if you want to enforce minimum versions. Also there is internet connection speeds and bundle sizes.