
Ask HN: To SPA or Not to SPA? (Existing Product) - splotsh
	Backstory:
We&#x27;ve got an existing SaaS product, chugging along with the Django templating engine and an old Bootstrap template bought for $20 several years ago. We&#x27;re a growing team of mostly backend developers, and now have this nice and fancy 2018 re-design of our dashboard lying in front of us that we need to implement for several reasons (current design is not easily extendable as it was not custom made for our requirements, everyone complains that it looks old and feels chunky, etc..).<p>We have several options:<p>Hire an experienced frontend developer (that&#x27;s comfortable with a framework such as React), and have that person tag team with someone from the backend to create an API + SPA.<p>Pros: Decoupled approach makes things easier&#x2F;quicker to develop the product further as everyone just concentrates on what they do best.<p>Cons: Going will be slow as no backend API exists at this point AND we will have to support 2 applications going forward. The complete responsibility of the frontend will lie with the sole frontend developer now and in the future, as we will always be a backend heavy team that will not be able to help with the frontend if necessary.<p>2. Hire a mid-level frontend developer: stick with Django templates, get frontend dev to upgrade current template to latest bootstrap(or whatever works and is popular these days), and implement new design.<p>Pros: No API needed, backend team can continue working on product roadmap. Will have to support only 1 app. Backend devs will be comfortable fixing bugs&#x2F;supporting frontend code if necessary.<p>Cons: Lose out on super cool new frontend tech(?), oldschool approach ?<p>3. Hire an experienced frontend developer and do a hybrid approach (page-as-a-component ? https:&#x2F;&#x2F;hackernoon.com&#x2F;reconciling-djangos-mvc-templates-with-react-components-3aa986cf510a)<p>I&#x27;d love to hear from someone that grew a project and a team and had to face a similar decision.<p>Thanks in advance!
======
heliodor
Separate the two concerns:

1) UI/UX need to be updated. 2) Should we turn our backend into an SPA?

They are independent of each other. You can do them at separate times in
different chronological order or at the same time.

Your customers care about issue #1, from what you mentioned.

Issue #2 is optional. Your customers use your product because of the benefits
it brings them, not because of the presence or absence of a bit of flicker
when moving from page to page. With the use of Cloudflare or CloudFront, that
flicker should not bother anyone on a mission to get work done. Therefore, you
will have to consider the benefits of removing that flicker versus the costs:

\- A React or Angular developer will cost more than a vanilla frontend
developer \- You will add one new type of employee (frontend engineer), and
you'll have to worry how to source a new one when the current one quits or
gets fired. \- The work will probably end up taking two or three times the
time and money, as is typical in software engineering.

PS: I don't pass your test for a target adviser: > "grew a project and a team
and had to face a similar decision"

Joining this group
([https://www.meetup.com/ctoschool/](https://www.meetup.com/ctoschool/)) and
asking nicely in the discussion section might yield more/better answers.

