Skip to content

Feedback that doesn’t get lost.

Ozvi collects bug reports and ideas inside your app, delivers them to your team where it already works, and tells the reporter how it turned out. In your brand’s language and colours.

The Free plan needs no card. Self-hosted, it’s free with every feature.

One report, from click to reply

  1. 1

    A user reports a bug

    Right inside your app, with no extra account. The widget attaches a screenshot, version, browser and console errors, and blurs passwords and marked fields before anything leaves the browser.

    POST /api/widget/items → 201
  2. 2

    Your team gets it where it works

    By e-mail, in Slack or Discord, and as a GitHub issue in one click. Status stays in sync between Ozvi and GitHub.

    item.linked → acme/app#482
  3. 3

    Fix it from your editor

    The MCP server gives Claude Code, Cursor or VS Code access to reports: find related ones, merge duplicates and set the status with the fix version.

    set_status #128 fixed --version 2.15
  4. 4

    The reporter hears back

    An e-mail at every change, with the version number on release. One click confirms it works, and the report closes.

    mail bug_status → delivered
10.5 kB
Widget, gzipped. Runs in shadow DOM and never touches your styles or scripts.
HS256 / OIDC
Sign-in from your app. Users never create another account.
11 tools
MCP server for AI assistants: search, duplicates, statuses, release notes.
RLS
Each project is isolated in Postgres at row level, not just in app code.

Two flows. One overview.

Bugs stay private between the reporter and your team. Ideas are public so others can back them. Both follow a route the reporter can see.

Bug

Private. Screenshot, page, version, browser and console errors arrive on their own.

  1. ReceivedOnly the reporter and team see it.
  2. ConfirmedYou reproduced and triaged it.
  3. In progressThe team is working on it.
  4. FixedThe fix is in a release; the reporter gets the version.
  5. VerifiedThe reporter confirmed it works.

Idea

Public on the board. Voting, comments, roadmap and release notes.

  1. ProposedOthers vote and add context.
  2. PlannedScheduled for an upcoming release.
  3. In progressThe team is working on it.
  4. ShippedVoters got an e-mail.

Wire it up over lunch. Not over a sprint.

A widget script and one endpoint that signs the user in. Everything else is API: webhooks, GitHub and MCP for AI assistants.

  • A bug on the board becomes a GitHub issue in one click, and its status syncs back.
  • E-mails go through an outbox in the database. Nothing is lost when SMTP is down.
  • Every e-mail and webhook delivery is visible in the console, errors included.
index.html
<script src="https://ozvi.io/widget.js" defer></script>

<ozvi-widget
  project="acme"
  token-url="/api/ozvi-token"
  app-version="2.15.0"
  lang="en"
></ozvi-widget>

A button, a bug form with screenshot, and ideas. The language follows the lang attribute or the page.

Looks like your app. Not like us.

Try it. This board is real: vote, open an idea, leave a comment or suggest your own. Then style it in the editor exactly as you would in your project settings.

Accent
#5A3FE6
Base
Density

Text contrast passes (WCAG AA).

AAcme
  • Maria K.2
  • Jane T.1
  • Luke B.

What you can set

Colour
Five colours: accent, text, surface, canvas and borders. Plus a separate palette for dark mode.
Type
Any Google Font or the system font, separately for text and headings. We serve fonts from our own server, so visitors never connect to Google.
Shape
Corner radius from 0 to 24 px, and list density.
Logo and domain
Your logo and your own domain, like feedback.yourcompany.com. From Pro, without the Ozvi badge.
Voting
Upvotes or importance ratings, with an optional monthly vote budget.
Everywhere
One theme styles the board, the widget inside your app and the e-mails.

No custom CSS or templates. A theme is only a set of tokens, so the board never breaks on an update and stays accessible.

Pay per year. Not per seat.

No limits on users or records. You pay only for what costs us money: e-mail, storage and domains. Prices exclude VAT.

Free

€0

forever, no card

Projects
1
E-mails per month
1,000
Attachments
1 GB
Custom domain
No Ozvi badge
AI: duplicates and summaries
Users and records
unlimited
MCP, GitHub, webhooks, SSO
Start for free

Pro

€19

per year, or €6 per quarter

Projects
3
E-mails per month
10,000
Attachments
10 GB
Custom domain
No Ozvi badge
AI: duplicates and summaries
Users and records
unlimited
MCP, GitHub, webhooks, SSO
Choose Pro

Studio

€49

per year, or €15 per quarter

Projects
unlimited
E-mails per month
50,000
Attachments
50 GB
Custom domain
No Ozvi badge
AI: duplicates and summaries
Users and records
unlimited
MCP, GitHub, webhooks, SSO
Choose Studio

Self-hosted: €0, every feature.

One Docker image and Postgres. Nothing locked behind a plan. Source-available under the FSL, which converts to Apache 2.0 after two years.

# Ozvi + Postgres
docker compose up -d

# first project
docker compose exec ozvi node ozvi.mjs \
  project:create acme "My App"

Give your users a voice. And answer them.

The Free plan needs no card and never expires.