
Ask HN: Is the need for SPA only a question of team size? - polote
SPA vs Django&#x2F;Rails is always a hot topic on HN. A lot of people don&#x27;t like SPA and try to say that Django&#x2F;Rail is better.<p>From my experience Django&#x2F;Rail doesn&#x27;t scale in term of number of developers working on the frontend.<p>When you have 3 good developers you don&#x27;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&#x27;t work well<p>I&#x27;m interested about your point of view on that
======
borplk
It 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
"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
Not 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.

------
duiker101
I 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.

------
aosaigh
No. 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_
This 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.

------
quickthrower2
I’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.

