Turns markdown files into a documentation website with a twist - "private" content is hidden until the user signs a transaction to prove their public wallet address should have access to it.
Project Submitted By
Derrek
Summary
This project solves a pain point for DAOs seeking to publish a mixture of public and private information online. This project will allow anyone to bring their existing markdown files, automatically rendering them into a documentation website (à la Docusaurus or Nextra). "Public" information will render immediately. A visitor can optionally connect their web3 wallet and view "private" information that will only be rendered if their wallet meets a criterion (e.g. member of a DAO, hold a specific ERC-20 or -721, etc).
Why should we build this?
Raid Guild will be able to use it internally as our onboarding process continues to evolve and layers of privacy become useful. This project adds functionality to our handbook similar to how we currently use Discord roles to control access to certain channels. This can be considered a part of the Dungeon Master ecosystem, especially as our documentation grows to include our collective wisdom, standard operating procedures, and best practices for various roles.
This tool can also be productized and provided to other DAOs. Exactly what this process could look like still needs to be explored by our community. The code will be sufficiently "plug-and-play" for a spectrum of possibilities when it comes to supporting future clients with its implementation.
If other communities or projects (e.g. based around an ERC-20, ERC-721, etc.) have need for token-gated documentation, we'll be able to serve them too.
User Story:
Landing Page
Provide a brief overview of the DAO or other Web3 project
Invite the user to connect over social media options (Discord, Twitter, etc.)
Offer the user a button to view the (public) documentation
Read Documentation
Provide some documentation that is openly accessible and freely available
Follow Docusaurus or Nextra design pattern (Left sidebar contains nested nav links, right 'content' area displays parsed markdown content)
Access restricted Documentation
Provide user with a button (in the top nav bar) to 'verify' their metaMask address against that project's registry (DAO membership for example), which returns additional markdown and repopulates the sidebar in the Read Documentation step
Write Documentation
Allow users with access to this tool's Repo to write markdown in a 'docs-public' or 'docs-private' folder to mark md files as publically or privately accessible
Update Documentation
Dynamically pull markdown from the above files so that editing those markdown files also updates the final documentation view
Delete Documentation
Markdown files that don't exist will not be rendered
Context and Timing of the Proposal
My work so far with this idea began as a season 2 cohort project. Initial attempts to extend a doc site generator like Nextra hit a wall because of the strict security needs of the final build. Conversations with @scottrepreneur, @mkdir, @jonathanp, @midgerate, and @mackenzie have helped to clarify a path for this project. This RIP funding would support a small team to get it to a place where it can be used internally and packaged to offer to other DAOs.
Raid Party Skills Needed
Monk (project manager) @Derrek
Warriors (frontend) @Derrek and @mackenzie
Paladin could be useful, depending on the data hosting method chosen
Cost (in USD)
Amount
Time
$6,800
68 Dev Hours * $100/hour
Design Adjustment (if needed)
Milestone 1 (17 Hours)
(5 hours) Brainstorm roadmap, exploration
(2 hours) Verify visitor's DAO membership with ethers.js
(10 hours) Render markdown in FE
Milestone 2 (36 Hours)
(5 hours) Store privateMarkdownData in sessionStorage with customAPI
(3 hours) Create a /docs/public & /docs/private file structure and dynamically pull markdown for them and use the cwd route to protect private files
This strategy creates simple routing: all md files in /docs/public will populate the same list with no nesting, once authenticated, there'll be a new 'Private' heading in the sidebar populated with /docs/private content in a similar flat structure
(5 hours) Update functions that collect files from /docs and create a nested object for nested links in the navigation sidebar
(10 hours) Update functions that protect files in /docs/private and release them on successful authentication so that they integrate into the above nested links based on some arbitrary grey-matter tag ('category'? 'subsection'?)
(2 hours) put connectWallet and verify address function into a button
(11 hours, see below) Add styling consistent with RG brand and current handbook
(2 hours) Create general style rules following RaidGuild brand guidelines
(5 hours) Create style rules for each markdown component
Headings
Paragraphs
Line Breaks
Lists
Links
Buttons
Tables
Blockquotes
Code Blocks
Horizontal Rules
Inline Code
Emphasis
Italicize
Bold
Oblique
Images
Videos
Handle Inline Styling
(4 hours) Add Mobile / Tablet views with responsive units
Milestone 3 (15 hours)
(5 hours) Research and select a CMS that handles and returns markdown
(10 hours) Create code that handles CMS integration, performs CMS fetches, and returns fetches to the FE
Project Idea: web3 Handbook
Turns markdown files into a documentation website with a twist - "private" content is hidden until the user signs a transaction to prove their public wallet address should have access to it.
Project Submitted By
Derrek
Summary
This project solves a pain point for DAOs seeking to publish a mixture of public and private information online. This project will allow anyone to bring their existing markdown files, automatically rendering them into a documentation website (à la Docusaurus or Nextra). "Public" information will render immediately. A visitor can optionally connect their web3 wallet and view "private" information that will only be rendered if their wallet meets a criterion (e.g. member of a DAO, hold a specific ERC-20 or -721, etc).
Why should we build this?
Raid Guild will be able to use it internally as our onboarding process continues to evolve and layers of privacy become useful. This project adds functionality to our handbook similar to how we currently use Discord roles to control access to certain channels. This can be considered a part of the Dungeon Master ecosystem, especially as our documentation grows to include our collective wisdom, standard operating procedures, and best practices for various roles.
This tool can also be productized and provided to other DAOs. Exactly what this process could look like still needs to be explored by our community. The code will be sufficiently "plug-and-play" for a spectrum of possibilities when it comes to supporting future clients with its implementation.
If other communities or projects (e.g. based around an ERC-20, ERC-721, etc.) have need for token-gated documentation, we'll be able to serve them too.
User Story:
Landing Page
Read Documentation
Access restricted Documentation
Write Documentation
Update Documentation
Delete Documentation
Context and Timing of the Proposal
My work so far with this idea began as a season 2 cohort project. Initial attempts to extend a doc site generator like Nextra hit a wall because of the strict security needs of the final build. Conversations with @scottrepreneur, @mkdir, @jonathanp, @midgerate, and @mackenzie have helped to clarify a path for this project. This RIP funding would support a small team to get it to a place where it can be used internally and packaged to offer to other DAOs.
Raid Party Skills Needed
Cost (in USD)
Milestone 1 (17 Hours)
Milestone 2 (36 Hours)
/docs/public
&/docs/private
file structure and dynamically pull markdown for them and use the cwd route to protect private files/docs/public
will populate the same list with no nesting, once authenticated, there'll be a new 'Private' heading in the sidebar populated with/docs/private
content in a similar flat structure/docs
and create a nested object for nested links in the navigation sidebar/docs/private
and release them on successful authentication so that they integrate into the above nested links based on some arbitrary grey-matter tag ('category'? 'subsection'?)connectWallet and verify address
function into a buttonMilestone 3 (15 hours)
Tools