As the documentation for Wasabi grows, the relevant markdown files are not easy to navigate for newcomers (for example, the CONTRIBUTING, FAQ, and Dojo files are all found in different directories).
I propose to the community the idea of using GitBook to build good looking and easy to navigate documentation out of the markdown files.
As an example of what such a documentation website could look like, I built a mock Wasabi repository with no source code but most of the documentation files, and used GitBook to statically generate the docs website out of them. You can check out the resulting website here: https://wasabi-test.gitbook.io/wasabi-docs-test/
GitBook uses webhooks to automatically rebuild the docs website anytime a commit is made on the repo on any of the markdown files concerned. In other words, nothing really changes from the point of view of the developers and the repo maintainers; all the due process still happens on GitHub. The only added bonus is that GitBook builds your documentation website automatically in the background for you. Additionally, good looking docs are just rad; they make us want to work harder at making them more complete, more precise, and more user-friendly.
Typically, GitBook tracks a directory in the repo called /docs. This is where projects put all markdown files that will be used to build the docs website. Additionally, two files called SUMMARY.md and .gitbook.yaml are required; those provide structure for how one wants the markdown docs files to be put together in GitBook. Check out the repo that generated the mock documentation site to get a sense of how it works.
For a bigger, more complete example of a good use of GitBook, check out the BTCPay Docs website.
It is a great idea to have an archive of knowledge that culminates all the documentation that we have so far, and that we will continue to create in the future!
Absolutely, concept ACK!!
I would like to take this as an opportunity to somewhat restructure and stream-line the documentation that we have so far. Yet, I'm not certain what exactly to change, I think we'll figure this out during the process of this project.
I think this is a project for "volunteers", and not necessarily for the "real devs" - division of labor and all. So, may I bring this to the attention of @6102bitcoin & @402PaymentReq & @raindogdance [and other peers] who have already provided invaluable contributions to the documentation.
Let's build this!
Good points. I do think that as documentation projects grow in size, they eventually almost take a life of their own, and yes the reviews and issues and commits and pull requests can come to "pollute" the maintainment of the source code in the main repo.
Whether Wasabi is at that stage or not is a separate debate maybe, but I think in general we find that bigger projects then to separate their exhaustive documentation and statically generated docs websites from their source code repository, as is the case for BTCPayServer, which splits its source code repo from its documentation repo on GitHub for a clean "separation of concerns" and development process, and clearly a great finished product.
Thanks for tagging, @MaxHillebrand, would have missed it otherwise.
Agree on the proposal. It makes lots of sense, as well as the argument to separate documentation repo from the code repo, just for the sake of "cleanliness".
The mock up GitBook looks neat!
For the sake of completeness, we should note that GitBook is not the only static site generator that can build documentation websites; I simply used it for demonstration purposes. But a good thing about it is that it integrates with any GitHub repo super easily. I just made an account on GitBook and connected it to my repo, and the docs were built almost instantly.
My understanding, however, is that those require a bit more involvement. They also don't offer hosting right off the bat like GitBook does, so you have to figure that out too, and I don't know if the webhook stuff is as easy and cleanly integrated so that it builds automatically when commits are made from the repo. Nothing too bad because all of those can easily be dealt with, but a bit more of a barrier still.
Also important to remember is that the underlying docs themselves (the markdown files and the repo) are agnostic to what system/tool we use to build the docs website. So in a way the the choice of GitBook vs Docusaurus or whatever is not as big of a commitment as might appear at first glance. One can simply rebuild using another tool and test out options. Of course this is more easily tested and done with a separate docs repo, but not impossible to integrate to the main Wasabi repo either, as long as the devs are into it.
This whole thing does warrant a good amount of planning and discussion for sure to do it smoothly and do it right. Maybe some of the devs in charge of other big documentation projects would have lessons and tips to share.
I do agree that a separate repo makes sense, especially considering that the docs should have [?] different maintainers, and to keep the main source code repo clean from distracting commits and files. @nopara73, what do you suggest in this regard?
In regards to the different tools to use, I think it's important to have static pages that pull automatically from the .md files, and to be able to set a theme that fits Wasabi. Seems that GitBook fulfills these requirements, and since we probably only need one book for docs.WasabiWallet.io, I think that this is a good and gratis option. But I do want to point out that Adam said that he had buggy issues with GitBook for Programming the Blockchain
Please comment on missing files, or changes to the overall structure.
Agreed. GitBook is a great way to get going while experiencing the least resistance and shipping results. I also want to point out that GitBook was completely revamped last year, and so I believe that the issues you are referring to were probably associated with what is now called "legacy GitBook", since their repo is 3 years old.
Thanks for the link by the way! I had never seen this resource. Great work.
Please comment on missing videos, or changes to the overall structure.
Is there any good search engine for GitBook?
Can we have a search box where users look for specific key words, and it will show any line in the entire documentation where the word is mentioned?
This plug-in search-pro might work.
[This is a copy of the current [FAQ](https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Documentation/FAQ.md), but seeing it together with the planned documentation above, I'm not sure if we need to have this separate FAQ at all?]
- Denial of Service, by Max Hillebrand & David M贸lnar
- Wasabi Team at MIT Bitcoin Expo by Ken Garofalo, & David M贸lnar & Harmat B谩lint & Hejd煤 Gergely
@MaxHillebrand Just a side note: my name is David Moln谩r.
@MaxHillebrand I think this Layout looks great. Also I definitely agree:
My only restructure advice is related to the FAQ:
Excited for the new Wasabi docs :D
Really nice work @MaxHillebrand, and thanks @britttttk for the tips. I still can't believe I'm on a thread with such bitcoin heavyweights. 10/10 would recommend!
May I attempt to propose a way forward for this? One idea to roll this out smoothly and in a noncommittal way would be for someone to propose a brand new repo for the docs (maybe under the zkSNACKs org? or maybe just somewhere else, I'm not the best person to know), and we could slowly start contributing to it, without it being _officially_ recognized as being the real docs just yet.
This really wouldn't take anything away from the main source code Wasabi repo, and indeed the two can function side by side for a while. Eventually, if the docs repo is working well and the product is clean, Wasabi could easily have a "soft launch" where they announce the website on Twitter and Telegram as the new "official" docs for Wasabi. But that doesn't have to be right away, and in the meantime if the docs repo is well maintained, Adam and other core devs on the Wasabi source code repo might slowly start to simply refer contributors to this newer docs repo when issues are open that are purely documentation oriented.
I would assume that over time a separation of concerns might emerge, where certain files on the source code repo would become flagged as ready for deprecation upon the soft launch, whereas others would stay active as per their need to be embedded in the source code repository.
Is that something that could work?
Thanks a lot for kicking this off @thunder-B!
I ACK your "soft-launch" idea.
So, the next steps are:
zkSnacks/WasabiDoc repository. [As mentioned on Slack, I'd like to offer to be co-maintainer of this repo, so that you don't have to worry about merging the PRs for the doc.]Aaaand here we go!
First pull request of the new WasabiDoc repository to import all the files mentioned here with the structure proposed here.
Now we can start with the actual work, restructuring and re-writing the documentation!
I suggest we close this issue #1887 and continue the conversation in the issues and PRs of WasabiDoc.
Closing this in favor of a whole repo: https://github.com/zkSNACKs/WasabiDoc
The documentation is now live on docs.wasabiwallet.io !!
Most helpful comment
Collection of Videos
Zero Link
Introductions and Demos
Tutorials
Developer Interviews
Development
Fun
Please comment on missing videos, or changes to the overall structure.