godot-website icon indicating copy to clipboard operation
godot-website copied to clipboard

Requirements for redesigned website

Open bits-by-brandon opened this issue 3 years ago • 5 comments

Compiling a list of requirements and desired capabilities for a future state of http://godotengine.org. This discussion is intended be focused on capabilities of the website, and not on specific technologies to achieve them. Please leave suggestions and I will compile them into this list!

Note: This initial list is just my recommendation and starting point. Please feel free to comment with anything we should add / remove / modify

Top website values

These values will help drive trade-offs on what kinds of technologies and processes to be selected. Each decision should relate to one of these values.

Translation / Localization capable

The website today only is only available in English. Allowing non-english content is a big no-brainer to expanding Godot's reach. The site should be able to accept translations from the community easily to continue to grow translations easily.

Private environment for creating / publishing blog posts

The blog is one of the largest official channels for Godot. Many blog posts are time gated by nature and need to be created and published in a non open channel to ensure announcements are available only when the time is right.

Self hosted

As an open-source project, the website needs to be able to keep itself running even as contributors shift and change over time. Being self hosted decreases reliance on any particular vendor and de-risks the site failing due to neglect.

Simple to contribute non-blog content

It should be easy for anyone to contribute typos, bug fixes, and other contributions without having to understand an overly complex system. The site should bias towards a simple design that makes contributing changes as obvious as error-resistant as possible.

Accessible

Developing games should be for everyone. The site should aim for as high a bar as possible for accessibility to allow as wide and as inclusive of an audience as possible.

This includes (but is not limited to):

  • High contrast text
  • Semantic html
  • Native input controls
  • Dark / Light themes
  • Adjustable text size

High performance

Developers can be highly sensitive and critical of performance. The site should aim to create a site that loads quickly and takes up few resources to not only appeal to performance critical users, but also to reflect the lightweight nature of the Godot engine and development environment itself.

SEO friendly

Organic growth is driven by search engine results. The site should promote discovery and growth by allowing crawlers to easily find and scrape information from the site.

High priority features

Specific features that should be available with a redesign. Most of these should be accomplished within reason.

  • Auto generated sitemap
  • Light/ Dark mode
  • Offer multiple download links for significant versions of Godot (4.0, 3.x)

Features to consider

  • Host developer surveys on the site
  • Easy to create keyword optimized landing pages
  • Request intake forms
  • RSS Feed for blog

bits-by-brandon avatar Jun 30 '22 22:06 bits-by-brandon

Note that the current website supports automatic dark theme based on browser/OS preference (with light theme being the default if there's no preference). This should ideally remain in the new design for accessibility reasons.

As for performance, I recommend not relying on full-fat JavaScript frameworks at all if possible (small libraries are OK). For faster navigation between pages, integrate Barba.js as it's done on the current website.

Calinou avatar Jun 30 '22 22:06 Calinou

As for performance, I recommend not relying on full-fat JavaScript frameworks at all if possible (small libraries are OK). For faster navigation between pages, https://github.com/godotengine/godot-website/pull/222 Barba.js as it's done on the current website.

Yeah agreed. I've worked on full client side websites and while it can be made to feel fast, there's a ton of JS that's pulled down into client for sometimes very little interactivity. Some newer frameworks do a much better job at shipping minimal JS. Some Server side rendered, static rendered pipelines let you get the nice DX of web frameworks without actually shipping a heavy framework down to the client.

bits-by-brandon avatar Jun 30 '22 22:06 bits-by-brandon

Adding another priority here: SEO friendly

bits-by-brandon avatar Jul 02 '22 07:07 bits-by-brandon

Another thing I was thinking about is that the Download page should offer downloads for 4.0, but also for the latest 3.x release. It should also briefly explain why you may want to stick to 3.x for some use cases (mobile, HTML5, and targeting very old/low-spec desktop machines). I expect this will be needed at least until 4.1's release, which will have a production-ready OpenGL ES 3.0 renderer (targeted for low-end GPUs).

The 4.0 downloads should be made more prominent, but it's important that the 3.x downloads aren't too hidden.

Calinou avatar Jul 06 '22 21:07 Calinou

Added a requirement to show multiple downloads of Godot. I kind of like the way Node does it by giving you all the versions but include the support timelines and make sure you're informed on why you would want to download one over the other. https://nodejs.org/en/about/releases/

bits-by-brandon avatar Jul 07 '22 20:07 bits-by-brandon

What do you think of Nextjs. It meets all expectations.

If we choose nextjs I want to do the infra. And I thinks create an repo like beta-website or website redesign can be a good starting point.

AugustinMauroy avatar Mar 20 '23 10:03 AugustinMauroy

We have transitioned to a different stack since this issue was created. While it still highlights some of the key points we need to address (i18n, accessibility), by and large this is already solved with the move to Jekyll. We are definitely not looking for another change in the stack soon, unless it provides some huge benefits to the maintenance and usability.

YuriSizov avatar Mar 20 '23 12:03 YuriSizov