Bug tracking × Kanban

Your debugging method deserves more than just console.log()

BugBoard turns bugs, crashes, and glitches into kanban cards. Call bugboard.critical(error) and it shows up on your board, already deduplicated, escalated when it spikes, and ready for your team to pick up.

Free Hobby plan2-minute setupNo card required

app.bugboard.dev/projects/acme-checkout/board
live board

Bugs land as cards with severity, occurrences, and an owner. Watch the board triage itself.

How it works

From stack trace to ‘Done’ in three moves

No separate bug dashboard to babysit. The bug report and the work item are the same thing.

01

Drop in the SDK

Swap console.log for bugboard.critical(). One import, one call, in JavaScript/TypeScript and PHP.

02

Bugs become cards

Each unique bug lands on your board with a stack trace, severity, and an occurrence counter. Duplicates just bump the count.

03

Triage together

Assign, comment, attach, and drag to done. Auto-escalation makes sure the loud ones never sit at the bottom.

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
Auto-created on your board
Critical×27

PaymentError: charge declined

checkout.ts · just now

AKAuto-escalated
Everything in one board

The pieces that turn a bug into a fix

Just the parts you actually use, none of the enterprise sprawl. Here's what you get the moment you sign in.

board

Triage on a board you already know

Every bug lands as a card. Drag it from To Do to Done the way your team already works, with reported bugs and regular tasks side by side.

To Do4In Progress2Done31
realtime

Moves land on every screen

Cards move on your teammates’ boards the moment they move on yours. No refresh, no “who took this one?”

Amara moved “PaymentError…” to In Progressnow
Josh reordered To Do12s
alerts

Only the pings that matter

New bugs, escalations, and reopens — routed to Slack, Discord, or email, tuned per project so nobody drowns in noise.

PaymentError escalated to Criticalnow
Mia assigned you TypeError: user…2m
team

Bring in your team when you need to

Assign members, comment in context, and attach logs or screenshots right on the card. Roles are per project, not per org.

AKMW
3 comments · 2 attachments
insights

See what broke, and who fixed it

Bug volume, median time-to-resolution, and throughput — analytics that live on the board, not in a separate tool.

Reports this week · resolution median 6h

sdks

Two SDKs, one call

JavaScript/TypeScript and PHP. Swap the throwaway log line for bugboard.critical() and you’re reporting.

TypeScriptPHPbugboard.critical(error)
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
Encrypted transport

Seal sensitive payloads in flight

Bug reports can carry emails, tokens, or anything else your code touched. Turn on encryption per project and BugBoard seals those payloads before they leave the client, decrypting them only on the server.

  • Opt in per project and encrypt only the payloads you choose
  • Sealed with X25519 (libsodium sealed box); the public key is safe to embed in client code
  • Opaque in the browser network tab, at proxies, and in logs
  • Decrypted only on our servers to build your cards
FAQ

Bug tracking on a kanban board, explained

Traditional bug trackers give you a feed of exceptions and stop there — you still copy the ones that matter into Jira or Linear by hand. BugBoard removes that second tab. A captured bug arrives as a card on your kanban board, already deduplicated, ready to assign, comment on, and drag to Done. Same tool, one job.

About two minutes. Install the SDK, drop in your project API key, and call bugboard.critical(error) from your error handler. The next bug shows up on your board.

There are two official SDKs, for JavaScript/TypeScript and PHP. They are thin wrappers over one plain HTTP JSON endpoint, so any language that can POST can report bugs — the Custom Implementation guide walks through it in a single dependency-free file.

Yes, 2 projects, full feature set, no credit card and no trial clock. Upgrade when you need more projects or want to invite teammates. It is the default plan for every new account.

Always over HTTPS. For sensitive payloads you can also turn on encryption per project. The SDK seals each report with an X25519 public key before it leaves the client, so the body stays opaque in the browser network tab, at proxies, and in logs. Only your BugBoard server can decrypt it. Available on every plan, including Hobby.

Still deciding? Ask us anything

Starts free. Stays cheap.

2 projects free forever on the Hobby plan. Paid plans from $9/month when your team grows, billed through Paddle, cancel anytime.

Hobby $0 · Indie from $9/mo · cancel anytime