As big fans of the dog fooding principle, we want to put RSC through its paces by using it to build more than just a demo app. As Redwood’s support for RSC becomes more mature we are going to need to document it with the same attention we pay to the existing Redwood docs. The current docs site is powered by Docusaurus. What if we built our own docs site to document RSC, using RSC? Docu-ception and docu-dog fooding rolled into one!
Enter Docwood, the codename for our RSC-powered documentation app.
Requirements
The list of our requirements we came up the project:
- Keep the docs in the existing redwoodjs/redwood repo, right alongside the code. This makes it super simple to write docs at the same time as code and a single PR merges everything at once.
- All docs are written in Markdown or MDX.
- The navigation structure and names of the docs should depend on the directory structure and content of the docs themselves (no separate config file to denote parent/child relationships or doc names).
- The app should feature real-world usage of RSC.
- Creating or modifying docs should not involve making any changes to the Docwood codebase itself.
- Creating or modifying docs should not require a re-deploy of the Docwood app.
#4 was the most nebulous requirement. What does “real-world usage” mean? After some discussion about what we wanted to highlight with RSC, we decided on the following:
- The docs site would be a real React app running in the browser (not just a statically generated site).
- Viewing a doc meant invoking the RSC flow to make a request to a server, where the Markdown would be complied and returned on fly.
- No pre-converted Markdown->HTML stored anywhere, no content stored in a database, no pre-processing of docs files at build time. However, Redwood’s service caching could be used, since we would still be performing a full RSC request and converting Markdown to HTML on the fly to populate the cache. (Service caching will be our recommended RSC performance-enhancement workflow—more delicious dog food!).
With those requirements in place, we got to work.


