Learn

/

Content & Copy

Content & Copy

4 patterns

Error messages, scannable content, link text, and onboarding copy that communicate clearly. You'll hit this when users are confused by jargon, miss important links, or cannot figure out what went wrong.

Avoid

Error 422: Unprocessable Entity

What does the user do with this information?


Prefer

Please check your email address and try again.

The user knows exactly what to fix.

Why avoid

Technical error messages like 'Error 422: Unprocessable Entity' are meaningless to most users. They create anxiety, erode trust, and provide no path forward. Even technical users prefer clear guidance over raw error codes when they are trying to complete a task.

Why prefer

A message like 'Please check your email address' tells the user exactly what went wrong and what to do next. Good error messages are written in plain language, identify the problem, and suggest a fix. Users should never have to interpret HTTP status codes or stack traces.

Avoid

Features

Our platform helps teams collaborate on design projects in real time. You can create shared workspaces, leave comments on specific elements, track revision history, export assets in multiple formats, and integrate with popular tools like Figma, Slack, and Jira. We also offer version control so your team never loses work, plus role-based permissions so you can control who sees what.


Prefer

Features

Real-time collaboration

Create shared workspaces, leave comments on specific elements, and track revision history.

Integrations and export

Export assets in multiple formats. Connects with Figma, Slack, and Jira.

Security and permissions

Version control protects your work. Role-based permissions control access.

Why avoid

A large block of unbroken text is intimidating and hard to scan. Users have to read linearly to find any specific detail, which most will not do. Important information buried in the middle of a paragraph is effectively hidden from the majority of visitors.

Why prefer

Breaking content into short sections with clear headings lets users scan for what they need. Research shows that users read only about 20% of text on a page. Headings, short paragraphs, and visual grouping help them find relevant information without reading everything.

Link text
medium
Avoid

Getting Started

To set up your account, click here. For information about our pricing plans, click here. To read more about our API, click here.


Prefer

Getting Started

Start by creating your account. Compare features and costs on our pricing page. Developers can explore the API reference.

Why avoid

Generic 'click here' links carry no meaning when taken out of context. Screen readers often present a list of all links on a page, and a list of 'here, here, here' is useless. Even for sighted users, vague links force them to read surrounding text to understand where each link leads.

Why prefer

Descriptive link text like 'pricing page' and 'API reference' tells users where the link goes before they click. This is essential for screen reader users who navigate by tabbing through links, but it helps everyone by setting clear expectations about the destination.

Avoid

Step 2 of 4

Configure your OAuth2 callback URI and specify the PKCE code challenge method. Select the appropriate grant type for your client credentials flow.

Redirect URI (RFC 6749)

https://

PKCE Challenge Method

S256


Prefer

Step 2 of 4

Tell us where to send users after they log in, and how your app will verify their identity.

Where should users go after login?

https://yourapp.com/dashboard

Verification method

Recommended (most secure)

â–¾

Why avoid

Jargon-heavy onboarding screens create a barrier for non-expert users and slow down even experienced developers who have to recall specific terminology. Terms like 'PKCE code challenge method' are precise but unhelpful as a first introduction to a configuration screen.

Why prefer

Plain language in onboarding makes complex configuration accessible to users of all skill levels. 'Where should users go after login?' communicates the same concept as 'OAuth2 callback URI' but requires no prior knowledge. Smart defaults and plain labels reduce setup errors.