Annotate anything
Freedback feedback targets are just URIs. Here it attaches stars, thumbs, comments and tags to real external resources that host no feedback UI of their own β and that this project does not control.
The point: the target site is never involved. Feedback lives on a Freedback server keyed by the target URI, and anyone pointing a widget at the same URI sees the same aggregate. The three resources below are real external URIs the project does not control β the feedback you see on them is real, shared feedback left by other visitors of this page. That is the whole point.
A law β GDPR (Regulation (EU) 2016/679)
http://data.europa.eu/eli/reg/2016/679/oj
The EU publishes the GDPR at a stable ELI (European Legislation Identifier) URI. There is no comment box on eur-lex.europa.eu β yet we can still rate how clear the regulation is and leave comments against that exact identifier. The legislation site is never contacted.
A Wikipedia article β βWeb annotationβ
https://en.wikipedia.org/wiki/Web_annotation
Wikipedia has its own talk pages, but nothing that lets an outside protocol attach typed ratings or tags. Freedback treats the article URL as a target and aggregates stars and folksonomy tags against it, independently of MediaWiki.
An arbitrary web page β W3C Web Annotation Data Model
https://www.w3.org/TR/annotation-model/
A W3C Recommendation is just a published page. With no feedback UI of its own, it can still collect a thumbs verdict and comments keyed to its URL β exactly the way Freedback would let you annotate any blog post or specification.
How this works
Each widget is a single custom element whose data-target is the
external URI verbatim β no rewriting, no proxy. For example, the
GDPR stars widget is literally:
<freedback-stars
data-target="http://data.europa.eu/eli/reg/2016/679/oj"
data-read="https://freedback-demo.fly.dev/annotations/"
data-publish="https://freedback-demo.fly.dev/annotations/"
data-sign
data-license="https://creativecommons.org/licenses/by/4.0/"></freedback-stars>
data-read and data-publish both point at the live
demo feedback server's /annotations/ endpoint (reads by target,
signed writes), and data-sign selects the portable, self-signed
P-256 identity. The target site appears nowhere in that configuration. Comment
and tag widgets use a #fragment on the same resource so their
counts never mix with the rating widget's.