Voice is who we are. Tone shifts with the moment.
AppSignal has one voice — calm, expert, friendly without being chatty. Tone changes depending on what just happened to the reader.
Our voice
AppSignal sounds like a knowledgeable colleague who respects your time. Direct, technical, comfortable with jargon when the audience is comfortable with it. Closer to Linear or Vercel than Mailchimp or Intercom. Warm at the edges; never performatively friendly.
- Friendly, not chatty. No "Just head over to the settings page" or "Simply add the gem to your Gemfile." Instead, use: "Go to Settings" or "Add the gem to your Gemfile."
- Confident, not bossy. Tell the reader what to do without over-explaining why they should trust you.
- Honest. If something is a limitation, say so plainly.
Tone by surface
Voice stays the same. Tone, the energy and warmth dialed up or down, depends on what surface we're on and what just happened.
|
Surface |
Energy |
Warmth |
Length |
Example |
|---|---|---|---|---|
|
Product UI |
Low |
Low to medium |
Concise |
Anomaly detected: mean response time exceeded 400 ms in the web namespace. |
|
Documentation |
Low |
Medium |
As needed |
Use the Organization-level Push API key for back-end integrations. This key sends data from all apps in your organization to AppSignal. |
|
Errors |
Low |
Low |
One sentence + action |
AppSignal could not save the dashboard. Try again, or contact support with the dashboard ID. |
|
Empty states |
Medium |
Medium |
One line + button |
No incidents in this namespace yet. When your app reports errors, they appear here. |
|
Support |
Medium |
High |
Conversational |
Thanks for reaching out. We've checked your integration and the issue is with the Firehose endpoint configuration. Here's how to fix it. |
|
Marketing |
Medium to high |
Medium |
Punchy |
Track errors, performance, and uptime for Ruby, Elixir, Node.js, Python, and more. |
Person and pronouns
The product talks to you, the developer using AppSignal. The product refers to itself as AppSignal in errors and notifications, and as we only in support-facing contexts where a personal tone helps. Stay consistent within a single surface.
|
✅ Prefer |
❌ Avoid |
|---|---|
|
AppSignal could not verify the key. |
You entered an invalid value. |
|
Configure your integration to start sending data to AppSignal. |
The account holder must configure the integration before the data can be sent. |
What we don't sound like
AppSignal's voice sits in a specific range. These are the edges we don't cross.
|
Pattern |
Why we avoid it |
Example to rewrite |
|---|---|---|
|
Chirpy |
Exclamation points and celebrations feel patronizing when someone is debugging at 2 AM. |
"Yay! Your deploy is live!" → "Your deploy is live." |
|
Apologetic |
Hedging or blaming ourselves undermines trust. State what happened and what to do. |
"Unfortunately, we weren't able to process all your data" → "Some data points were dropped during ingestion. Check your payload size against the limits." |
|
Salesy |
Marketing language makes docs and UI feel untrustworthy. |
"Our best-in-class anomaly detection" → "Anomaly detection" |
|
Budd to buddy |
Forced casualness doesn't might not be the best in an error scenario for a technical audience. |
"Looks like something went wrong! No worries, we've got you" → "An error occurred in the web namespace." |