Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor frontend query tool #96

Closed
14 of 15 tasks
surchs opened this issue Jan 8, 2024 · 0 comments
Closed
14 of 15 tasks

Refactor frontend query tool #96

surchs opened this issue Jan 8, 2024 · 0 comments
Labels
Milestone Used to track other issues that are required to complete the milestone.

Comments

@surchs
Copy link
Contributor

surchs commented Jan 8, 2024

Context

Vue2 is end of life since December, Nuxt2 will be this summer. So issues like neurobagel/annotation_tool#533 both become more frequent and harder to fix. Although LTS for Nuxt and Vue exists, the maintenance cost will likely become larger and migrating to a newer framework is most likely the right call and cheaper in the mid term. So we decided to move away from Nuxt2/Vue2.

The obvious choice would be to go to Nuxt3. There are a couple of reasons why we won't do that:

  • The Vue2-Vue3 transition has been slow for third party library support like component libraries. This is even more so the case for Nuxt3, which is not (yet?) supported e.g. by Cypress. So the ecosystem hasn't caught up yet, and existing solutions don't have a large userbase.
  • Nuxt is a SSR framework. And while we get a bunch of quality of life features (file system routing, imports, fetch...), we ultimately don't need SSR for our tools. We pay for the convenience of Nuxt3 by being an even more niche framework than Vue3 - again making third party support worse
  • We mainly picked Vue because we thought that it is the more accessible framework for contributors who may not be very familiar with JS. The first part is probably true, but out actual community is mostly using React. Certainly most freelancers do.

So bottom line: Nuxt (or any SSR) is overkill for our purposes. And for maintainability, third party ecosystem, documentation, availability of contributors React is superior to Vue. So we decided to migrate from Nuxt2 to React. We will do that with the query tool first.

https://miro.com/app/board/uXjVN9R29Aw=/?share_link_id=256256517932

Why

  • to update our tech stack for frontend services to a current framework
  • to benefit from a wider tool and developer ecosystem
  • to benefit from existing solutions for auth in the near future
  • to ensure maintainability of the project frontend tools in the future

Outcomes

  • A new react based query tool repo exists
  • Build and dev tools are configured to current best practice and documented
  • We have a tested query tool that has feature parity with the legacy Nuxt version

What

@surchs surchs added this to Neurobagel Jan 8, 2024
@surchs surchs converted this from a draft issue Jan 8, 2024
@surchs surchs added refactor Simplifying or restructuring existing code or documentation. type:maintenance Milestone Used to track other issues that are required to complete the milestone. and removed refactor Simplifying or restructuring existing code or documentation. type:maintenance labels Jan 8, 2024
@rmanaem rmanaem closed this as completed Mar 13, 2024
@github-project-automation github-project-automation bot moved this to Review - Done in Neurobagel Mar 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Milestone Used to track other issues that are required to complete the milestone.
Projects
Archived in project
Development

No branches or pull requests

2 participants