Settings

Theme

Ask HN: To SPA or Not to SPA? (Existing Product)

2 points by splotsh 8 years ago · 1 comment · 2 min read


Backstory: We'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'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..).

We have several options:

Hire an experienced frontend developer (that's comfortable with a framework such as React), and have that person tag team with someone from the backend to create an API + SPA.

Pros: Decoupled approach makes things easier/quicker to develop the product further as everyone just concentrates on what they do best.

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.

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.

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/supporting frontend code if necessary.

Cons: Lose out on super cool new frontend tech(?), oldschool approach ?

3. Hire an experienced frontend developer and do a hybrid approach (page-as-a-component ? https://hackernoon.com/reconciling-djangos-mvc-templates-with-react-components-3aa986cf510a)

I'd love to hear from someone that grew a project and a team and had to face a similar decision.

Thanks in advance!

heliodor 8 years ago

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/) and asking nicely in the discussion section might yield more/better answers.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection