gnolang / docs.gno.land

Miscellaneous files for gno.land documentation
https://docs.gno.land
1 stars 5 forks source link

docs.gno.land revamp #56

Closed leohhhn closed 1 week ago

leohhhn commented 2 weeks ago

Description

Below outlines the reasoning & plan, organizational and content-wise, for the upcoming gno.land docs revamp.

Why?

We're doing a revamp to clean up and refresh the docs, and change what we want to tell our users about gno.land.

One of the main reasons for this revamp is to focus the content of the docs to users who want to become proficient Gnomes: they need to learn how to use Gno & the tools that support it, such as gnokey, gno, gnodev & last but not least, gnoweb.

The intent is to shift focus away from advanced usecases, such as setting up a new chain, to simple, "how to get started", "how to build xyz with Gno" & "how to become a good gnome/contributor" flows. This primarily puts the reader of the docs in the role of a newcomer looking to use gno.land as a platform to build decentralized, open-source applications, join a community of like-minded developers & users, and become a good contributor to the gno.land project.

Below are general notes and expectations, tasks to complete, and a preliminary index of the new docs structure.

General notes

Content order & flow

Should be dictated by the content itself, as opposed to the framework dictating it (which is the current case with sidebars.js). Ordering will be managed by a docs/README.md masterfile which will contain the docs index. This index will be the content index with all files linked, so that the file paths can be checked for validity, as well as used for generating a sidebar/navigation for a frontend. For actually generating content order, we have two options (RFC):

  1. Hacky way: utilize lexicographical ordering to order files only using filenames. This approach is used by the Go documentation already, and was proposed by @moul some time ago. By using numbers like on the below image, we leave "spots" for new files to come in, while keeping the ordering intact.
    Screenshot 2024-10-09 at 17 41 52 With this approach we can use docusaurus' autogenerated sidebar, and we can do the same for gnoweb down the line.
  2. Write a custom tool to parse the index into formats understandable by docusaurus, gnoweb, and other frameworks. Could become hard to maintain.

We can go with option 1 we write the custom tool.

Finally, we don't have to conform to the simple UX we have currently; we could have something like what the Solana docs did with the content organization.

Tooling & client docs

We need a centralized source of truth for how to use a specific tool in order to avoid having to maintain multiple docs files, which has led to outdated information many times in the past. Here's the proposal discussed before:

Initial structure proposal

Legend:

Getting Started

Developer Guides

Concepts

Misc (needs better name or make into a no-name section)

Reference

Remarks

I am taking the lead on this effort, however, this cannot be a one-man job; I need help from others, as discussed previously on multiple occasions. Below are some things to consider:

Primary stakeholders here are: @moul, @thehowl, @leohhhn, @gnolang/tech-staff And of course, anyone who is willing to join the effort is more than welcome.

Related: https://github.com/gnolang/gno/issues/2615

moul commented 1 week ago

why is this issue on this repo?

leohhhn commented 1 week ago

@moul

It felt more appropriate since we would be doing the revamp in this repo, as we discussed; I can move it to the monorepo, but I would like a single repo flow for the whole process (content+framework).

leohhhn commented 1 week ago

Closing this in favor of the issue in the monorepo.