Our voice
AppSignal has one voice. Tone shifts with the moment.
We sound like a knowledgeable colleague who respects your time: direct, technical, comfortable with jargon when the audience is. Closer to Linear or Vercel than Mailchimp or Intercom. Warm at the edges, never performatively friendly.
- Friendly, not chatty. Not "Just head over to the settings page" or "Simply add the gem to your Gemfile." Write "Go to Settings" and "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 — energy and warmth dialled up or down — depends on the surface and on what just happened to the reader.
| Surface | Energy | Warmth | Length | Example |
|---|---|---|---|---|
| Product UI — calm reference | Low | Low–medium | Concise | Anomaly detected: mean response time exceeded 400 ms in the web namespace. |
| Documentation — patient teacher | Low | Medium | As needed | Use the Organization-level Push API key for back-end integrations. |
| Errors — clear communicator | Low | Low | One sentence + action | AppSignal could not save the dashboard. Try again, or contact support with the dashboard ID. |
| Empty states — encouraging guide | Medium | Medium | One line + button | No incidents in this namespace yet. When your app reports errors, they appear here. |
| Support — helpful colleague | Medium | High | Conversational | Thanks for reaching out. We've checked your integration; the issue is with the Firehose endpoint configuration. |
| Marketing — confident specialist | Medium–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. It 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
| Pattern | Why we avoid it | Rewrite |
|---|---|---|
| Chirpy | Exclamation points and celebrations feel patronising when someone is debugging at 2 AM | "Yay! Your deploy is live!" → "Your deploy is live." |
| Apologetic | Hedging or self-blame 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" |
| Forced casualness | Matey register reads badly to a technical audience, and worst of all in an error | "Looks like something went wrong! No worries, we've got you" → "An error occurred in the web namespace." |
The last row is a repair. The live page's text collided with an earlier edit and reads "Budd to buddy" / "doesn't might not be the best"; the intent was recoverable and has been rewritten. Fix it on the live page too.