惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MongoDB | Blog
MongoDB | Blog
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
月光博客
月光博客
爱范儿
爱范儿
D
Docker
U
Unit 42
P
Proofpoint News Feed
I
InfoQ
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LangChain Blog
V
Visual Studio Blog
IT之家
IT之家
Vercel News
Vercel News
G
Google Developers Blog
M
MIT News - Artificial intelligence
美团技术团队
The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog

Show HN

Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code.
annotate.js — turn any website into a review board
aagosh · 2026-06-22 · via Show HN

Turn any website into a collaborative review board.

One <script> tag turns your live page into a review surface. Highlight, draw, pin and comment — anchored to the real content, saved in the browser, shared as a single JSON file.

>_ <script src="https://cdn.jsdelivr.net/npm/@reviewjs/annotate/annotate.js" defer></script>

Add it to your site Star on GitHub

This page is live — select a sentence, press R to draw, P to pin, A for comments.

GO-TO-MARKET

Q3 launch plan

We open with a two-week teaser, then give early access to our waitlist of 12,000 subscribers before the public announcement.

Paid social runs alongside, with the hero video as the centerpiece across every channel.

JD

Jane Doe

2m ago · highlight

#2

Can we pull the waitlist email a week earlier? Momentum matters.

Drops into anything that renders HTML

ReReact NxNext.js VuVue SvSvelte WPWordPress WfWebflow ShShopify

01 — The tools

Feedback that points at the real thing

Screenshots go stale and chat threads lose context. Six tools keep every note attached to the exact pixel, paragraph or region it’s about — each carrying its own threaded comment.

02 — Why reviewjs

The right amount of tool

No backend to stand up. Nothing to get past security review. It lives in the browser, exports JSON, and gets out of the way.

100%

Local · nothing leaves

One script tag

No build step, no framework, no signup. Paste a line, reload, review.

Works everywhere

Plain HTML, React, Vue, Svelte, WordPress, Webflow, Shopify, static sites.

Local-first & private

Every comment is stored on the reviewer’s device. Nothing is sent anywhere.

Portable

Reviewers export feedback as JSON and send it; you import it with one click.

Polished UI

Floating toolbar, Figma-style comments panel, auto light/dark, full shortcuts.

Tiny & dependency-free

~40 KB of vanilla JavaScript, zero dependencies, every evergreen browser.

Smart re-anchoring

Notes that survive your edits

Each text annotation stores the exact quote plus a short prefix and suffix. On load it re-finds that text, so highlights stay put even after you rewrite copy or the layout reflows. Delete the text entirely and the comment is kept, gracefully marked “orphaned.”

v1 the quick brown fox jumps

↓ you edit the paragraph

v2 a very quick brown fox leaps

✓ comment re-anchored automatically

03 — Sharing

Your feedback never leaves the page

There’s no server and no database — every comment is saved to localStorage on the reviewer’s own device. Sharing is one explicit, privacy-friendly round-trip.

REVIEWER’S BROWSER

Highlight, draw, pin and comment. Notes are saved locally, instantly.

YOUR BROWSER

Click Import, pick the file — every note reappears anchored in place.

04 — How it compares

The whole category is rented. This one you own.

Every major visual-feedback tool is paid SaaS that asks your reviewers to log in, install an extension, and trust a vendor to host your feedback. annotate.js is the local-first, open-source alternative.

Competitor pricing and capabilities are approximate, based on publicly listed 2026 plans, and change often. The honest trade-off: SaaS tools add cloud sync, real-time multiplayer and built-in Jira/Asana sync that annotate.js leaves to your own workflow. annotate.js is for teams who’d rather own a tiny, private layer than rent a heavy one.

05 — Who it’s for

One layer, many reviews

Anywhere people need to point at a page and say “this, right here.”

Design

Design QA

Box misalignments and circle off-brand color on the staging build before a release ships.

Agencies

Client feedback

Let clients mark up the staging site directly — no Loom, no spreadsheet of bugs, no logins to chase.

Content

Copy editing

Editors highlight sentences and leave revisions in context, on the live article, not in a separate doc.

Docs

Docs review

Readers flag confusing steps right on the published page, where the confusion actually happens.

QA

Bug triage

Pin the exact element, attach a note, and export the batch straight to your tracker.

Teaching

Critique & grading

Annotate student work and portfolios with threaded, resolvable comments — private to each machine.

06 — Anywhere

One rule everywhere: load it once, after render

It’s a plain browser script, so the recipe is the same for every stack. Copy, paste, ship.

…and more: Angular Astro Squarespace Static sites Plain HTML Anything with a browser

Make it yours

Configured with plain data-attributes

No config files, no init code. Set a brand color, a project namespace, a default theme and a reviewer briefing — all on the script tag itself.

  • data-accent — match your brand in one hex code.
  • data-theme — light, dark, or auto (it sniffs your page background).
  • data-project — keep separate sites’ comments cleanly apart.
  • data-note — brief reviewers on exactly what to look at.
<!-- one tag, fully configured -->
<script
  src="https://cdn.jsdelivr.net/npm/
       @reviewjs/annotate/annotate.js"
  data-project="marketing-site"
  data-accent="#6d28d9"
  data-theme="auto"
  data-position="bottom-right"
  data-note="Focus on the hero copy
       & pricing — flag anything off-brand."
  defer
></script>

Questions

Good things to know

Where are comments stored?

In the reviewer’s own browser via localStorage, namespaced by project and page. Nothing is ever sent to a server. To share, you export a JSON file and your teammate imports it — every note reappears anchored in place.

Does it work with my framework?

Yes — it’s a plain browser script. There are copy-paste recipes for React, Next.js, Vue, Svelte, WordPress, Webflow, Shopify and plain HTML in the README. The rule is the same everywhere: load it once, after the page renders.

What happens if the underlying text changes?

Each text annotation stores the exact quote plus a short prefix and suffix. On load it re-finds that text, so notes survive copy edits and layout reflows. If the text is deleted entirely, the comment is kept but shown as “orphaned” rather than silently lost.

Can I show it only on staging, or only to editors?

Yes. Load the script conditionally — e.g. only on a staging domain, or only for logged-in editors. Since it’s one tag, you control exactly when and where it appears.

What does it cost?

Nothing. annotate.js is open source under the MIT license, free for personal and commercial use. No seats, no projects limit, no trial clock.

Which browsers are supported?

Every modern evergreen browser — Chrome, Edge, Firefox and Safari. It uses standard DOM APIs only, with no polyfills, and gracefully no-ops where localStorage is unavailable (private mode, sandboxed iframes).

07 — Get started

Put a review layer on your site today

Copy one script tag, reload, and start marking up the live page. No build step, no framework, no signup.

>_ <script src="https://cdn.jsdelivr.net/npm/@reviewjs/annotate/annotate.js" defer></script>

Ready in 30 seconds · ~40 KB · every evergreen browser · no account required