Annotator Tool

A lightweight client-feedback overlay powered by Supabase

A project by John-Erik JordanGitHub

What it does

Drop two script tags into any site's <head> and instantly add a password-protected annotation layer — floating feedback icon, pin-based comments, threaded replies, and admin resolve/archive controls — all synced in real-time via Supabase.

Quick Setup

1. Add the snippet to your client site's <head>

<script>
  window.AnnotatorConfig = {
    sitePassword:   "your-client-password",
    adminPassword:  "your-admin-password",
    projectId:      "my-project",
    supabaseUrl:    "https://xxxx.supabase.co",
    supabaseAnonKey:"your-anon-key"
  };
</script>
<script src="https://design-annotator.netlify.app/annotator.js" defer></script>

2. That's it

Visitors see a password screen. After entering the site password, a floating feedback icon appears in the bottom-right corner. Click it to enter Annotation Mode, click any element to pin a comment.

Config reference

KeyTypeDescription
sitePassword stringPassword shown to clients
adminPassword stringExtra password for admin features (resolve/archive)
projectId stringNamespace for all comments — one Supabase project can serve multiple sites
supabaseUrl stringYour Supabase project URL
supabaseAnonKeystringYour Supabase anon / publishable key

localStorage keys

KeyValue
annotator_auth_{projectId} "true" when site password has been entered
annotator_admin_{projectId}"true" when admin session is active
annotator_name Commenter's display name (persists across projects)

Supabase setup

The SQL to create the comments and replies tables, enable RLS, and set up real-time is in supabase/schema.sql. Run it once in the Supabase SQL editor for each new Supabase project.

Note: The schema is already applied to the test-site Supabase project. You only need to run the SQL for a brand-new Supabase project.

Features (v0.2)