nodejs.dev icon indicating copy to clipboard operation
nodejs.dev copied to clipboard

Final underlying technology discussion

Open Trott opened this issue 3 years ago • 1 comments

In an effort to get this project over the finish line in the foreseeable future (let's shoot for the end of 2022?) and in a state where we can literally replace nodejs.org, let's get final agreement on technology, based on discussion at today's WG meeting.

Options to consider:

  1. Stay with Gatsby
  2. Next.js
  3. 11ty

Trott avatar Sep 21 '22 19:09 Trott

If we stick with Gatsby, we need to ensure that builds are stable.

As I was explaining before, the biggest issue on builds is MDX. The build fails if any non-conforming MDX code is present in any Markdown file. Many of our older API pages have issues and many of our blog posts too.

ovflowd avatar Sep 21 '22 21:09 ovflowd

why not next.js? Next.js has a good performance and support for MDX as well.

b4s36t4 avatar Sep 25 '22 18:09 b4s36t4

I think we should stick with gatsby. Rewriting the website is probably the last thing we should do if the goal was to replace nodejs.org by the end of the year.

benhalverson avatar Sep 27 '22 05:09 benhalverson

@benhalverson, keep in mind that if we need to migrate previous API versions to this repo and blog posts, Gatsby will crash, and we will need to fix file per file to conform with MDX manually. It is a time-demanding job. For API, we would need to fix the source of the docs (if we're considering including v16 docs, for example).

I'm concerned with Gatsby's overall stability. It works for now, but we also need to consider maintainability and remove all code that is not necessary and make it easier to contribute here.

ovflowd avatar Sep 27 '22 09:09 ovflowd

But yes, I do think that doing a rewrite demands a lot of time and we all need to weigh the pros and cons and see what would be best. For example, Gatsby doesn't support basic GraphQL operands such as "OR", and they're deprecating support for MDXv1 soon. Which we rely on and we're technically blocked to update to their MDXv2 plugin (gatsby-plugin-mdx@4).

So Next.js for example it's the best candidate here, as it supports I18N, GraphQL and MDX basically out of the box.

ovflowd avatar Sep 27 '22 09:09 ovflowd