Technology choices for new Jupyter.org website

Let’s use this thread to talk about the technical implementation of the new website. The UCI team is currently working on a style guide for the visual elements of the website. In the meantime, I want to talk about how we’ll implement and maintain it.

We’ve been looking at the difference between Hugo and Gatsby. They are both libraries that allow for static site generation. Of the two, Gatsby relies on React while Hugo relies on a more WordPress-like architecture. I’m leaning towards Gastbyjs with content managed in markdown files. This way all site content is generated, with no ‘artisinal hand-coded’ sections of the website as we have today.

The template we’re currently looking at using is this one: https://www.gatsbyjs.org/starters/WebCu/gatsby-material-kit-react/

Does anybody have any helpful input, or a reason not to use the template listed above?

Thanks in advance for the input.

1 Like

Just in passing, I note that the spaCy Python course template uses Gatsby… https://github.com/ines/course-starter-python

Does anybody have any helpful input, or a reason not to use the template listed above

Not if you fix the low contrast issue they have (a11y).

1 Like

I think two additional factors to ponder when choosing the tech:

  • who will be maintaining the tech part of the site and what tech do they like using?
  • who will be maintaining the content part of the site and does the tech choice let them do as much as possible themselves?

Gatsby and react sounds like a solid, modern, supported choice. Do the people who will help maintain the tech stack like react or are they more in the vuejs camp? Picking something people are excited about makes them just that little bit more excited to fix up bugs.

For the second point: can we setup the process for keeping the content up-to-date in such a way that it is “self-service” for those who maintain the content or would they have to ask someone for help to fix stuff?

My point then is: choosing a “worse” tool from a tech point of view might be the overall better choice because of the social factors above.


As a technologist I am excited about react (know the basics) and gatsby (excited to learn). Not knowledgable enough to do new things in either :wink:

2 Likes

Thanks for the input Tim. I’m leaning towards Gatsbyjs will probably initialize with markdown for content delivery, and we can expand to contentful/netlify/some other Content Management System after we launch the MVP.

I’m unsure whether it’s going to be easier to adapt an existing template or build our own components from the ground-up. I have limitted experience ‘adapting’ a template, but it can definitely be a huge time sink. On the other hand, we’re working to pair down the required number of design elements so that we can implement custom components as easily as possible.

Accessibility is another area where this comes into play. There are no libraries I’m aware of that are already set up to be accessible, I don’t want us to have to be working around that as well as we roll this out.

1 Like

One option would be to pay somebody to design the skeleton of an accessible, template driven, simple gatsby-based website, and then have them hand it off to us and we take it from there. I know folks that have done stuff like this to make sure the website structure gets off on the right foot. I

1 Like

I’ve also been considering this option. They key would be to make sure we’re actually getting a template driven skeleton; not something that works for what we have immediately in mind but doesn’t scale well.

I’d love to get input from somebody who’s had a good experience with this in the past. :smiley:

1 Like