Vinktar and self-hosted Sentry

Keep your Sentry SDK, stop self-hosting Sentry

Point the DSN at Vinktar and turn the stack off. Your errors keep arriving as issues, with what the user did before each one, and there is nothing left to upgrade.

Free up to 50,000 errors a month. No card.

.env+1 −1
-SENTRY_DSN=https://abc123@sentry.harrowby.io/3
+SENTRY_DSN=https://vnk_pk_8f2c…@in.vinktar.com/12

Connect web

Next.js, keeping the Sentry SDK

  1. Step 1, done: The Sentry SDK points at Vinktar
    SENTRY_DSN changed, nothing else
  2. Step 2, done: First error arrived
    A test exception from production
  3. Step 3, done: Release and environment tagged
    web@2.36.0, production
  4. Step 4: Waiting for a signed-in user
    Set the user id so errors join to the people they hit

Fair to say

Where self-hosted Sentry is the better choice

Your data stays on your machines

Every event lives on servers you run. Vinktar is hosted only, in Helsinki, and there is no version of it you can run yourself.

No bill per error

You pay for the server, however many errors arrive. Vinktar’s plans are flat, and the free one stops at 50,000 errors a month.

It is the whole of Sentry

Sentry cuts each self-hosted release to stay as close to sentry.io as it can, so your team keeps the product it knows. Vinktar has no tracing or session replay.

What Vinktar does

Errors, what led to them, and an agent that can read both

01 · Switch

Change one line and deploy

Vinktar reads what the Sentry SDKs send. Point the DSN at Vinktar and your code stays as it is. Errors arrive grouped into issues with their release and environment.

Tested with the Sentry SDKs for JavaScript, Node.js, Next.js, Python, Laravel and Symfony.

Connect web

Next.js, keeping the Sentry SDK

  1. Step 1, done: The Sentry SDK points at Vinktar
    SENTRY_DSN changed, nothing else
  2. Step 2, done: First error arrived
    A test exception from production
  3. Step 3, done: Release and environment tagged
    web@2.36.0, production
  4. Step 4: Waiting for a signed-in user
    Set the user id so errors join to the people they hit

02 · Understand

See what happened before the crash

Every error keeps the half hour before it: the clicks, the requests and the events you track, from the same user.

Events before· 4

What this session sent in the 30 minutes before, newest firstOpen in Explore
  1. 12s beforereport_viewed/app/reports/revenue
  2. 1m 35s beforesearch_performed/app/reports
  3. 3m 10s beforedashboard_viewed/app/dashboards
  4. 4m 20s beforelog_in/login

03 · Fix

Your coding agent reads it too

Connect Claude Code, Cursor or Codex over MCP. It reads the issue, the stack trace and what the user did, and anything a browser sent reaches it fenced as data.

Claude Code~/harrowby/web

> What broke since the last deploy?

vinktar - list_issues (MCP)(sort: "first_seen")

1 new issue: TypeError in formatMoney, 36 events, 14 users

One new crash, all on the revenue report right after it opened. I can fix it now.

>What broke since the last deploy?

What running it takes

The server, the services and the upgrades

Self-hosted SentryVinktar
A serverAt least 4 CPU cores, 16 GB of RAM with 16 GB of swap (32 GB recommended) and 20 GB of free diskNothing to run
The stackDocker Compose running Postgres, Redis, Kafka, ClickHouse, Snuba, Relay, Symbolicator and moreOne DSN
UpgradesA release on the 15th of every month. An install that falls behind steps through hard stopsOurs to run
HelpNo guarantees or dedicated support. The community Discord answers most questionsEmail the people who built it

Sentry’s figures from its self-hosted documentation, develop.sentry.dev/self-hosted, read 20 October 2026.

Vinktar’s price

One flat price a month

Errors and product events have their own budgets. Over the plan, nothing is charged: you get an email, and ingest pauses at twice the plan until the month turns or you upgrade.

Free

$0a month

Errors
50,000
Events
1,000,000
History
30 days

Starter

$29a month

Errors
150,000
Events
3,000,000
History
1 year

Pro

$99a month

Errors
500,000
Events
5,000,000
History
1 year

Seats and projects are unlimited on every plan. See pricing or price your month.

Switching

Move an app off self-hosted Sentry

  1. 1

    Create a project

    Sign up free, no card. The project’s Connect page shows its DSN.
  2. 2

    Change the DSN

    Replace your install’s address with Vinktar’s. Nothing else in your code changes.
    # was: SENTRY_DSN=https://abc123@sentry.harrowby.io/3
    SENTRY_DSN=https://vnk_pk_YOUR_KEY@in.vinktar.com/YOUR_PROJECT_ID
  3. 3

    Deploy and send a test error

    The error shows on the project’s Errors page within a few seconds, with its release and environment.
  4. 4

    Upload source maps with the CLI

    Source maps do not travel over the DSN. Upload them with @vinktarhq/cli under the release your SDK reports.
    npx @vinktarhq/cli sourcemaps upload ./dist --release web@2.36.0
  5. 5

    Turn the stack off when you are ready

    Keep the old install read-only for its history. Pointing the DSN back undoes the move.

Questions

What people ask first

Do I have to change my code?
No. Change the DSN and deploy. Errors and captured messages move. Transactions, sessions, replays and profiles are accepted and dropped.
Can I run Vinktar on my own servers?
No. Vinktar is hosted only, in Helsinki, Finland. If your data has to stay on your machines, self-hosted Sentry is the better fit.
What does it cost?
The free plan covers 50,000 errors a month with no card. Paid plans are one flat price a month, and you never get an overage invoice.
Which Sentry SDKs work?
We tested the Sentry SDKs for JavaScript, Node.js, Next.js, Python, Laravel and Symfony, and the switch guide lists the versions.

Turn the stack off. Keep your SDK.

Point the DSN at Vinktar and your errors keep arriving, with nothing left to upgrade.