This guide defines the editorial standards for all content on docs.mediakind.com. It is the source of truth for contributors, reviewers, and AI assistants.
The target voice is Stripe Docs, Mux Docs, Cloudflare Docs: clear, direct, confident, and human. Every sentence should feel like it was written by a knowledgeable engineer who respects the reader’s time.
Not marketing copy. Not chatty. Not a wall of robotic bullet points either.
Write for the reader who is trying to get something done. They do not want to be impressed. They want the answer.
Write in second person and present tense for instructions.
Do
Do not
”You create an asset."
"The user creates an asset."
"MK.IO generates the locator."
"MK.IO will generate the locator."
"Configure the endpoint before streaming."
"The endpoint should be configured before streaming.”
Use natural future tense when it reads correctly: “You will receive a confirmation email” is fine. Do not strip “will” from every sentence — over-correcting sounds robotic.
Not every sentence is an instruction. When a sentence describes system behaviour, or something that belongs to a role rather than “the reader right now”, neutral phrasing is correct.
Do not change:
“The personal token contains the identity of the user, the token type, and the expiration date.”
This describes what a token contains in general. Rewriting to “your token” narrows the meaning incorrectly — the reader might be inspecting someone else’s token.
Do change:
“The user must configure the streaming endpoint before playback begins.”
→ “Configure the streaming endpoint before playback begins.”
The test: Is this an instruction the reader should follow, or a description of how something works? Instructions get second person. Descriptions get neutral phrasing.
Aim for 10–20 words. One idea per sentence. When a sentence needs a comma and a conjunction to hold two ideas together, consider splitting it.
Before:
“After the encoding job completes and the asset state changes to ready, you can create a streaming locator, which generates the URLs required for playback.”
After:
“When the encoding job completes, the asset state changes to ready. You can then create a streaming locator to generate playback URLs.”
Do not use contractions. Write “do not” not “don’t”. Write “it is” not “it’s”. Write “you will” not “you’ll”. This makes the docs easier to translate and easier to read for non-native English speakers.
Product names: Always use the exact name. Do not abbreviate or vary capitalisation.
Correct
Incorrect
MK.IO
mk.io, MKIO, Mk.IO
MK.IO Beam
Beam, mk.io beam
MediaKind
Mediakind, Media Kind
Feature names: Use lowercase in prose unless the feature name is a proper noun or UI label. “Streaming endpoints” in prose. Streaming endpoints only when pointing to a specific UI element.
UI labels: Reproduce exactly as they appear in the product, in bold. If the UI shows “Create asset”, write Create asset — not Create Asset unless the UI uses title case.
Headings: Sentence case. Capitalise only the first word and proper nouns. “Configure a streaming endpoint” not “Configure A Streaming Endpoint”.
Never prefix terminal commands with $ or >. These characters break copy-paste.
Every code block requires prose before it (what the request does) and prose after it (non-obvious fields, constraints, optional parameters, expected response). See the contributor prompt library for examples.
Use <PLACEHOLDER_NAME> for values the reader must supply. Explain every placeholder.
Keep images to a minimum. A screenshot earns its place only when text alone cannot adequately explain a UI interaction, or when the visual layout is essential.
Include a screenshot when:
The UI is non-obvious and a screenshot meaningfully reduces the chance of error.
A diagram shows structural or spatial relationships that prose cannot efficiently convey.
Do not include a screenshot when:
The action is straightforward: “Select Create asset” does not need a screenshot.
The screenshot contains only text, a table, or a code block — extract the content into markdown instead.
The UI changes frequently and the screenshot will quickly become outdated.
Store images next to the page file in a folder named after the page, or in /public/images/. Use lowercase hyphenated file names: asset-list-ready-state.png.
The description field appears in search engine results and social previews. Write it as one sentence for the reader who has not yet visited the page.
Good descriptions:
“Add multiple audio tracks to a video asset for multi-language support and accessibility.”
“Reference for all encoding transform presets available in MK.IO, including codec options and quality settings.”
Poor descriptions:
“This page covers audio tracks.”
“Learn about transforms.”
Descriptions must be specific, not generic. If a reader sees only the title and description in a search result, they should know exactly what they will find.
Gender-neutral: use “they/them” for hypothetical users, not “he/she” or “he or she”.
Avoid ableist terms: “validation” not “sanity check”; “limited” not “crippled”; “allowlist/denylist” not “whitelist/blacklist”.
Avoid culturally specific idioms that may not translate: “ballpark figure”, “circle back”, “boil the ocean”.
Avoid assuming expertise level: do not write “as you know” or “obviously”. A reader arriving from search may be encountering this concept for the first time.
“First you need to go to the Assets section and then click on Create, after that you fill in the name field which is required, you can also add a description if you want, and then once you’ve done that you hit Save and the asset will be created.”
Fix: convert to numbered steps. See the AGENTS.md guide for conversion rules.
The orphaned code block:
Here is the request:
{ "name": "my-asset" }
Fix: add prose before (what the request does) and after (field explanations, constraints).
The decorative callout:
Note
MK.IO supports multiple audio tracks.
Fix: if the information belongs in the page, integrate it into the prose. Callouts are for things the reader might genuinely skip past and regret missing.
The forward-reference intro:
“This page will explain what transforms are and how to use them.”
Fix: describe what the reader will be able to do, not what the page will cover.
→ “Transforms define how MK.IO processes your media. Use a transform to specify output formats, codecs, and quality settings for encoding jobs.”
Thin content:
If a page lists API fields without explaining when or why to use them, or describes a procedure without the context a reader needs, flag it. Do not pad thin content with filler. Identify the specific gap and ask the contributor to fill it.
“This page explains how to create a transform but does not explain what a transform is or when you would use one. Could you provide 2–3 sentences of context?”