Open sourceFree & Open Source

Client feedback,
pinned to the pixel.

Stop chasing feedback across Slack, email, and Notion. Let your clients annotate your site directly — self-hosted, DOM-anchored, zero SaaS fees.

npm i @siteping/widget
Try the Demo →

Free forever · MIT Licensed · Self-hosted · 3 min setup

Lock iconmon-client.fr
Annotate
Bug

The CTA button is too small on mobile

Sarah M.

Cursor

Replaces Marker.io ($39/mo) · BugHerd ($42/mo) · Userback ($79/mo)

TypeScript238 tests< 20 kB gzippedShadow DOM

See the blue button in the corner? That's SitePing running on this page. Try it.

Built different

Everything you need, nothing you don't.

Self-Hosted

Your database, your data. No vendor lock-in, no monthly fees. Deploy anywhere you run Node.js.

$prisma db push

Datasource "db": SQLite

Schema synced — 3 models pushed

Your data stays on your server

$_

DOM-Anchored

Annotations survive layout changes. Multi-selector anchoring with CSS, XPath, and text fallback.

<button>Submit</button>
Anchored

CSS + XPath + text fallback

npm Install & Go

Three lines of code. Works with Next.js, any framework, or vanilla JavaScript.

npm i @siteping/widget

Open Source

Full transparency, full control. Contribute, fork, or customize.

MIT Licensed

CLI Scaffold

Prisma schema and API route set up in seconds.

$ npx @siteping/cli init

Shadow DOM Isolated

Widget CSS never leaks into your site. Your site CSS never breaks the widget.

Your site CSS
Widget CSS

Works with your stack

Next.jsReactVueSvelteAstroNuxtRemixExpressHonoJavaScriptNext.jsReactVueSvelteAstroNuxtRemixExpressHonoJavaScriptNext.jsReactVueSvelteAstroNuxtRemixExpressHonoJavaScriptNext.jsReactVueSvelteAstroNuxtRemixExpressHonoJavaScript
JavaScriptHonoExpressRemixNuxtAstroSvelteVueReactNext.jsJavaScriptHonoExpressRemixNuxtAstroSvelteVueReactNext.jsJavaScriptHonoExpressRemixNuxtAstroSvelteVueReactNext.jsJavaScriptHonoExpressRemixNuxtAstroSvelteVueReactNext.js

From zero to client feedback in 3 commands

Install, scaffold, and ship. Your clients annotate directly on the live site.

1

Install

Terminal
$ npm install @siteping/widget @siteping/adapter-prisma

Add both packages to your project in one command.

2

Setup

Terminal
$ npx @siteping/cli init

 Prisma schema updated
 API route generated

Generates Prisma schema + API route automatically.

3

Annotate

app.ts
import { initSiteping } from '@siteping/widget'

initSiteping({
  endpoint: '/api/siteping',
  projectName: 'my-project',
})

Your clients can now draw on the site.

Result

Your clients see this

Lockmon-client.fr
Bug

The hero image is blurry on retina

Sarah M.

Annotate

No login. No account. Just a floating button and pixel-perfect annotations.

CheckNo account required·CheckNo API key·CheckNo monthly bill

SitePing vs. the alternatives

Why pay $39-79/mo for features you can self-host for free?

SitePingRecommended
Marker.ioBugHerdUserback
Self-hosted
npm packageSDK only
Open sourceMIT
PricingFree$39/mo$42/mo$79/mo
DOM-anchoredScreenshotPin onlyScreenshot
Survives layout changesPartial
CustomizableFull controlLimitedLimitedLimited

Frequently asked questions

What databases are supported?

Any database supported by Prisma — PostgreSQL, MySQL, SQLite, MongoDB, CockroachDB, and more. A Drizzle adapter is on the roadmap.

Does it work with frameworks other than Next.js?

The widget is framework-agnostic — it works with React, Vue, Svelte, Astro, or vanilla JavaScript. The CLI currently scaffolds Next.js API routes, but the adapter works with any server that handles standard Request/Response.

What happens when the page layout changes?

Annotations use multi-selector anchoring — CSS selectors, XPath, text snippets, and structural fingerprints. If one selector breaks, the system falls back to the next. Positions are stored as percentages relative to the anchor element, so they adapt to responsive layouts.

Is there a dashboard to view feedback?

A dashboard UI is on the roadmap. Currently, feedback is accessible via the widget panel and the API. You can query, filter, and manage feedback programmatically.

How big is the widget bundle?

The widget is under 20 kB gzipped. It loads asynchronously and never blocks your page rendering.

Is it GDPR compliant?

Fully. Since SitePing is self-hosted, all data stays on your infrastructure. No data is ever sent to third-party servers. You control storage, retention, and deletion.

Can I customize the widget appearance?

Yes — accent color, position (bottom-right or bottom-left), theme (light, dark, auto), and locale (English, French). Full event system for custom integrations.

Do I need to create an account?

No. SitePing is an npm package you install and configure. No account, no API key, no signup. It runs entirely on your infrastructure.

Ready to ditch screenshot emails?

Get started in minutes. Free forever.