See the revision history for the current version.
Welcome to our project! This style guide is intended for use by project contributors, not necessarily end-users. It provides general guidance to anyone who contributes to the project's documentation.
This style guide is intended for use by any contributors that are writing documentation for F5 NGINX products, including software engineers. This guide can help project contributors to communicate clearly and consistently in the project's end-user documentation, API documentation, configuration files, and in-product user messages.
This document provides guidelines specific to documenting F5 NGINX products and open-source projects.
- Follow American English spelling and conventions. For spelling reference, use the American Heritage Dictionary.
- When the NGINX style guide does not cover a style, refer next to the Microsoft Style Guide for user-facing content, and then to the Chicago Manual of Style.
When writing documentation for our project, align with the default guide's voice and tone.
-
On the first mention of an enterprise NGINX product in a document, use the full product name. For example:
- F5 NGINX Plus
- F5 NGINX App Protect WAF
- F5 NGINX Instance Manager
-
Don't add "F5" to open source products. For example:
- NGINX Unit
- NGINX Agent
-
For subsequent mentions of any enterprise product, you can drop the "F5". You must include the "NGINX" brand name in all uses. For example:
- NGINX Plus
- NGINX App Protect WAF
- NGINX Instance Manager
-
When naming multiple products in one document, you only need to include F5 once, on the first mentioned product.
-
Never use acronyms instead of the full product names.
-
We don't need to use trademark and rights reserved icons (™,®) in product documentation.
-
Use the full product name, including "F5" on product landing pages.
-
Don't include the "F5" in document titles. For example:
- Using NGINX Plus Docker images with NGINX Instance Manager
-
Don't use articles ("the", "a") in front of product names. For example, use
- NGINX Agent (not "the NGINX Agent").
-
Always use the full brand name in the meta description. The meta description does not count as first mention of the product in the document.
The table provides guidelines about the terms you should and should not use for consistency, listed in alphabetical order:
Term | Notes | Explanation |
---|---|---|
a.m./p.m. | 10 am. | |
abbreviations: acronyms and initialisms, capitalization | Acronyms and initialisms are abbreviations that are written out in capitalized letters, but unless the word or phrase they represent is a proper noun, the words do not need to be capitalized. For example single sign-on (SSO). Note: acronyms are pronounced as words (such as LAN) but initialisms are pronounced as letters (such as SSO). | |
abort | Never use this term in your docs. Use the preferred terms when writing about a process: stop interrupt shut down |
Abort is acceptable to use in programmer or similar technical documentation only if it is a function name, parameter name, or otherwise part of a name in the API. |
above and below | Avoid. Refer to the specific section, table, figure, an so on, as opposed to indicating its relative position in the document. | |
access | Used as a verb, it's jargon, so don't use it. | |
allows | Not recommended. <br>Avoid phrases such as "NGINX Plus allows you to…". <br> Use direct, active verbs from the perspective of the user instead. |
|
and/or | Not recommended. Usually, this means either "and" or "or". Try to be specific in your writing; people are counting on you for clear instructions. | |
anthropomorphism | Avoid referring to the product or feature as though it were alive. <br>When referring to products, stay away from words like: decides, knows, sees, listens, and hears. A wizard guides you, it doesn't walk you through the steps. |
|
application | When referring to applications in general, write out the entire word. For clarity, avoid abbreviating to "app" unless specifically referencing the user interface or product. | |
as/because | Use "because" instead of "as" when showing a cause-and-effect relationship. | |
attack signature, attack signature set | Refers to elements of the NGINX App Protect WAF package. Do not abbreviate or otherwise shorten. | |
backwards | Use backward and forward, not backwards and forwards | |
black list blacklist blacklisted |
Do not use these terms. Use these terms instead: -black list (noun) = deny list (noun) -blacklist (verb) = denylist (verb) -blacklisted (adjective) = denylisted (adjective) |
|
boot, boot up, reboot | Use "start" and "restart" if possible. For "boot", use in the context of "boot to a new volume". If the meaning is actually "start", then use "start". Do not use "boot up". Instead of "reboot", use "restart". <br>When referring to applying configuration changes, use "reload". |
|
case insensitive | Use "not case-sensitive" instead of "case insensitive". | |
caution/warning | Caution is less severe than Warning. Use Caution when alerting that damage may occur, such as down time or service interruption. Use Warning as the severest form of advisory, such as the risk of data loss or sustained outage. | |
certificate authority (CA) | ||
certificate request | ||
certificate signing request (CSR) | ||
certificate/key pair | ||
check (verb) | Do not use when referring to a checkbox action. Use select. Options for check as a verb: verify, confirm, test, ensure, and so on. | |
checkbox (noun, GUI) | Use "select" when referring to a checkbox action. In this example, you could document as either: "For the Protocol Security (DNS) setting, select the Enabled checkbox." – OR – "For the Application Security setting, select Enabled." |
|
checksum | ||
click vs select | Use "select". | Refer to the Microsoft Style Guide instructions for Describing Interactions with UI for more information. |
client certificate authentication | ||
Client SSL | ||
client-side or client side | Hyphenate when used as adjective. | |
colloquial language | Try to avoid using colloquial language, which does not translate well. For example, use "press Esc", not "hit Esc"; "Go to the next section", not "jump to the next section". | |
colon | Never use a colon to introduce a graphic, a figure, or a table. | |
comma (serial or Oxford) | Always use the serial (Oxford) comma. Example: "apples, oranges, and bananas"; not "apples, oranges and bananas". |
|
comma-separated | Always hyphenate. For example: a comma-separated values (CSV) file | |
command line and command prompt (usage) | Use "command line". NOUN: …at the command line. ADJ: …using command-line tools. At the command prompt, type... Do not use command-line prompt. |
|
configure | Do not use, except when describing the configuration of an NGINX product, such as when installing NGINX or NGINX Agent. In most cases, use "set up" instead. |
|
contractions | Contractions are okay to use as long as they're not ambiguous. | |
Cookie persistence (option type) | ||
cookie/cookies (noun) | ||
covers | As in, "this section/topic/chapter covers the following...". Instead, use a phrase such as, "This topic deals with..." or "This topic provides the following information...". More options: communicates, presents, offers, introduces, explains, describes. | |
curly brackets {} |
The name for the curved {} parenthetical markings is "braces". They are not called curly brackets. |
|
CVSS v3.0 | Do not spell out. (Articles with CVSS metrics should include the CVSS link.) | |
daemon | Avoid using this term in generic documentation because it is UNIX-oriented. Instead, we use "agent", "utility", or "application". However, we do refer to specific UNIX daemons, like named and sod , when daemon is part of the name. |
|
data center | Write this as two words. | |
domain name | example.com, example.net, example.org, or localhost per RFC 2606. | |
em dash | Allowed in the proper context. May be written using two dashes to ensure it converts correctly when displayed in the web version. | |
data source | ||
database | Do not abbreviate as "db". Always a single word. | |
date format | Use month day, year format, as in December 4, 2024. Don't use day month year, as in 31 July 2016. In the UI, it's OK to use numbers and slashes for dates if the code supports that format and automatically displays the appropriate date format for different locales. For example, 12/4/2024. |
This format aligns with standard American usage for consistency and clarity. |
DoS/DDoS/3DoS | Spell out on first reference: - denial-of-service (DoS) - distributed denial-of-service (DDoS) - diverse distributed denial-of-service (3DoS) |
|
e.g., i.e., etc. | Avoid using Latin abbreviations. - e.g. = for example - i.e. = in other words - etc. = and so on |
|
earlier and later | Use to describe versioning. For example, "This applies to versions earlier than NGINX Plus R31". Do not use before, after, greater, lower, higher, below, above, and so on. |
|
either/or | Not recommended. Usually, we mean either, or we mean or. Try to be specific in your writing; people are counting on you for specific instructions. It's okay to use these terms when separated by text, as in, "You can use either the semi-colon or the comma here". |
|
ellipses […] | Don't use ellipses (dots) in your tech writing. When referring to a menu command that has an ellipse, DO NOT include the ellipse. It's okay to use the word "ellipses" in text. |
|
enable | Always use direct, active verbs. It's okay to instruct the user to enable a setting. Do not use in the context of a system or product enabling the user to do something. |
|
end a connection vs. tear down a connection (telephony) | In legacy telephony content, tear down was a clear way to describe how multiple connections were taken down (such as, for a trunk). Although that action is now completed in a streamlined and advanced manner (behind the scenes), end the connection may not be an accurate substitute phrase for this action, and suggest ending only one connection. | |
Enter (key) | Do not use ALL CAPS when referring to the Enter key; use Initial capitalization. For example, Press Enter. | |
enter (verb) | Follow MSG and use enter for data inserted into a box (field) or for a string that is likely to be blocked and copied. Use type for typing a command-line command. | |
etc., i.e., e.g., etc., et cetera | Avoid Latin abbreviations. Be specific where possible. If the etc. represents additional information that the user needs to know, then include it. Otherwise, use and so on instead. You can recast to elaborate, or use that is if appropriate instead of i.e.; also use for example or for instance or such as instead of e.g., where applicable. | |
EULA | End User License Agreement (EULA). A hard copy of the EULA ships with F5 products. | |
example element (tagging) | Use the <example> element when presenting a technical example of something (such as hardware/software and configuration details). If the information is not a specific technical example, or is further clarification of the subject, then a regular content paragraph is sufficient. | |
executables | Refers to system files. Use system files instead. | |
execute | Put to death. Don't use it. Use another word instead; for UNIX, we prefer run. Or start Alternatives: § Use the <command> command to… § Enter the <command> command at the prompt… § Start the <command> utility… § Run the <command> script… EXCEPTION: Security Advisory Articles and vulnerabilities in release notes. | |
expand vs. flyout | Do not use flyout. Write text to describe action for the user. Expand is OK. | |
expire | In GLOBAL-SITE and EDGE-FX documents, the term expire was used to take an object. It means to have the cache remove old content. We shouldn't have any need to use it this way anymore, thank goodness, as these products are gone. | |
extraneous | Don't use it. Use extra or unneeded instead. | |
F5 Networks (trademark practice) | Replace with "F5, Inc.". Visit the trademarks page on f5.com for the latest guidance. | |
F5 web resource URLs (reference) | Include the full URL when possible instead of masking the destination URL. Be sure to include the trademark in the URL name (unregistered trademark ™, or registered trademark ®, or service mark SM) at first mention where appropriate. For example: "In a browser, open the F5 Downloads page (https://downloads.f5.com)" or "the F5 DevCentral web site (https://devcentral.f5.com/)". |
|
F5 persona names | Do not refer to internal personae in public-facing documentation. | |
F5 recommends vs. We recommend | Do not use We recommend or it is recommended when referring to an F5 recommended guideline. If needed, use F5 recommends or, at present, writers are encouraged to state the specific action that the user should take when possible. | |
F5 Support | Use instead of F5 Technical Support or other variations thereof. | |
F5 Technical Support | Do not use. Use F5 Support. | |
F5 XC Tech Docs | Use when linking to documents on the https://docs.cloud.f5.com/docs/ site. | |
fetch | This can be a technical term; depending on context, it may relate to getting, reading, or moving data objects. | |
fictitious names (domains/companies) | When documenting example scenarios, unless it is a case study, and/or we have approval from the company to use their company name, we should use a generic fictitious approved name (such as ABC corporation or Company A or Company B). For domains, see RFC 2606 for reserved top-level DNS names to use in documentation. RE the GUI: Consult the legal team if your product team uses trademarked names (owned by others) in the GUI. | |
figure captions (graphics) | Ensure that text describing the graphic is precise, short, and describes the action or process shown in graphic; do not include illustration in the caption. AVOID: “Figure 2 Illustration of NGINX Instance Manager using XXX. Avoid using trademarks in diagrams; instead, ensure that the product name is called out in the topic body text and add the trademark as needed at first mention. | |
figures/images (TBA) | For a figure (screenshot or graphic): Use the <fig> content unit when you want to display a screenshot or a graphic on your topic. Within the <fig> content unit, use the <image> element to contain the actual graphic, and use the <title> element to provide a caption. For an image, such as an icon or button: Use the <image> element to include artwork or images in a topic. In most cases, the <fig> and <title> elements are used. | |
file name | File name is presented as two words, unless for commands/syntax or when matching the GUI, (representing variables) such as <filename>. | |
FIPS | Correct: FIPS hardware security module (HSM), FIPS HSM. | |
flyout | Do not use. When describing the user interface, state that the "panel expands". | |
foo bar, foo, fu, fubar | Do not use; always replace with specific text. Watch for these in code samples. | |
forward slash | We don't call it a forward slash, just a slash. § In text, use as needed to match the UI, with no space on either side. Type the host name/IP address… § In syntax, the slash is used for web addresses: https://webmail.f5.com/exchange/ | |
Forwarding (IP) | See virtual server types. | |
Forwarding (Layer 2) | See virtual server types. | |
forwards | Use backward and forward, not backwards and forwards. | |
FTP | Do not spell out. | |
fu, fubar | Do not use; always replace with specific text. Watch for these in code samples. | |
future releases and TBD | Do not use TBD in any content, including release notes. Do not reference future releases, such as This OID will be disabled in future releases. | |
G | Abbreviation for "giga", but in computer terminology represents 230, or 1,073,741,824. Correct: 4G | |
Gateway ICMP | Also see ICMP | |
GbE and GigE | For a number plus GbE, such as 10GbE, the standard is no space. For a number plus GigE, such as 10 GigE, the standard includes a space. | |
gear icon | In a product's user interface, a gear icon may open an object's properties or the system settings. Refer to the object by its purpose, not the icon, unless in a task step. For example "Select the gear icon to open the system settings menu." or "Open the System Settings menu." | |
geolocation vendor name (database) | Refer to geolocation vendor name as Digital Element versus parent company Digital Envoy. | |
gerunds | Do not use gerund forms in article titles or headings. Correct: Provision your system. Incorrect: Provisioning your system. | |
grayed out | Don't use it. Use unavailable. | |
group box | Do not refer to UI element names if possible. Instead, use the label name. If necessary for clarity, use box. | |
GSLB | This is the abbreviation for global server load balancing (GSLB). It is a subset of DNS. | |
GUI | Do not use. Acronym for Graphical User Interface. Use "user interface" instead. | |
hang | As in the system hangs or This hangs the system. OK in internal department stuff; but it's slang, and we should do better in our docs. For a write-around, try fail to respond, as in: If the program fails to respond, restart the system. Other possible terms to use, depending on the circumstances, could be: § causes the system to jam/get stuck/stop processing. § If horrid: halt, stop or crash; or cause an error. | |
hardware upgrade | Hardware upgrade is to install a system in place with a newer platform. For example: Check the version compatibility list before upgrading your software to make sure you do not need to perform a hardware upgrade as well. | |
has | One of those weak, vague verbs we're supposed to avoid as much as possible: Allow, do, enable, let, perform, be, has, make, and do. Use direct, active verbs instead. | |
Headings | Use imperative verbs (formerly, MyF5 used gerunds) Heading text must not link to other pages. |
|
hears | When referring to products, avoid it, it's anthropomorphism. When referring to products, stay away from words like decides, knows, sees, listens, and hears. | |
help (capitalization style) | When referring to online help in our documentation, use lowercase format for instances of help as per legacy guidelines (unless specifically referring to the Help button). However, identify it as F5 online help in order to distinguish it from general instances of help as a verb and noun. | |
host name | Two words, except when a parameter. | |
hover (user interface) | Use "hover over" not "hover on" nor "hover in" when describing this action. | |
HTTP status codes | First mention: HTTP 200 status code (OK). Subsequent mention: HTTP 200 status code. HTTP status codes are grouped into five classes: 1xx (Informational): The request was received, continuing process 2xx (Success): The was successfully received, understood, and accepted 3xx (Redirection): Further action needs to be taken to complete the request 4xx (Client Error): The request contains bad syntax or cannot be fulfilled 5xx (Server Error): The server failed to fulfill an apparently valid request The following list is not exhaustive, but includes some common HTTP status codes: 100 Continue 101 Switching Protocols 200 OK 300 Multiple Choices 301 Moved Permanently 302 Found 304 Not Modified 307 Temporary Redirect 400 Bad Request 401 Not Authorized 403 Forbidden 404 Not Found 500 Internal Server Error 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout | |
HTTPS | All caps unless appearing in URL, where it should be lowercase. A a daemon: https | |
hyphens | You can use hyphens for compound words, to join prefixes to other words, or to show word breaks. Practice best judgment when employing them. In some instances, a hyphen may seem unnecessary as the compound word may be clear enough to the user and frequently presented without a hyphen, such as antivirus. In other cases, a term may look odd without it, so you may choose to include it for readability, such as pre-entrancy vs. preentrancy. Do not use hyphens to introduce list items in TBA content. | |
i.e. | Latin abbreviation for "that is" or "in other words". Don't use it. | |
id | When you mean ID, in text, never use user id nor user Id. If you're matching a UI that says one of these, talk to the Dev team about changing it to ID. | |
ID | When you mean identify, in text, never use ID, spell out the word. | |
if vs. whether | In informal writing and speech, often used interchangeably but can have different meanings, so try to use the correct word. Use if when expressing a condition of uncertainty: You don't know If NGINX Management Suite includes Instance Manager. Use whether when you are showing that two (or more) alternatives are possible: Whether your NGINX Management Suite deployment includes Instance Manager and API Connectivity Manager. | |
in order to | Most often just use to instead, especially in procedures. | |
information about vs. information on | Reserve the on preposition for location, such as The label on the back of the device... Use For information about NGINX Mangement Suite, refer to…. | |
initiate | Use start instead. Press Enter to start the domino-fall routine. | |
input | Not as a verb. Use type instead. | |
insecure | Avoid using when describing a lack of security for something technical or technology-related, such as system versions, fraud issues, and so on. Across F5, we are trying to consistently use unsecure or not secure(though non-secure may appear as well) instead, for accuracy. | |
interface and port (usage) | If referring to a physical port on F5 hardware, use interface (examples of interface names are 1.1, 1.2, and 2.1). In this case, port is just industry slang to mean a physical hardware interface. An actual port is a number that corresponds to a software service (daemon) running on a server, such as port 80, which corresponds to the HTTP service (and underneath it all, the httpd daemon). | |
Internet, intranet, and extranet | Use internet to refer to the worldwide collection of networks that use open protocols such as TCP/IP to communicate with one another. Don't capitalize. Use intranet to refer to a communications network based on web technology, but that's available only to certain people, such as the employees of a company. Don't capitalize. Use extranet to refer to an extension of an intranet that uses internet protocols to give authorized outside users limited access to the intranet. Don't capitalize. | |
interoperate | Do not use. Recast to operate or clarify connecting relationships as needed. | |
IP address and MAC address | Specify whether referring to IP address or MAC address in content, rather than just address for clarity. IP and MAC are always capitalized. | |
IP addresses (general usage) | Internal IP addresses that include beginning ranges, such as 172.25, 172.26, 172.27, 172.28, 172.29, 172.30, 172.31, and 172.32 should not appear in external documentation. | |
IP addresses in examples | Be careful not to use example IP addresses that belong to another company. Refer to RFC5737 for IPv4 and RFC3849 for IPv6 for a list of IP addresses that are approved for use in documentation and examples. | |
IPsec | Internet Protocol Security (IPsec), two caps. Note internal capitalization style of acronym. Do not use IPSec (three caps). | |
IPv4-in-IPv6 vs. IPv4 in IPv6 | You can hyphenate IPv4-in-IPv6 when used as an adjective, such as IPv4-in-IPv6 tunnels. Note that the internal v in IPv4 and IPv6 should remain in lowercase format. | |
ISO 9001:2015 certification | For example: ISO 9001:2015 certified" or ISO 9001:2015 certification Don't use: ISO certified or ISO certification (Per: ISO - Certification, for questions about the use of ISO Certificate terms and logo, please contact the GS quality team at *qmt) | |
it | Avoid ambiguous pronouns. Be explicit: "Check the status of the server. Restart |
|
jargon | Jargon is the technical terminology or characteristic idiom of a special activity or group. Try hard to avoid it. Think about explaining something to a member of your family or a friend who doesn't know what you know. F5 products are highly technical, but strive to be as plainspoken as possible when describing or instructing. Spell out abbreviations on first use, use the clearest and easiest word to understand that will still accomplish the job, and so on. | |
JWT license file | Include the word "license" when referring to the JSON Web Token that users download as part of their F5 NGINX subscription. | |
kill | Avoid this term except in command line syntax, where it is a UNIX command for stopping processes. (It's actually an IEEE POSIX standard command.) Alternatives for describing the action are: § End the process § Interrupt the process § Quit the process § Shut down the process § Stop the process | |
known issue | Abbreviate as "KI" when using in public-facing documentation. | |
knows | When referring to products, avoid it; it's anthropomorphism. When referring to products, stay away from words like decides, knows, sees, listens, and hears. Do not use possessive case for inanimate objects. | |
Latin | Don't use it [via, vice versa, id est, i.e., e.g., etc. ] EXCEPTION: Security Advisory Articles and vulnerabilities in release notes. | |
launch | As in launch a program. This is jargon. Use start instead. | |
layer 4 (L4) | Lowercase spelled out, capitalized in abbreviation. Use same reference for all layer numbers: layer 2, 3, 7, etc. layer 4-7 (L4-7) (no spaces) | |
left-hand | See Page directions. | |
let | One of those weak, vague verbs we're supposed to avoid as much as possible: Allow, do, enable, let, perform; enter [usually implies type and press Enter], be, has, make, and do. Use direct, active verbs instead. | |
lets, allows | Avoid. These verbs are system-focused and not user-focused. They may be appropriate to employ in a description about the feature, but not when describing what a user can accomplish by using the feature. | |
list box | When possible, don't use the UI item name. Use the label name instead. If necessary for clarity, use list. | |
listens | When referring to products, avoid it, it's anthropomorphism. However, it is acceptable only in conjunction with UNIX daemons, which listenon the port specified by a user. When referring to products, stay away from words like decides, knows, sees, listens, and hears. | |
load balance, load balancing, load balancer | No hyphen, even as an adjective. | |
local domain name system server vs. | Do not use; use local domain name system server or variations as applicable, such as local DNS server or LDNS server and so on. | |
Log error message types (format) | The message type should be formatted in lowercase, such as: log_error. | |
Log in syntax for products | Login is an adjective or noun. Log in is a verb. Log in to (F5 product) or verify your login credentials. | |
login vs. logon | Use log in and log in to. There are still legacy instances of log on and logon and GUI references to logon. Do not use log into (or onto) when referring to the login process; use two words: Log in to the system… Login is an adjective or noun. Log in is a verb. | |
lower left hand | See Page directions. | |
lower right hand | See Page directions. | |
make | One of those weak, vague verbs we're supposed to avoid as much as possible: Allow, do, enable, let, perform, enter [usually implies type and press Enter], be, has, make and do. Use direct, active verbs instead. | |
man pages, MAN number | Man pages (short for manual pages) are OK to mention in content if appropriate. MAN numbers refer to the manual publication numbers that appear in the front matter of our documentation (such as MAN-0123-04). | |
management interface | Synonymous for management port. | |
management port | Synonymous for management interface. | |
manually vs. “from scratch” | Use manually or specify when describing how to create a process from the beginning or at the start. Avoid from scratch to ensure clarity and prevent future localization issues. | |
master | Do not use this term in documentation unless you are referring to/quoting specific command line syntax or process. For example: "The nginx master process...". Some possible alternatives, depending on your use case: primary, prime, principal, control, or, possibly, server. For more information, refer to K34150231: Exclusionary language in F5 products and documentation. | |
master/slave | Do not use these terms if possible. Revise to primary/secondary. | |
may/may not | Implies permission or uncertainty. Generally, use can indicate ability. | |
menu | In general, try to avoid discussing the UI. Use the label of the UI item instead unless there is a possibility for confusion. Do not use menu as a generic term. Most often the UI item is a list, not a menu. Never use "drop-down menu". | |
mouse | Don't use the word mouse when you mean cursor. | |
mouse over | We don't use mouseover, or mouse over, or mouse-over in our writing. If you need this concept, try a write-around: "when you move the cursor over..." or "hover over the system performance graph...". | |
Move button and << >> symbols (GUI) | When referring to GUI settings, you can document the button as the Move button and follow with the icon symbols << or >> as appropriate, or opt to not include the button by name if appropriate. | |
multifactor authentication (MFA) | multifactor is one word | |
mutually exclusive | Be careful how you use this. PREFERRED: This option mutually excludes the from-group and to-group options. TECHCOMM STYLE: The from-group and to-group options are mutually exclusive. | |
My Support | two words, title caps | |
MyF5 | Do not use MyF5 Knowledge Base (MyF5) or MyF5 portal. | |
name server vs. nameserver | nameserver | |
Navigate to | Replaces with "Go to". | |
net | Don't use the word net to mean network. | |
network | Don't use network as a verb. | |
network mask | In our documentation, a network mask is also known as: a netmask,subnet mask, and mask. Use network mask when possible. | |
Note style type | Use only these Note style types: Note, Important, Tip, and Warning. Caution and Attention note style types are not used unless in hardware documentation. We do not use Notice. | |
numbers and numerals | Spell out the number 0-9, for example, three computers one file; numbers are OK to use in numeric elements (<0); ordinal numbers use words, such as first, second, third. Our hardware documentation may present some exceptions to this guideline. | |
numeric ranges | Use a hyphen (or En dash if available) as opposed to writing to when possible to indicate a range between numbers. Use a hyphen as opposed to writing to when possible to indicate a range between numbers. Also use “between” when possible, and not from when referring the numeric range. MyF5 uses through instead of a hyphen in paragraph text (non-procedural writing or writing outside of titles, tables, headers, etc.) when indicating version ranges. NGINX Instance Manager 2.1 through 2.5. | |
on-screen | Do not use screen or variations thereof when referring to the user interface. Use "page" instead. | |
once | For localization purposes, use only in the noun form (to mean one single time). Use when or after as appropriate. Not our style: Once you have completed this task, the configuration is complete. | |
operating system vs. operation system | Watch out! We run an operating system (OS) and perform an operation; do not use operation system for OS. | |
output | Is a great word as a noun or adjective, but a failure as a verb. Use write to, display on, print on, or print to instead. | |
page | Use instead of screen. | |
page directions | Use only when necessary (when a UI item is hard to find). Consider that, due to Responsive Web Design, the directions may not be applicable on all viewing devices. Use: at the top of the page, at the bottom of the page, on the right side of the page, on the left side of the page. Avoid: right-hand, left-hand, above, below, and other variations |
|
patch | Use when applying an engineering hotfix. For example: You can patch your system using hotfix files. | |
path | Try to avoid using it when referring to a directory structure. You may use path when you are referring to a DNS path. In DNS, path and directory structure are different things. Use path. | |
path name | Don't use it. Use path instead (see path). Don't use path name, but you can use file name. | |
percent (%) | Do not spell out percent. | |
perform | One of those weak, vague verbs we're supposed to avoid as much as possible: Allow, do, enable, let, perform; enter [usually implies type and press Enter], be, has, make and do. Use direct, active verbs instead: complete, follow the steps, finish… | |
persist | When used as a transitive verb, as in use this command to persist connections to the server. Use the adjective form, persistent, whenever possible. So instead of saying to ensure the connections persist, say "To ensure persistent connections...." | |
please, thank you | Don't use please except where the user is asked to do something inconvenient or where the software is to blame for a situation. Use thank you only when user has provided info that is difficult or inconvenient to collect. | |
plug-in, plugin | Both variations (with and without hyphen) are acceptable as long as maintaining internal consistency throughout topic(s) and/or sections, and clear to audience. | |
pointer | On the off chance that we'll ever talk about a cursor, don't use the word pointer when you mean cursor. | |
policing | Recast in terms of policies or policy enforcement for clarity, if appropriate. | |
policy | Always qualify this with an appropriate modifier when referring to a policy, such as enforcement policy or access policy, and so on. | |
Policy Builder | Do not use the Policy Builder or Policy Builder feature or any other permutations thereof. | |
policy item | Policy items are the objects used to build policies in the Visual Policy Editor. Policy item names are title case, non-bold. For example, the SSO Resource Assign policy item. | |
policy name (user instruction, tagging) | In a content example, such as: When creating enforcement policies that you plan to apply globally or to unknown subscribers, include the word global or unknown in the policy name to distinguish these from other subscriber policies. Do not use quotes for emphasis. | |
popup screen, pop-up window | MyF5 uses pop-up window instead of dialog box. TechComm uses popup screen instead of dialog box. | |
possessives | Don't do it with our trademarks. Do not use possessive case for inanimate objects. Do not use possessive constructions for product and company names, such as NGINX's config file. No possessive in trademarked words. For instance, you can't have the NGINX's anything but you can say the NGINX instance's something. | |
power off | Do not use.* Use shut down for turn off. | |
pre-logon | As a setting: Pre-Logon Sequence. | |
prepositions | Areas--Settings are in an area of the page. Box -- Users type in a box. Charts -- Charts show on a page; info is found in charts. Check box -- (use rarely) We place a check in a checkbox (more common, select the checkbox) Diagram -- Info or objects are in a diagram or in a figure Headers -- Users hover over a header. Legend -- Users find info in the legend for a figure. List -- Select (without preposition) an item in a list. Select an option from a list; data appears in a list. Menu bar -- Select something on a menu bar. Menus -- Commands are on menus. Menus -- Choose commands from menus. (Note: most UI elements are not menus but lists. See menu.) Navigation pane -- Select an item in/on the navigation pane. Network -- Printers may be on a network. Pages -- Information and controls are on a page. Panels -- Refer to objects in a panel. Popup window –-(use infrequently) Information and controls are on a popup window. Tabs -- The Visual Policy Editor may open in a new tab; information is found or selected on a tab. Tables -- Controls are in, and info listed in, tables; but you select an item from a table. Toolbar -- Select something from a toolbar, or tell the user to select something on the toolbar. |
|
private cloud | A cloud computing environment wholly dedicated to, and accessible only by a single group, or organization. Use instead of: bare metal on-prem. Also see public cloud. | |
procedure vs. step | Avoid referring to a procedure as a step(s). We can refer to a procedure as a task if appropriate. | |
pronouns | Second person (you, your) is preferred over third person (the user, the administrator) unless necessary to avoid confusion. Avoid we If possible, use F5 instead of we. Following MSG's Bias-free communications, use gender-neutral pronouns rather than he/she, his/hers, and him/her. If you can't write around using the pronoun, use their, theirs, they, or them for the gender-neutral singular and plural pronoun. | |
public cloud | Cloud computing services delivered over infrastructure shared by multiple groups or organizations. | |
QoS vs. QOS | Do not write as QOS regardless of the context; always document the abbreviation for Quality of Service as (QoS). | |
queuing vs. queueing | Use queuing, not queueing. | |
quotation marks | In our docs, we don't typically use quotation marks except when quoting a source, or when they are required for syntax. | |
quotation marks (titles/headings) | Do not use quotation marks in topic titles or section headings; recast or omit if needed. Also, apply appropriate tags to identify what the text represents (such as a log or error message, and so on) rather than using quotes to add emphasis or convey something about the text origin. You can use smart (straight) quotes in release notes, for table cell content (such as CLI syntax and related text in Known issues, and so on). Do not use curly quotes in content. | |
radio button | Don't use radio button. Refer to item by label. If necessary for clarity, use button or option. | |
Reboot, reset | Do not use. Use restart. See boot, boot up, reboot. | |
Referrer | (industry standard when referencing the referrer header.) | |
regular expression | Not RegExp. | |
Reject | See virtual server types. | |
reject-all | Also refer to catch-all. | |
replace | To install a system in place of one with the same platform, due to failure or similar condition. For example: If your hardware fails, you can replace it if you have a support contract by calling F5 Support. | |
resource record | Not RR. | |
Result (TBA and GUI) | For GUI content, you can omit a Result step if you feel the result of the GUI steps would be obvious and expected for the user. | |
right-hand | See Page directions. | |
Role-based Access Control (RBAC) | Note the hyphen and acronym style. | |
root account | Use this version for general references; if referring to the UI, reflect how the UI refers to it. | |
scale (up, down, in out) | See Autoscaling. | |
screen | Do not use screen or variations thereof when referring to the product user interface. Use page instead. | |
secure network address translation (SNAT) | SNAT is a noun. Do not use as a verb. You use SNAT to. You don't SNAT to. | |
secure web gateway | Do not abbreviate generic references to the F5 offering. | |
sees | When referring to products, avoid as anthropomorphism. When referring to products, stay away from words like decides, knows, sees, listens, and hears. | |
select | Use instead of "click on" when referring to interaction with elements of a product user interface. | |
server-side/server side | Hyphenate when used as an adjective. | |
Session Initiation Protocol (SIP) | Correct: a SIP client (pronounced sip). | |
shortcut menu | Don't use it. | |
should | Should can be ambiguous. Avoid using it. Do not use should when you mean if. Don't say, Should you decide to … just say If you decide to… . | |
single quotes | In our docs, we don't use single quotes to mean apostrophes [ 'like this' ]. We use them only when they are required for syntax. | |
slash (“/” symbol) | When referencing the slash character (forward or backward) in content, specify the symbol by name (forward slash or back slash). You can also add the symbol if you feel that is helpful, though this is not required (/). Do not use oblique to mean slash. | |
slave/master | Do not use these terms if possible. Revise to secondary/primary, respectively. For more information, refer to K34150231: Exclusionary language in F5 products and documentation. | |
space | Do not use when referring to an input field or checkbox where the user needs to enter info. Recast to identify as a box. | |
SPDY | Correct: a SPDY profile (pronounced speedy). | |
spin up/spin down, spinning up/spinning down | Jargon, but becoming more widely used because of AWS. Do not use in our documentation without adding context on first reference. For example You can spin up (create additional virtual instances) or spin down (remove virtual instances) . . . . | |
SSH | Do not spell out. | |
SSL | Do not spell out. | |
SSLi/SSL Intercept | For the SSL Intercept iRule. Spell out. Do not abbreviate except to match UI label. | |
Sync-Failover (and Sync-Only) | Title capitalize and hyphenate to Sync-Failover unless referencing the option in tmsh; then lowercase and hyphenate as sync-failover. These guidelines apply to Sync-Only as well. | |
tap | Describes action of touching the hardware touchscreens in hardware documentation. Do not use in software documentation; use "select" instead. | |
tarball | tarball is defined as "files distributed as a tar archive"; a computer file format that can combine multiple files into a single, typically compressed, file. | |
TCP flag names | All caps. SYN, ACK, PSH, URG, FIN, etc. (Industry standard) | |
tense | Strive to use the simple present tense rather than the past or future, unless necessary for clarity. Do not: The system will receive. Do: The system receives. Do not: The feature was introduced in NGINX Instance Manger 2.16. Do: The feature is introduced in NGINX Instance Manager 2.16. (Remember that for some users older versions are used in the present.) | |
text box | Use box. | |
that vs. which vs. who | Be careful. Don't use that when you mean who. Use that for objects and who for people. Also, make sure you don't mean which. That sets off essential clauses (containing information essential to the meaning of the sentence). Which sets off non-essential clauses (not containing information essential to the meaning of the sentence). Examples: The virtual servers that you configured are ready. (that you configured is essential to distinguish them from virtual servers that you did not yet configure.) The virtual servers, which you configured, are ready. (which you formatted is not essential because you do not have any configured ones to distinguish the configured ones from. This is just extra, non-essential, information. Note: which and the clause it modifies are set off by commas because you could eliminate the clause without changing the meaning of the sentence. You can't do that with restrictive that clauses. | |
There is / There are | Avoid starting sentences with "There is" or "There are." Instead, rephrase the sentence to start with the subject. | |
third-party trademarks | Writers do not need to trademark third-party product names/companies in content such as topics, help, or release notes. In our copyright page, we include this statement: All other product and company names herein may be trademarks of their respective owners. Rationale: It is not required, and some third parties have guidelines explicitly requesting that their marks are not marked. If a specific vendor requests it, then we can. But generally, we should not. | |
threshold event | We're not using this term in the documentation. The occurrence of system performance crossing a threshold and now behaving in a manner of interest to whoever established the threshold. A threshold event is generally associated with a notification. | |
touchscreen | One word, used to describe new active screens in hardware displaying settings. | |
trademarks | Watch out for possessive—don't do it in trademarks. For instance, you can't have the NGINX's anything but you can say the NGINX instance's something. Don't hyphenate trademarks. | |
Traffic Management Microkernel (TMM) | First mention: the Traffic Management Microkernel (TMM)Subsequent references: the TMM | |
Traffic Management Operating System (TMOS) | Do not use. See TMOS. | |
typically vs. normally | When describing a predictable and expected action in technical content, write in terms of what is typical rather than normal for clarity. Normal implies judgment. Avoid particularly when applying to user actions, practices, or behaviors. Use typical instead. | |
UDP | User Datagram Protocol. Do not spell out. | |
UI/GUI/WebGUI | Don't use these terms in documentation. For UI, call it the browser interface or user interface if necessary. Don't use GUI, or WebGUI. | |
unsecure and non-secure | Use unsecure and not insecure when describing a lack of security regarding something technical or technology-related in our documentation. If preferred and internally consistent with what you are documenting, non-secure may be OK, but defer to your editor. | |
update | Use when moving from one minor version of a product to another. For example, from NGINX Instance Manager 2.1 to 2.2. For example: Before updating your system, you should read the release notes to understand any new issues. For example: OIDC-authenticated users can't view the Users list after updating to NGINX Instance Manager 2.9.1. | |
upgrade | Use when moving from one major version of a product to another. For example, from NGINX Instance Manager 1.0 to 2.0. For example: When upgrading NGINX Instance Manager system, make sure your license key supports the new version. | |
upper left hand | Don't use. See Page directions. | |
upper right hand | Don't use. See Page directions. | |
username | one word | |
versions and version ranges | When referring to a software version, indicate the software name and then the version (for example, NGINX Instance Manager 2.16). Do not use the word version between the software name and the version (for example, NGINX Instance Manager version 2.x) When indicating a range of versions in procedure titles or subsection titles, indicate the software name and then the version range with a space, hyphen, and space between the version numbers (for example NGINX Instance Manager 1.x - 2.x). | |
via | Do not use. Use by means of or through or recast in terms of using to ensure clarity of meaning and avoid confusion with Via Headers. (and because it is Latin.) | |
vice versa | Another Latin word that we use like English. Avoid it; it's hard to translate. Instead, use conversely. | |
virtual address | Use instead of virtual IP address or VIP. | |
virtual address vs. virtual IP address | Although this refers to the IP address part of a virtual server destination address, only use virtual address (which also reflects the GUI). | |
virtual edition/Virtual Edition | Use virtual edition as a generic term. For Virtual Edition, see VE. | |
Virtual Local Area Network (VLAN) | Do not spell out unless necessary to context. | |
Virtual Private Network (VPN) | Do not spell out unless necessary to context. | |
walk | Don't use. Anthropomorphism. Instead, try guides, leads, conducts, directs, shows… Example: The Setup utility guides you through a series of pages. | |
warning/caution | Caution is less severe than Warning. Use Caution when alerting that damage may occur, such as data loss. Use Warning as the severest form of advisory, reserved for when there's a hazard to personnel (such as you're being directed to install a server rack and there's a chance it may fall on you). | |
wget | command. | |
Wget | program. | |
whether or not | Don't use whether or not something happens. Use whether. Also see if vs. whether. | |
while | Avoid using while to mean although. Use although or though instead. Avoid using while to mean whereas. Use whereas instead. |
|
whitelist and blacklist, whitelisting and blacklisting | Do not use these terms. Use the following substitutions: white list (noun) = allow list (noun); whitelist (verb) = allowlist (verb); whitelisted (adjective) = allowlisted (adjective); black list (noun) = deny list (noun); blacklist (verb) = denylist (verb); blacklisted (adjective) = denylisted (adjective). For more information, refer to K34150231: Exclusionary language in F5 products and documentation. |
|
Wi-Fi vs. wifi vs. WiFi | Use Wi-Fi | |
wide IP | Use an article when describing: the wide IP or a wide IP, as appropriate). | |
window | Do not use window or screen. Use page. | |
Window's | NEVER say Window's (as a possessive). Just Windows. | |
wish, desire | Do not use. Belongs in fairy tales. Use want, need, require, or prefer. | |
Wizard and wizard | When documenting the GUI, you can capitalize Wizard if appropriate, such as for the Network Access Setup Wizard. When writing about wizards in general, or when a page title of a dialog box or GUI does not show Wizard in uppercase format, you can leave wizard in lowercase format. | |
WWW or www | Do not include www. in web addresses In text, do not use WWW, but use Internet instead. Of course, you can use www as part of a URL. Although we're moving away from that, too. |
When writing new documentation, use the following templates:
- Concept Article
- Getting Started Guide
- How To Guide
- Installation Guide
- Reference Article
- Troubleshooting
- Tutorial
-
Prefer active voice and goal-oriented phrases:
Do Don't To restart the system, run the following command._ _ For the system to be restarted, run the following command._
Restarting the system can be achieved, if necessary, by running the following command._ -
Prefer that for essential clauses, which for non-defining details.
-
For optional, required, and forbidden actions, use proper modal verbs instead of ambiguous conditionals:
Do Don't You may/should/must add additional security by following this guide. If more security is necessary, follow this guide. For more information about modal verb semantics, see RFC-2119.
-
In code snippets, follow established style conventions of respective languages, including indentation, line breaks, and naming.
-
Omit unnecessary words and phrases, courtesy sugaring in particular.
Do Don't To enable this feature, do that. Oops! To enable this feature, please do that. -
Use hyphens to join compound adjectives before nouns, not after.
Do Don't A well-known feature. A feature well-known. The feature is well known. The feature is well-known.
Use sentence case predominately. Use Title Case only when referring to specific API objects by name or when matching the UI.
Examples:
- "To create an App, select ..."
- GET Get the details for a single Certificate
- Description: "Returns the metadata and status for the specified Certificate."
- On the Overview page for your app, select Create Component (where Create Component is from the UI)..
- GET Get the details for a single certificate.
- Description: "Returns the metadata and status for the specified certificate."
- Send a PUT request to the Roles endpoint to create a new role.
Only use screenshots when absolutely necessary, as they can be hard to keep up-to-date. Minimize their use to avoid frequent updates. Screenshots can quickly become outdated with changes in user interfaces or software versions, leading to user confusion. Consider if clear, concise written instructions can convey the information instead of a screenshot.
If you decide to include a screenshot, follow these guidelines:
- Use PNG format.
- Use filenames with lowercase words separated by dashes. For example,
nginx-management-suite-dashboard.png
. For consistency, don't use spaces or underscores. - Use a resolution of 72 dpi.
- Set the width to 800 pixels for full-width screenshots.
- Use a transparent background to support both light and dark modes.
- Don't add a border; CSS automatically includes it when the screenshot is placed in the documentation.
- Don't capture the cursor in the screenshot.
- Ensure the screenshot includes the relevant item (button, menu item, icon) with enough context to locate it in the user interface and understand the action.
- Avoid unnecessary whitespace. Crop the image to include only relevant content. If needed, use image editing software to move content closer together, or ask the writers team for help.
- Use simple arrows and rectangles to highlight important items. Use a high-contrast color to make the annotations stand out.
- Include a description (
<img alt>
text) for the screenshot that provides a brief summary of the content and context. This description helps screen readers describe the image to visually impaired users. For example, "Area chart titled 'NGINX Active Connections' showing the number of active connections over time for the current date. The x-axis represents the time of day, and the y-axis represents the number of connections, ranging from 0 to 10,000. The chart is color-coded with different shades to indicate varying levels of connections." For examples and guidelines for effective alt text, see the BBC's useful guide How to write text descriptions (alt text).
Ensure content and screenshots are anonymized and don't contain sensitive information:
- Replace personal information (names, email addresses, phone numbers) with generic placeholders.
- Replace sensitive data (IP addresses, passwords, domain names, SSH keys, OAuth 2 tokens, and other confidential information) with generic placeholders.
- Look for (and replace) sensitive words like
secret
- Look for (and replace) content such as UUIDs and OAuth 2 keys (which start with
eY
)
- Look for (and replace) sensitive words like
- Limit the use of links to external (non-F5) sources. When necessary, only link to reputable sources and foundational sites, such as GitHub.com, Google.com, and Microsoft.com.
- This helps minimize the risk of prompt injection.
In an ideal world, we'd "write once, publish everywhere." To support this goal, we follow the principle of Don't repeat yourself in our documentation. This principle shapes how we create and use includes
, which pull reusable content from files in the content/includes directory.
For example:
{{< include "controller/helper-script-prereqs.md" >}}
This entry automatically incorporates content from the helper-script-prereqs.md
file in the content/includes/controller
subdirectory.
To make sure includes are effective and easy to maintain, follow these practices:
- Use includes only for reusable content: Create an include only if the content appears in at least two locations. Using an include for single-use content adds unnecessary complexity and makes maintenance harder.
- Keep includes small and modular: Write narrowly scoped snippets to maximize flexibility and reuse.
- Avoid branded product names in includes: Use the full product name (e.g., "NGINX Instance Manager"), but avoid including the branded version (e.g., "F5 NGINX Instance Manager"). The branded name is required only on the first mention in a document; this is a context-specific rule. Includes, however, are designed to be context-agnostic—they should not rely on or assume any prior content—so including the branded name could repeat information unnecessarily in locations where it has already been introduced.
- Don't include headers: Avoid adding H2 or other headers inside includes. These headers won't appear in the document's table of contents (TOC) and may not fit well with the surrounding content hierarchy. Add headers directly in the document instead.
- Avoid nesting includes: Don't place an include inside another include. While technically possible, it complicates reviews and maintenance. Use a flat structure for simplicity.
- Don't start documents with includes: The opening of a document is usually the introduction, which explains its purpose. Includes are reused text, so starting multiple documents with identical content could look odd, especially in search results.
When managing NGINX through the command line, it’s important to choose the right command based on its effect on users and connections.
Before reloading or restarting NGINX, always check the syntax of the NGINX configuration to avoid potential errors. Use the following command:
sudo nginx -t
-
sudo systemctl nginx reload Use
reload
to apply configuration changes without stopping active connections. This keeps the NGINX service running while updating the configuration. It’s the preferred option for most changes because it avoids downtime and doesn’t interrupt users.Note: While
nginx -s reload
is also available, it works differently by reading the configuration file twice: once when sending the signal and again when the master process reloads.nginx -s reload
is typically used in environments that don’t usesystemd
, such as Windows. On most modern Linux distributions that usesystemd
, it’s better to usesystemctl reload nginx
because it integrates directly with the system’s service manager.Example:
sudo systemctl reload nginx
-
sudo systemct restart nginx Use restart when you need to fully stop and start NGINX, such as for software upgrades or clearing memory. This action will:
- Drop all active connections, causing a temporary service interruption.
- Reinitialize worker processes, which clears any in-memory states, including cached data.
- Reload all modules and configurations. If there’s an error in the configuration, the restart will fail, potentially bringing down the service until the issue is resolved.
- Reset logging, depending on your log rotation setup.
- Clear any temporary files or ongoing operations (such as uploads or downloads), which could disrupt users mid-process.
Example:
sudo systemctl restart nginx
Key points:
- Reload is usually the best option to avoid disrupting users and to apply changes without downtime.
- Restart should only be used when necessary, with a clear warning about connection loss and potential disruption to ongoing operations.
The following table describes the history of all decisions and revisions made to this style guide over time. This guide uses the Major.Minor.Patch semantic versioning convention.
Edition | Date | Lead Author(s) | Comments |
---|---|---|---|
1.9 | December 10, 2024 | Mike Jang | Specify the use of "license" when writing about the JWT token associated with licensed versions of NGINX. |
1.8 | December 4, 2024 | Jon Torre | Clarify that heading text must not contain a link to other pages. |
1.7 | November 20, 2024 | Mike Jang | Specify "includes" must be in at leat two locations. |
1.6 | October 23, 2024 | Jon Torre | Incorporated specific guidelines from Unit's style guide |
1.5 | October 3, 2024 | Mike Jang | Include guidelines for "includes" |
1.4 | Septemter 20, 2024 | Mike Jang | Organize and clarify info on sensitive content |
1.3 | August 12, 2024 | Jon Torre | Include additional rules for product names |
1.2 | June 21, 2024 | Travis Martin | Added link to BBC's examples for effective alt images |
1.1 | May 21, 2024 | Jon Torre | Added guidelines for screenshots |
1.0 | May 05, 2024 | Travis Martin | First draft of Style Guide |