Features

Everything between the bug and the fix

Everything BugBoard does, built for one developer or a few: bug tracking and analytics that end in a managed task, not another unread alert.

Capture

Report bugs with one call

Replace the console.log you'd forget about with bugboard.critical(), bugboard.major(), or bugboard.minor(). The severity you choose is the severity on the board.

  • SDKs for JavaScript/TypeScript and PHP
  • Stack traces, tags, and custom context included
  • Severity levels map straight to board labels
checkout.ts
import { createClient } from 'bugboard';
 
const bugboard = createClient({
keyId: process.env.BUGBOARD_KEY_ID,
signingSecret: process.env.BUGBOARD_SIGNING_SECRET,
});
 
try {
await payments.charge(order);
} catch (error) {
// Straight to the board, not the void.
bugboard.criticalHigh(
'Checkout charge failed',
error,
['stripe', 'payment']
);
}
BugBoard connectedTypeScript · UTF-8 · bugs → board
app.bugboard.dev/projects/acme-checkout
To Do2
Criticalx12

PaymentError: charge declined

payments
×273AK

Add retry to invoice page

billing
2MW
In Progress1
Major

TypeError: user is undefined

auth
×91JD
Triage

A board you already know how to use

Columns, cards, drag-and-drop. Mix reported bugs with regular tasks. It's a full project management board, not just a bug inbox.

  • A board that mirrors your workflow
  • Priorities and severities at a glance
  • Regular tasks and captured bugs side by side
Encrypted transport

Seal sensitive payloads in flight

Crash reports often carry emails, tokens, and request bodies. Opt in per project and the SDK seals those payloads with public-key cryptography before they leave the client, so only your BugBoard server can read them.

  • Opt in per project and encrypt only the payloads you choose
  • X25519 sealed box (libsodium); the public key is safe to embed in client code
  • No shared secret in the browser, since a fresh ephemeral key seals every report
  • Opaque in the network tab, at proxies, and in logs
  • Decrypted only on the server to build your cards
  • Mix encrypted and plaintext clients in the same project
sealed report · checkout.ts

Your payload

{
  "message": "PaymentError: declined",
  "user": {
    "email": "user@acme.com"
  },
  "context": {
    "card_last4": "4242"
  }
}
Sealed with X25519

On the wire

{
  "encrypted": {
    "v": 1,
    "alg": "x25519-sealedbox",
    "key_id": "bbek_7Qe…",
    "ciphertext": "u8F2b1pK…9zR0opaque…Xw=="
  }
}
decrypted only on the serveropaque in transit
Signal, not noise

Deduplication and auto-escalation

BugBoard groups a report onto an existing card when its title or description matches exactly. Repeats increment a counter instead of creating a new card; crossing your threshold escalates it and notifies the team.

×500 → 1

Five hundred repeats, one card. The counter does the shouting.

minor → critical

Severity climbs automatically as occurrences cross your thresholds.

1 ping

One escalation notification instead of an inbox full of duplicates.

Automation

Rules that triage while you sleep

Set the thresholds once per project. From then on the board keeps itself honest - bugs that prove they matter climb, bugs that go quiet settle back down, and bugs that come back after a fix never stay closed.

  • Rules on severity and priority, per project
  • Filter by current level, so rules only touch what you mean
  • Stale bugs auto-archive or auto-delete on your schedule
  • Every automatic move is logged and notified
app.bugboard.dev/projects/acme-checkout/settings/tasks

Auto-escalation

severity · minor → critical at ×50

A bug that keeps firing climbs on its own. Cross the threshold you set and the card moves up, marks itself as automatically escalated, and pings the team.

De-escalation

severity · critical → moderate after 14d

The mirror image. A critical nobody has seen in two weeks settles back down, so your board reflects what is breaking now, not what broke last month.

Reopen rules

done → to do on the next occurrence

A bug you fixed that comes back never sits quietly in Done. It jumps to an active column, one severity higher, and the team hears about it.

Spike detection

alert when today breaks the trend

A sudden burst of occurrences is its own signal, separate from any threshold. Turn it on when you want to know the moment something goes wrong.

Together

Bring in a teammate when you need one

Most of the time it is just you. When it isn't, invite by email, control what each person can see and change, and decide exactly which events deserve a notification.

  • Email invitations with role-based access
  • Eleven lifecycle events, each toggled on its own
  • Email, Slack, and Discord - pick per project
  • Ownership transfer when teams change

PaymentError escalated to Critical

crossed 25 occurrences · just now

Amara assigned you “TypeError: user is undefined”

Checkout project · 12m ago

New comment: “repro steps attached, see video”

from Dev · 1h ago

Notification control

Three dials, so nobody mutes the whole product

Most tools give you one switch and a choice between noise and silence. Control lives at three levels here, and the one closest to you wins.

Project

Choose the events

Eleven lifecycle events, each with its own switch, routed to email, Slack, or Discord. Loud ones like every task update ship off by default.

Member

Everyone tunes their own

Teammates opt out of what they do not need, per project, without touching anyone else’s setup or the project defaults.

Card

Mute one noisy bug

One known-flaky error should not cost you the whole project’s alerts. Mute the card and leave everything else running.

Muting a card silences the routine chatter but still lets the high-signal events through - a reopen, an escalation, or a spike will always reach you. Silence a bug, not an emergency.

And the rest

Small features that add up

Comments

Discuss a crash where the work happens, right on its card.

Attachments

Drop logs, screenshots, and repro files onto any task.

Assignment tracking

Every card has an owner, so nothing falls between chairs.

Roles & access

Owners, members, and viewers, scoped per project, not per org.

API keys

Scoped per project, rotate them in one click.

Activity logs

A full audit trail of who did what, and when.

Project insights

Trends on bug volume, resolution time, and throughput.

Pinned projects

Keep the project on fire one click away.

Archiving

Shipped and stable? Archive the project, keep the history.

See it with your own bugs

The Hobby plan is free forever: 2 projects, full feature set.