# WIP: libp2p Documentation Roadmap for Q4 2022/Q1 2023 ## Q4 2022 ### October 2022 #### Continue addressing the documentation backlog. The target is around ~80% of existing tasks. - Address and ship outstanding concept/core component documentation. - [Connections](https://github.com/libp2p/docs/issues/32) - [Switch](https://github.com/libp2p/docs/issues/33) - [Peer routing](https://github.com/libp2p/docs/issues/13) - [Protocol negotiation](https://github.com/libp2p/docs/issues/18) - [General protocol documentation](https://github.com/libp2p/docs/issues/120) - [AutoNAT](https://github.com/libp2p/docs/issues/171) - [AutoRelay](https://github.com/libp2p/docs/issues/172) - Utilize existing examples and tutorials for all implementations - [Improve examples section](https://github.com/libp2p/docs/issues/29) (we created a guides section for this which we propose to transform into guides.libp2p.io eventually) - [Pull in existing examples](https://github.com/libp2p/docs/issues/168) #### Modularize docs.libp2p.io - Iterate on new [structure proposal](https://github.com/libp2p/docs/pull/186) using the existing Hugo learn theme and ship update to establish the "libp2p book". We propose to transform this into book.libp2p.io eventually. #### Unified graphics - Initiate the unified graphics initiative by determining a formal approach for diagram creation and establish a pipeline with the libp2p stewards and design folks in the protocol labs network. - Work with the Launchpad team to address graphic needs for the Launchpad libp2p content. #### User feedback - Obtain feedback during the IPFS camp on possible improvements to libp2p content, advocacy, and support. ### Release Documentation - < to fill based on specified dates in roadmaps > ### November 2022 #### Modularize the docs in docs.libp2p.io - Create targeted issues on modularizing the libp2p content. - Enhance the libp2p book flow based on keywords and primary page visits via Plausible analytics after about five weeks with the new structure. - Create "networking basics" material for the first section of the libp2p book. This will include material not limited to: - An introduction to computer networks - An introduction to distributed computing - An introduction to data structures - The OSI model and libp2p - Segment core component documentation into multiple guides focusing on one main topic. For instance, the transport concept guide would be split into multiple sub-guides, each responsible for documenting one transport protocol (i.e., QUIC, WebTransport, WebRTC, etc.). - Create a Contributors hub. #### Release Documentation: - < to fill based on specified dates in roadmaps > #### Initiate explainer series The goal here is a simple and clean way to showcase libp2p.- Enhance the media for libp2p by creating a series of explainer videos on various topics. - The layout and theme of these videos should be the same. - The first target will be to: - Determine a theme and work with internal team(s) in protocol labs for video production. - Start with "libp2p basics" (just a placeholder name) initial scripts and recordings. > A good example of this is an explainer series by Mina Protocol: https://www.youtube.com/watch?v=GvwYJDzzI-g ### December 2022 - Ensure that libp2p is documented accurately in other open-source projects and help update previous content. - Enhance the libp2p book flow based on keywords and primary page visits via Plausible analytics after about ten weeks with the new structure. Use analytics to determine pages not used and merge material into streamlined concepts. - Add the first phase of the explainer series to media channels. #### Release Documentation: - < to fill based on specified dates in roadmaps > --- ## Q1 2023 ### book.libp2p.io Transform the documentation site into a new theme. ### guides.libp2p.io Transform the guides section of the libp2p docs site into a dedicated subdirectory that hosts tutorials, examples, and how-tos. ### specs.libp2p.io The current libp2p specifications are concise and provide a good outlook on each protocol, but I believe their structure can include more details. I also believe they can be formalized into a publically available documentation site, i.e., specs.libp2p.io. The specifications should include low-level technical-grade explanations about the concepts mentioned. The *overall* tone of the current specs are more around "this is what happens (or what needs to happen)" as opposed to "this is what happens and how it happens". The specifications can also use the UML diagrams available (and new ones that are created) as visuals for the specifications. ### community.libp2p.io Create a dedicated subdirectory that hosts community resources and highlights initiatives throughout the libp2p community. We can also create a newsletter that highlights updates every few weeks and links to specific updates about releases and changes. ### connectivity.libp2p.io Work with stewards to add a phase of updates to the new connections site and improve overall UI/UX based on user feedback and analytics. ### Release documentation - < to fill based on specified dates in roadmaps > --- ### Release documentation that requires scheduling - WebRTC - Bitswap - Smart dialing - Efficient handshakes - Increase node management tutorials based on "Comprehensive Metrics." - Future-proof features - Address Advertisements