Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

268 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SitePing

Client feedback, pinned to the pixel.

A lightweight feedback widget that lets your clients annotate websites during development. Draw rectangles, leave comments, track bugs — directly on the live site.

Demo

Website Live Demo Docs npm version npm downloads license build CodeQL coverage OpenSSF Scorecard TypeScript Bundle Size

Documentation · Quickstart · Live Demo · Contributing

See SitePing in action → — Draw annotations, leave feedback, track bugs directly on the live site.


Why SitePing?

Stop chasing client feedback across Slack threads, email chains, and Notion docs. SitePing gives your clients a contextual way to leave feedback — anchored to the exact element they're looking at.

SitePing Marker.io BugHerd
Self-hosted Yes — your DB, your data No (SaaS) No (SaaS)
npm package npm install and go npm + script tag Script tag only
Framework-native First-class Next.js support Framework-agnostic Framework-agnostic
Pricing Free & open source From $39/mo From $42/mo
DOM-anchored annotations Multi-selector (CSS + XPath + text) Screenshot-based Pin-based
Annotations survive layout changes Yes (percentage-relative rects) No (pixel coordinates) Partially

Features

  • Rectangle annotations — clients draw directly on the page, with category + message
  • DOM-anchored persistence — annotations tie to elements, not pixels; they survive layout changes
  • Instant right-click comments — opt-in, and it never hijacks keyboard or modifier-key context menus
  • Screenshots + diagnostics — opt-in JPEG of the annotated area (with privacy masking) and console/network capture
  • Triage inbox<SitepingInbox /> (@siteping/dashboard): Linear-style, keyboard-first, light/dark, 7 locales
  • Reliability built in — retry with backoff plus a localStorage queue; a flaky network never loses a comment
  • Shadow DOM isolation — widget CSS never leaks into your site, and your site CSS never breaks the widget
  • Dev-only by default — auto-hides in production builds unless forceShow: true
  • Lightweight — ~30 KB gzipped (ESM); the panel, screenshot engine, and non-English locales load on demand

Quickstart

npm i @siteping/widget @siteping/adapter-prisma
npx @siteping/cli init   # adds the Prisma models + generates the API route
npx prisma db push
"use client";
import { useSiteping } from "@siteping/widget/react";

export function Feedback() {
  useSiteping({ endpoint: "/api/siteping", projectName: "my-app" });
  return null;
}

Your clients can now draw rectangles on the site and leave feedback. Triage it with one component:

import { SitepingInbox } from "@siteping/dashboard";

<SitepingInbox projects="my-app" endpoint="/api/siteping" theme="auto" />

No server? The widget also runs fully client-side with store: new LocalStorageStore() — the three-minute quickstart covers both paths, prerequisites included.

Documentation

The full documentation lives at siteping.dev/docs (English and French) — every option, default, and behavior on these pages is verified against the source code.

Package Docs
@siteping/widget The feedback widget (framework-agnostic + React hook) Widget · Configuration · Screenshots
@siteping/dashboard Triage inbox component + headless hook Dashboard · Theming
@siteping/adapter-prisma Production server adapter (auth, CORS, webhooks) Prisma adapter
@siteping/adapter-memory In-memory store (tests, demos) Memory adapter
@siteping/adapter-localstorage Client-side store (zero server) localStorage adapter
@siteping/cli init / sync / status / doctor CLI

Contributing

Bug reports, locale translations, docs fixes, features — everything counts, and locale additions are the friendliest first PR. Start with CONTRIBUTING.md.

Maintaining a fork with extra features (semantic anchors, screenshot storage backends, positioning fixes have all come from forks)? An upstream PR — or even an issue describing what you built — lets everyone benefit.

Contributors

Every line of code, locale, doc fix, and bug report makes SitePing better. Huge thanks to everyone who has shown up — first-time contributors especially.

This project follows the all-contributors specification — every kind of contribution counts (emoji key).

Olsen Matheo
Olsen Matheo

💻 🚧 📖 🎨 🚇 🤔 👀 ⚠️ 📆
Alce
Alce

💻 🌍 ⚠️
Jörn Bungartz
Jörn Bungartz

🐛 💻
Andi Keßler
Andi Keßler

💻 ⚠️ 📖 🤔 🐛
Valerii
Valerii

💻
JinHyuk Sung
JinHyuk Sung

💻 ⚠️ 🐛
Marian Steinbach
Marian Steinbach

🐛 🤔
LIghtJUNction
LIghtJUNction

💻 ⚠️
Rehuz
Rehuz

💻 ⚠️ 📖
Snorre Lothar von Gohren Edwin
Snorre Lothar von Gohren Edwin

🤔

Want to be in this list? Code, docs, translations, bug reports, design ideas — all count. See CONTRIBUTING.md to get started. The @all-contributors bot can add you automatically when a maintainer comments @all-contributors please add @your-username for code, doc.

Activity

SitePing activity

Activity graph powered by Repobeats.


Star History

Star History Chart


License

MIT


Built by @neosianexus

About

Drop-in visual feedback widget for websites. Pin comments directly on page elements — Shadow DOM isolated, framework-agnostic.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

49 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages