---
# System prepended metadata

title: Common Docs on the Carvel Website

---

# Common Docs on the Carvel Website
See [this issue for the _why_](https://github.com/vmware-tanzu/carvel/issues/58) of this proposal.

PRs:
- ~~https://github.com/vmware-tanzu/carvel/pull/544~~
- ~~https://github.com/vmware-tanzu/carvel/pull/545~~


## Terminology
- **common doc**: documentation that is the same or similar across subprojects (such as "How to Contribute").
- **micro-site**: a subproject's website (example: https://carvel.dev/ytt/).

## Goals
1. Make common docs **easily discoverable** for the users.
2. Make common docs **maintainable** for the maintainers.
3. Deliverable by September 9 for the CNCF Sandbox Review.

## Proposal
1. Single source of truth for all common docs live on the website.
    - Each micro-site has the following links in their docs:
        - Contributing
        - Code of Conduct
        - Security Policy
        - Development Guidelines
    - These all link to the same common doc.
        - example: https://carvel.dev/shared/docs/latest/security-policy/
    - All GitHub repo "placeholder markdown" files (e.g. CODE_OF_CONDUCT.md) link to the common doc on the website.
    - [_Cutting this scope for now since it requires additional structural changes_] For Development Guidelines, we need to incorporate tool-specific guidance (e.g. https://github.com/vmware-tanzu/carvel-kapp-controller/blob/develop/docs/dev.md)?
        - We could have a Development Guide section with two links: `Developing <subproject>` and `Carvel Development Guidelines` (common doc)
1. Introduce a dropdown option on the main website to navigate to the common docs
    - add `Project Docs` to Projects dropdown

### Cut from scope
1. A solution for cross-tool documentation (such as guides). Currently, we don't have this content. Right now, our best option is to use micro-sites and blog posts.

## Research from other projects

### [Argo](https://argoproj.github.io/)
- They have 4 subprojects. This feels like a familiar separation of subprojects as Carvel.
- The four subprojects are listed across the top of the landing page.
- Each subproject has its own landing page. This landing page provides high-level information and then directs to a documentation-specific site (e.g. https://argoproj.github.io/workflows/).
    - The `Get Started` call-to-action (CTA) leads to a subproject's Getting Started page.
- Each subproject's documentation-specific site has its own listing for common documentation. There is not any common documentation that is shared between the projects.
- Each subproject's documentation-specific site has certain topics:
    - Overview (Home)
    - Getting Started
    - Concepts
    - Installation
    - FAQ
    - Security (which lead to github repo)
    - Developer Guide / How to Contribute
    - Releases (just links to github)
    - Roadmap
    - Blog (this is shared across subprojects)
- There are some topics that could be useful but are not present on all subprojects:
    - Understand the Basics (links to build up a fundamental understanding of the underlying technologies (e.g. kubernetes, kustomize, helm))
    - User Guide
    - Operator Manual
    - Tutorials

Pros:
- Clean landing pages. Docs complexity is contained to docs-specific sites.
- Clear boundaries. Each subproject is responsible for its own docs only.

Cons:
- There is not a direct way to navigate between subprojects. The best way is to go back to the main project page.
- Minimal overlap of docs means more to maintain.

?:
- Not sure how they handle subprojects that have overlap in their workflows.

### [Flux](https://fluxcd.io/)
- They have a landing page with a lot of info on it. Clear CTA for getting started.
- Though flux is a toolkit, the components all seem to be similar (i.e. controllers).
- They have a dropdown for common documentation that's present at all times (under Project).
- Their docs are mostly shared. Flux and Flagger have separate docs-specific sites.
- There are dropdowns to dig into Guides, Use Cases, Migrations, Toolkit Components, Toolkit Dev Guides, CLI.

Pros:
- It's easy enough to navigate around the site.

Cons:
- 