Bug tracking × Kanban

Zero-bloat bug monitoring for indie builders.

BugBoard is a lightweight bug tracker on a kanban board, built for freelancers, indie hackers and solo devs. One call in your code, and the bug is already a card: deduplicated, counted, escalated when it spikes.

Free Hobby plan2-minute setupNo card required

Live demo

Drag a card to another column. This is the real board on sample data, and nothing here is saved.

app.bugboard.dev/projects/acme-checkout
SDKs
2
severity levels
4
SDK methods
16
min to first card
~2
How it works

The bug report and the work item are the same thing.

  1. Step 1, install. Install the client. One package, one import.
  2. Step 2, keys. Create a key in project settings, paste it into your env.
  3. Step 3, throw. Your code throws. One call reports it.
  4. Step 4, caught. It lands as a card - severity, location, owner. Duplicates just bump the count.
  5. Step 5, pinged. Only new bugs, escalations, and reopens ping you - Slack, Discord, or email.
  6. Step 6, recap. One package, one board. The bug report and the work item are the same thing.
checkout.ts

From an empty project to a caught bug, start to finish.

01

Drop in the SDK

One import and one call. bugboard.critical(error) reports straight to the board, in JavaScript/TypeScript and PHP.

02

Bugs become cards

Each unique bug lands on your board with its stack trace, severity and an occurrence counter. Duplicates bump the count instead of making noise.

03

Triage together

Assign, comment, attach and drag to done. Auto-escalation pushes the loud ones up so they never sit at the bottom.

What's included

All of this is on the free plan too

Paid plans buy room for more projects and teammates. They never unlock features, so nothing here sits behind an upgrade.

Bugs arrive as cards, not as a list

Every unique bug lands in To Do carrying its stack trace, severity and occurrence count. Drag it to Done like anything else on the board. Reported bugs and hand-written tasks share the same columns.

To Do4In Progress2Done31
Auto-created on your board
Critical×27

PaymentError: charge declined

checkout.ts · just now

AK
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

Payloads leave the browser already sealed

Bug reports carry whatever your code touched: emails, tokens, order IDs. Turn encryption on per project and BugBoard seals the payload before it leaves the client, then decrypts it on the server to build the card.

  • 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
Built for AI-assisted development

Let your AI assistant do the install

One prompt wires up the SDK, payload encryption, global error handling and the build plugin that makes cards name your real source files, then hands you a checklist of what is left.

Prompt for your AI assistant

Integrate the bugboard.dev SDK into this project: enable payload encryption, add global error handling, keep the config in-memory with debug mode off, and prioritize live reports over local logging. Apply the SDK's debugging methods at likely failure points.

Then make sure every card points at the file that actually failed:

  1. 1

    Pass the caught error or exception itself as the description argument, never just its message - the SDK reads the throw site off it.

  2. 2

    If this is a bundled JS/TS project, add the BugBoard plugin for this bundler - 'bugboard/vite', 'bugboard/rollup', 'bugboard/webpack', 'bugboard/esbuild', or 'bugboard/webpack' via turbopack.rules - or cards will report a minified chunk name instead of my source file. List any non-bugboard-named client module in the plugin's clientModules option.

  3. 3

    Once that plugin is in place, add lineNumbers: true to the client config for exact line numbers.

  4. 4

    For a bundled Node server, import 'bugboard/preload' as the very first line of the entry file.

  5. 5

    For PHP, leave project_root auto-detection alone unless deploys path-map the source, then set BUGBOARD_PROJECT_ROOT.

Finally, tell me which of the above applied to this project, and give me a step-by-step checklist of what's left.

Fit

Built for one developer, or a few

BugBoard is scoped on purpose. Here is who it fits, and who it does not - so you can tell in one screen instead of after a signup.

Built for

  • A solo dev shipping side projects on the weekend
  • A freelancer keeping several client apps alive at once
  • A two-to-five person indie team sharing one board
  • Anyone who wants triage to take seconds, not a process

Not built for

  • Large engineering orgs with a dedicated tools team
  • SSO, audit trails and compliance reporting
  • Per-seat headcount planning and procurement reviews
  • Anyone who needs a hundred integrations before day one

Built by one person, on purpose.

I got tired of reading a stack trace in one tab and retyping it as a ticket in another, so I built the board that catches its own bugs. It is built for people who work the way I do: one developer, or a few.

BugBoard is new. The roadmap is not fixed yet, and when you email support you get me, usually the same day.

- Santanu Biswas

Pricing

Starts free. Stays cheap.

Every plan ships the full product. Paid plans buy room for more projects and teammates, never features.

Hobby

Free
Forever. No card required.
  • 2 projects
  • 1 member per project
  • 60 events per min, per project
Start free
Most popular

Indie

$9/ month
  • 10 projects
  • 5 members per project
  • 100 events per min, per project
Start free

Professional

$19/ month
  • 20 projects
  • 10 members per project
  • 200 events per min, per project
Start free
FAQ

Bug tracking on a kanban board, explained

Freelancers, indie hackers and solo devs - plus the small teams they grow into. If you ship your own apps or a handful of client projects and you do not want to run a heavyweight error tracker beside a heavyweight project board, this is built for you. If you are a large engineering org that needs SSO, audit trails and compliance reporting, BugBoard is deliberately not that tool, and it is not trying to become one.

Both, and that is the whole point. Most error trackers give you a feed of exceptions and stop there - you still copy the ones that matter into a separate task board 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

Put your next crash on the board.

2 projects free forever on the Hobby plan. Paid plans from $9/month when you outgrow it, billed through Paddle, cancel anytime.

Create your free account