Thank you for helping improve the Appcircle documentation. This file is the single, tool-agnostic reference for how we write docs in this repository. It applies to everyone: outside contributors, Appcircle team members, and AI assistants alike.
AI tool configurations (for example CLAUDE.md) point to this file instead of keeping their own copy of the rules, so there is one source of truth for documentation quality.
- How to Contribute
- Local Development
- Writing Standards
- Screenshot and Visual Standards
- Contributing a New Integration
- Fork the repository and create a branch off
developfor your change. Use a descriptive, kebab-case name prefixed withdocs/, for exampledocs/build-profile-branch-operations. - Write or update documentation following the Writing Standards below.
- Open a pull request against the
developbranch with a clear description of what changed and why.
Reviewers check every documentation pull request against the standards in this file, so reviewing your own work against them first speeds up the process.
This site is built with Docusaurus.
yarnInstall dependencies, then start a local dev server with live reload:
yarn startGenerate the static production build into the build directory:
yarn buildThese standards keep the documentation clear, consistent, and discoverable for a mixed audience of experienced and first-time CI/CD users. Each rule states what to do and, where useful, why it matters and how it looks.
Appcircle also has an official workflow-step documentation guideline. For step documentation requirements, see the workflow step documentation guide.
Always use the official capitalization and spelling for brands, products, platforms, and technologies. Incorrect naming reduces trust and breaks search.
- Correct: GitLab, Bitbucket, Azure DevOps, macOS, iOS, Xcode
- Incorrect: gitlab, bitBucket, azure devops, MacOS, IOS, xCode
Use the same terms, abbreviations, and formats across the whole documentation set, and follow existing conventions.
- Use "Appcircle server" (not "Appcircle Server").
- Use "Appcircle dashboard" (not "web UI").
- Use "authentication" (not "auth").
- If a page already uses
x86_64, do not introducex86-64.
Write steps in the imperative mood. Address the reader as "you" in explanatory text, but use plain commands for actions. Keep the tone neutral and confident.
- Correct: Select Build to start a new build.
- Correct: Run
./install.shfrom theappcircle-serverdirectory. - Incorrect: You can start a build by selecting the Build button if you want to.
Assume limited CI/CD and mobile platform knowledge. Briefly explain concepts the first time they appear. Many readers are QA engineers, managers, or developers new to mobile CI/CD.
- Incorrect: Configure the iOS signing assets.
- Correct: Configure iOS signing assets, such as certificates and provisioning profiles, which are required before distribution.
Whenever possible, explain why a step exists, not just how to perform it. Understanding intent builds reader confidence and reduces support requests.
- Correct: Select Xcode 15 to ensure compatibility with the latest iOS SDK.
Use short paragraphs, each covering a single idea, to improve readability and scanning. Remove trailing whitespace from all lines.
Avoid words such as "just", "simply", or "easily". They can feel dismissive to a reader who is struggling with a step. Keep wording precise and neutral.
Avoid personal names, usernames, and environment-specific paths in examples. Generic examples are reusable and easier to follow.
Always add a language tag to fenced code blocks. Untagged blocks lose syntax highlighting and degrade the copy-paste experience.
Correct (opening fence carries a language tag):
```bash
./install.sh
```Incorrect (bare opening fence, no language tag):
```
./install.sh
```Common tags: bash, yaml, json, swift, kotlin, xml, toml, text (for plain output).
Use the canonical sample project name spacetech and its derivatives (spacetech-ios, spacetech-android, com.example.spacetech) across all examples. Do not invent a new project name per page.
- Correct:
spacetech,spacetech-android,com.example.spacetech - Incorrect:
myapp,demoproject,acme-mobile, developer-specific names
Avoid repeating the same explanation across pages; reference an existing section instead. Duplicate content hurts SEO and maintainability.
Each page must start with a Docusaurus front matter block. Front matter powers SEO, navigation, and categorization. Keep title and description unique across the documentation to avoid SEO conflicts.
---
title: Unique document title
description: SEO-friendly description under 160 characters.
tags: [relevant, tags]
---Use one H1 per page. Docusaurus generates it from the front matter title, so start in-body content at ##. Do not skip heading levels.
- Correct:
## Overviewthen### Prerequisitesthen### Steps - Incorrect:
## Overviewthen#### Prerequisites
Use at least two lowercase tags per page. Before adding a new tag, check docs/tags.yml and reuse an existing entry if a similar one exists. Add a new tag only when none fits:
"access-management":
label: Access Management
description: Manage access to your projects and organizations.
permalink: /access-managementTags are case-sensitive: Build and build are different tags.
Use absolute documentation paths starting from the documentation root. Do not include the /docs segment or the .md extension.
- Correct:
/build/build-process-management/build-profile-branch-operations - Incorrect:
/docs/build/build-process-management/build-profile-branch-operations.md - Incorrect:
../../build/build-process-management/build-profile-branch-operations
Write link text that makes sense out of context. Avoid "click here", "this page", and bare URLs in prose. Descriptive link text improves accessibility, SEO, and scannability.
- Correct:
[See the build profile configuration guide.](/build/build-process-management/build-profile-branch-operations). - Incorrect: For details,
[click here](/build/build-process-management/build-profile-branch-operations).
Every new page must be linked from at least one of: its parent index.md, a related feature page, or the FAQ. A page reachable only by direct URL is not considered done.
State version requirements and compatibility boundaries with the appropriate Docusaurus admonition (triple-colon syntax):
:::infofor minimum supported version and default-behavior notes.:::warningfor breaking changes, unsupported configurations, and deprecations.:::dangerfor actions that risk data loss or downtime.
:::warning
This configuration is not supported on Appcircle server versions earlier than 4.0.
:::Add FAQ entries for common issues and a Need Help section at the end of the page. This helps readers self-serve and reduces support load.
When you update a page, review and update related pages so the documentation stays consistent.
Every directory with multiple subpages (including every collapsible section in the sidebar) needs an index.md. Missing index files cause breadcrumb positioning errors that SEO crawlers flag, and they break navigation and discoverability. When you add a subtopic to an existing category, update the parent index.md so the new page appears in the navigation with a short description.
docs/
├── category/
│ ├── index.md (required for correct breadcrumbs)
│ ├── subpage-1.md
│ └── subpage-2.md
When you change a page URL, add a redirect so existing links keep working. Missing redirects cause broken help links and hurt SEO.
Consistent visuals improve trust, clarity, and accessibility. Follow these rules for every screenshot:
- Resolution: 1440x900 pixels, full size (no cropping); use pointers and shapes to highlight areas.
- Theme: Light theme.
- Organization: "Appcircle Team". Do not show personal names, personal organization names, or emails.
- Profile names: use a descriptive, generic format such as "Example Publish Profile".
- Pointer and shape color:
#f69c21. Use pointers and shapes that match the format shown in the reference image below. - File name: unique and descriptive, for example
BE-4000-example.png. - Always include alt text for accessibility and SEO.
- Use dummy or example portal URLs; do not show internal environment URLs.
- Visible application icons should relate to Appcircle.
Reference for the expected pointer and shape format:
Add alt text with the Screenshot component:
<Screenshot
url="https://cdn.appcircle.io/docs/assets/enable-sso_v3.png"
alt="Enable SSO for Organizations"
/>If you want to contribute a new Appcircle integration (a workflow step) rather than only documentation, follow the dedicated guide: How to Create an Integration. It walks through building the integration and its required documentation.
When you document the integration, apply the Writing Standards above.
