Style Guide
This Style Guide provides guidelines to ensure that the authentik documentation is consistent, clear, and easy to follow. It standardizes aspects like phrasing, formatting, tone, and structure across all documentation.
We appreciate all contributions to our documentation — whether it's fixing a typo, adding new content, or writing an entirely new topic. To help us review and merge your contributions more efficiently, please follow our writing documentation guidelines. If you notice any inconsistencies, feel free to open an Issue or submit a Pull Request to fix them.
- General Style Guidelines
- Terminology
- Writing Style
- Word Choices
- Formatting Guidelines
- Component-Based Formatting
- Error Message Formatting and Troubleshooting
- Accessibility Best Practices
- Notes and Warnings
General style guidelines
Logical order
-
Documentation should be structured to follow the natural order of tasks, making it easier for users to follow. Organize sections in a manner that reflects the actual workflow used to complete tasks.
-
When writing procedural documentation (How Tos) the steps should follow the workflow in the UI, specifying the exact pages to navigate and the precise fields, tabs, etc., to select or complete. Present the UI components in the document in the same order they appear in the UI.
Headings
Use headings (sub-titles) to break up large blocks of text, making it easier for users to navigate the content and find specific sections quickly.
Look and feel of the docs
In general, the visual, aesthetics of the technical documentation is intended to be lean and clean. Both the content (shorter sentences, concise instructions, etc) and the layout strive to have a clean, uncluttered look, with restrained use of colors and large call0outs or announcements. Relatedly, the colors used for our Info and Warning callouts, light blue and light yellow respectively, are reserved for those purposes only.
Cross-references
Always include cross-references to related content. If a concept is referenced elsewhere in the documentation, link to the relevant section to provide users with additional context or instructions.
Relative vs. absolute paths
Use relative paths when linking to other documentation files. This will ensure links are automatically updated if file paths change in the future. If you are linking between our Integration Guides and our regular technical docs, then use an absolute path.
Markdown file type
The standard file type for documentation is .md
. Use .mdx
only if React components, such as interactive elements, are required.
Terminology
authentik product naming conventions
- The product name authentik should always be written with a lowercase "a" and a "k" at the end, even if it begins a sentence. This consistent style should be followed throughout the documentation.
- The company name is Authentik Security, Inc., but for non-legal documentation, you may shorten it to Authentik Security.
Industry terms and technology names
- When referring to external tools or industry terms, always use the exact capitalization and naming conventions that the product or company uses. Refer to their website or official documentation for the proper formatting. For example, use "OAuth", "SAML", or "Docker" as per the official conventions.
- Avoid abbreviations unless they are well-known and widely recognized (e.g., SSO, MFA, RBAC).
- If an acronym is used less frequently, spell out its full meaning when first mentioned, followed by the acronym in parentheses. For instance, "Security Assertion Markup Language (SAML)".
Writing style
Tone
The tone of the authentik documentation should be friendly but professional. It should be approachable, yet not overly casual. When appropriate, address the reader directly using second-person pronouns (e.g., "Next, you need to configure the login settings").
Language
The documentation uses American English spelling conventions (e.g., "customize" instead of "customise").
Voice
Use active voice and present tense for clear, direct communication. - DON'T: "The Applications page will be loaded." - DO: "The Applications page displays."
User-friendly phrasing
Avoid phrasing that blames the user. Be subjective and polite when providing instructions. - DON'T: "Never modify the default file." - DO: "We recommend that you do not modify the default file, as doing so may result in unexpected issues."
Word choices
"May" versus "Might" versus "Can"
-
Typically, avoid using the word "may" in technical writing, as it implies permission rather than ability to perform an action. Instead, use "can" to suggest possibility.
-
"Might" should be used to indicate that something could happen under certain conditions, but use it sparingly. It implies unpredictability, which can be undesirable in software documentation.
- DON'T: "You may use an Expression policy to enforce MFA adherence."
- DO: "You can use an Expression policy to enforce MFA adherence."
- DO: "Values might differ depending on the source of the property mappings."
"Login", "Log in", and "Log in to"
- As a noun or descriptive term, use login (e.g., "The login panel").
- As a verb, use "log in" (e.g., "This stage prompts the user to log in").
- As a verb followed by the proposition "to", use "log in to" (e.g., "Log in to the application").
Formatting guidelines
Fonts and Font Styling
-
When referring to internal components in authentik, like the policy engine, or blueprints, do not use any special formatting. Link to the relevant documentation when possible.
-
When referring to authentik functionality and features, such as flows, stages, sources, or policies, do not capitalize and do not use bold or italic text. When possible link to the corresponding documentation.
-
Use bold to highlight:
- UI elements such as field names, labels, buttons, or options (e.g., Save button, Username field).
- Key actions in instructions (e.g., Click Next).
-
Use italic for:
- Variables or placeholders to indicate that the value should be replaced by the user (e.g., your-domain.com). Clearly indicate whether variables in code snippets need to be defined by the user, are system-provided, or generated.
- Emphasis, but sparingly, to avoid overuse. For example, you can use italics for important terms or concepts on first mention in a section.
-
Use
code formatting
for:- Commands (e.g.,
docker run
). - File paths, file names, and directory names (e.g.,
/usr/local/bin/
). - Inline code snippets (e.g.,
.env
).
- Commands (e.g.,
-
When handling URLs:
-
For URLs entered as values or defined in fields italicize any variables within them to emphasize that placeholders require user input.
In Markdown, use this syntax:
<kbd>https://<em>company-domain</em>/source/oauth/callback/<em>source-slug</em></kbd>
Rendered formatting: https://company-domain/source/oauth/callback/source-slug
-
When mentioning URLs in text or within procedural instructions, omit code formatting. For instance: "In your browser, go to https://example.com."
-
Titles and headers
-
Titles and headers (H1, H2, H3) should follow sentence case capitalization, meaning only the first word is capitalized, except for proper nouns or product names.
- DO: "Configure the Google Workspace provider"
- DON'T: "CONFIGURE THE GOOGLE WORKSPACE PROVIDER"
- DON'T: "Configure The Google Workspace Provider"
-
Ensure titles and headers are descriptive and clearly convey the purpose of the section. Avoid vague titles like "Overview." Instead, opt for something more specific, like "About authentik policies."
-
Use the imperative verb form in procedural topics. For example, use "Configure your instance" instead of "Configuring your instance."
Examples
When you want to show an example (say, a code snippet), start on a new line, use bold text for the word "Example", and a semi-colon, like this:
Example:
This expression policy uses an expression based on the user's name:
if request.context["pending_user"].username == "marie":
return True
return False
Component-Based Formatting
This section covers the usage of React components within our documentation. Files that use component-based formatting must use the .mdx
extension.
Multiline Code Blocks
For displaying multiline code blocks, especially when variables need to be defined, use the IntegrationsMultilineCodeblock
React component. Insert the following lines wherever you want the code block to appear:
import IntegrationsMultilineCodeblock from "@site/src/components/MultilineCodeblock";
<IntegrationsMultilineCodeblock>
{`
OIDC_DISCOVERY_URL=https://<em>authentik.company</em>/application/o/<em>your-application-slug</em>/
`}
</IntegrationsMultilineCodeblock>;
This is especially useful for configuration files like JSON, YAML, or .env
files, where placeholders must be replaced.
Tabs for Multiple Configurations
Use Tabs to display different configurations (e.g., setting up authentication with OIDC vs. SAML) to help users navigate between options. Default to the easier or more common option. Insert the following lines wherever you want the code block to appear:
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
<Tabs
defaultValue="oidc"
values={[
{ label: "OIDC", value: "oidc" },
{ label: "SAML", value: "saml" },
]}
>
<TabItem value="oidc">OIDC configuration details go here.</TabItem>
<TabItem value="saml">SAML configuration details go here.</TabItem>
</Tabs>;
Tabs improve readability when presenting different configurations or setup options.
Error Message Formatting and Troubleshooting
When documenting error messages:
- Display the error message
- Explain possible causes
- Offer solutions
Example:
-
Error message:
Error: Authentication failed. Invalid credentials.
-
Possible causes:
- Incorrect username or password
- Account is locked due to too many failed login attempts
-
Solution:
- Verify your username and password
- Reset your password if necessary
- Contact an administrator if your account is locked
Accessibility Best Practices
- Avoid using color as the sole method of conveying information (e.g., "Click the red button"). Instead, use descriptive labels to ensure accessibility.
- Provide descriptive link text. Avoid using generic terms like "Click here". Be specific about where the link will take the user.
- DON'T: "Click here."
- DO: "See the Authentication Settings for more details."
Notes and Warnings
For notes and important information:
Notes are formatted using:
:::info
Write your note here.
:::
Warnings are formatted using:
:::warning
Write your warning here.
:::
Use these conventions to ensure that the reader's attention is drawn to crucial information.