Description
Re:Likes lets readers react to the exact words that stand out to them – not just to a post as a whole.
Readers can select a sentence, paragraph, or part of a comment and mark it with a Like or Dislike. Their reactions stay attached to the selected passage, so they can return later, add new reactions, remove part of an existing reaction, or clear their reactions.
Readers can also switch to an aggregate heatmap that reveals which parts of the content received the strongest response from the wider audience. This makes it possible to see where readers agreed, disagreed, or felt most engaged without interrupting the reading experience.
Re:Likes works with:
- Posts and pages.
- Public custom post types.
- Approved comments.
- Multiple selectable content areas on the same page.
- Logged-in WordPress users and anonymous readers.
- Personal reaction views and aggregate heatmaps.
Reactions are saved as precise text ranges rather than as post metadata. They remain anchored to their passages across common layout changes, including responsive wrapping, resizing, rotation, and font loading.
The plugin includes configurable colors, reaction controls, heatmap appearance, reader features, touch-control placement, content selectors, comment selectors, and theme integration options.
Storage
Re:Likes creates three tables using the site’s WordPress table prefix:
relikes_documentsstores selectable-instance revisions.relikes_subjectsstores one current snapshot identity per reader and document.relikes_runsstores normalized like/dislike offset ranges.
Reaction data is not stored in post meta and no external database is required. Tables and settings are retained on uninstall unless the deletion option is explicitly enabled first.
Identity and privacy
Logged-in identity is always derived by WordPress on the server; a browser-provided user ID is not trusted as authentication. Anonymous readers receive a signed random token. Anonymous identities are pseudonymous and are expired by a daily cleanup task.
IP addresses are used transiently to enforce coarse request limits and are not stored in reaction tables. Anonymous users can create a new identity by clearing browser storage, so rate limiting reduces abuse but cannot guarantee one vote per human.
Theme integration
Default selectors cover common classic and block themes. Custom markup can configure content and comment selectors. When more than one post-content element matches, give each one a stable key and add it to the Allowed instance keys setting, for example:
<section data-relikes-instance="chapter-one">...</section>
Re:Likes does not change post typography or layout. Its compact tool row is exposed through .relikes-wp-tools, .relikes-wp-switch, and .relikes-wp-clear for theme overrides. In theme-controlled mode, set --relikes-control-accent, --relikes-control-background, --relikes-control-border, --relikes-control-text, --relikes-control-active-text, --relikes-control-clear, and --relikes-control-radius on .relikes-wp-tools.
Development notes
The JavaScript core remains backend-agnostic. The WordPress adapter supplies its REST URL, routes, document ID, optional logged-in user ID, nonce header, and request behavior when calling Relikes.attach().
The first release uses lazy per-surface heatmap requests rather than a batch endpoint. This keeps the protocol small while avoiding requests for content far outside the viewport.
Source code
The operational Clean Selection and Re:Likes browser cores are minified with Terser. Their complete readable sources are included beside them as assets/js/cleanselection.js and assets/js/relikes.js. Project source and build tooling are published at https://github.com/reinventinglikes/relikes.
Screenshots


Installation
- Upload the
relikesdirectory to/wp-content/plugins/. - Activate Re:Likes.
- Open Settings > Re:Likes.
- Choose post types, surfaces, colors, reader features, and touch-control placement.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Re:Likes” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Re:Likes” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.2.9
- Added a configurable maximum of 100 heatmap intensity levels by default and grouped adjacent fragments that share a visual level.
- Cached exact WordPress heatmap aggregates while preserving accurate current-reader exclusion and anonymous expiry handling.
0.2.8
- Allowed 0.01 increments for fractional brush controls and 0.001 values for Fog fade speed.
0.2.7
- Synchronized the latest documented Clean Selection and Re:Likes v1.1 readable cores and regenerated their operational minified bundles.
- Avoided anonymous-session creation for public heatmap reads and added immediate public fallback after a stale anonymous token.
0.2.6
- Fixed session, reaction, and heatmap endpoint construction on WordPress installations that use query-based REST URLs.
- Added absolute localized route URLs plus a core fallback for
rest_routeAPI bases.
0.2.5
- Added complete author, project, source-repository, copyright, and license metadata.
- Loaded Terser-minified browser cores in production while retaining both readable core sources in the plugin package.
0.2.4
- Synchronized the bundled Clean Selection v1.1 core with durable multiselect resize restoration while retaining Re:Likes’ single-capture behavior.
0.2.3
- Kept the touch control visible only while configured selectable surfaces are onscreen.
- Stabilized reaction anchors across wrapping-space changes so nearby Like and Dislike overlays both survive resize and rotation.
0.2.2
- Prevented reaction overlays from widening mobile pages.
- Kept the touch selection bar visible and aligned to the changing mobile visual viewport.
- Added centered reaction-popup placement and removed theme focus borders from the reader switch.
0.2.1
- Rebuilt reaction and heatmap geometry after resize, rotation, font loading, and observed surface-size changes.
0.2.0
- Corrected selection and reaction-overlay sizing under WordPress theme canvas styles.
- Added complete brush, persistent-cloud, heatmap, cursor, and separate post/comment geometry controls.
- Made the reader control bar configurable through settings or theme CSS variables.
- Added block-theme comment content defaults, removed attachment targeting, and refreshed the settings screen.
- Gave Re:Likes explicit page-level priority over the standalone Clean Selection plugin.
0.1.1
- Synchronized the bundled v1.1 JavaScript cores and preserved theme cursor styles during passage selection.
0.1.0
- Initial development release.
