Thank you for contributing to the PlaceOS documentation! This guide will help you add new content using our simplified workflow.
Adding new documentation is now simple and automatic:
- Create your markdown file in the appropriate directory
- Add required frontmatter with title and description
- Navigation updates automatically - no manual configuration needed!
Choose the appropriate directory for your documentation:
PlaceOS Platform (src/content/docs/placeos/):
- Overview: Core concepts, languages, protocols
- Tutorials: Step-by-step learning guides
- How-To Guides: Task-oriented instructions
- Reference: API docs, drivers, compliance
PlaceOS Workmate (src/content/docs/workmate/):
- Onboarding: Getting started guides
- Mobile App: Mobile application documentation
- Web App: Web application documentation
- Concierge: Concierge application documentation
PlaceOS Digital Signage (src/content/docs/signage/):
- Digital signage setup and configuration
Create a new .md file in your chosen directory with a descriptive filename (e.g., configure-oauth.md).
Every markdown file must have frontmatter with a title:
---
title: Your Page Title
description: Optional description of the page
---
# Your Page Title
Content goes here...Your new page will automatically appear in the navigation sidebar. The system will:
- ✅ Generate navigation from your directory structure
- ✅ Use your frontmatter title as the navigation label
- ✅ Organize pages alphabetically within sections
- ✅ Apply proper styling and responsive design
If you need to customize how a directory appears in the navigation, create a _meta.yml file in that directory:
# Example: src/content/docs/placeos/how-to/authentication/_meta.yml
label: Authentication
collapsed: true
order: 2Available options:
label: Custom display name for the sectioncollapsed: Whether section starts collapsed (true/false)order: Position in navigation (lower numbers appear first)sort: Sorting method (alphabeticalorreverse-slug)hidden: Hide section from navigation (true/false)
src/content/docs/
├── index.mdx # Documentation hub landing page
├── placeos/ # PlaceOS Platform documentation
│ ├── overview/ # Core concepts, languages, protocols
│ ├── tutorials/ # Step-by-step learning guides
│ ├── how-to/ # Task-oriented guides
│ └── reference/ # API docs, driver docs, system info
├── workmate/ # PlaceOS Workmate documentation
│ ├── onboarding/ # Getting started guides
│ ├── mobile-app/ # Mobile app documentation
│ ├── web-app/ # Web app documentation
│ └── concierge/ # Concierge app documentation
└── signage/ # PlaceOS Digital Signage documentation
- ✅ Required:
titlefield - ✅ Optional:
descriptionfield - ✅ Use proper capitalization in titles
- ✅ Automatic generation: Navigation is created from directory structure
- ✅ Proper capitalization: Use
_meta.ymlfiles for custom labels - ✅ Descriptive filenames: Use clear, descriptive file names
- ✅ No README.md files - Use index.md instead
- ✅ Replace broken images with
<!-- TODO: Add screenshot --> - ✅ Link to related content using relative paths
- Create:
src/content/docs/placeos/how-to/authentication/configure-ldap.md - Add frontmatter:
---
title: Configure LDAP Authentication
description: Set up LDAP authentication for PlaceOS
---- The page automatically appears under "Authentication" in the How-To Guides section
- Create directory:
src/content/docs/placeos/how-to/integrations/ - Add
_meta.ymlfor custom labeling:
label: Integrations
collapsed: true
order: 5- Add content files to the directory - they'll appear automatically
- Start dev server:
npm run dev - Check navigation: Ensure your page appears in the sidebar
- Test links: Verify all internal links work
- Build test: Run
npm run buildto check for errors
title**: **title: Required
Solution: Add title: field to your frontmatter
Solution: Replace with <!-- TODO: Add screenshot -->
Solution: Check that your file has proper frontmatter with a title field
Solution: Create a _meta.yml file in the directory with a proper label field
- 📖 Check existing files for examples
- 🔍 Look at
_meta.ymlfiles in similar directories for patterns - 📂 Follow the directory structure shown above
Previous workflow using npm run add-content is no longer needed!
The new process is much simpler:
Run helper script→ Just create your markdown fileUpdate astro.config.mjs→ Navigation updates automaticallyManual navigation configuration→ Use_meta.ymlfor customization
This streamlined approach makes contributing faster and reduces the chance of configuration errors.