MarkLayer

Product

MarkLayer featuresWhat's new in MarkLayerPricingSupport the projectAbout MarkLayerPrivacy

Guides

All guidesHow MarkLayer works, in plain EnglishWebsite feedback tools in 2026, twenty-one comparedHow to annotate a website, four waysHow to annotate a PDF for freeHow to annotate an image or screenshotThe best free website annotation tools in 2026, auditedCollecting website feedback without making anyone log inThe Markup.io price hike: what changed and what it costs nowMCP servers for bug reports and visual feedback, comparedGive your AI coding agent visual feedback from a live webpageSending MarkLayer annotations to Jira, Linear, Slack and moreOpen-source website annotation tools in 2026

Use cases

All use casesHow to get client feedback on a staging site without asking them to install anythingPoint an AI coding agent at a UI element on your local dev serverMarkLayer for Design ReviewMarkLayer for QA Bug ReportingMarkLayer for Client FeedbackMarkLayer for Remote TeamsMarkLayer for StudentsMarkLayer for EducatorsMarkLayer for ResearchersMarkLayer for Content CreatorsMarkLayer for MarketersMarkLayer for AgenciesMarkLayer for Freelance Web DesignersMarkLayer for Product Teams

Compare

All comparisonsMarkup.io review: MarkLayer is a free Markup.io alternativePastel vs MarkLayer: a free Pastel alternativeBugHerd vs MarkLayer: a free BugHerd alternativeAnnotateWeb vs MarkLayer: a free AnnotateWeb alternativeJam.dev vs MarkLayer: a free Jam.dev alternativeMarker.io vs MarkLayer: a free Marker.io alternativeUserback vs MarkLayer: a free Userback alternativeRuttl vs MarkLayer: a free Ruttl alternativeLoom vs MarkLayer: a free Loom alternativeHypothesis vs MarkLayer: a free Hypothesis alternativeUsersnap vs MarkLayer: a free Usersnap alternativestagewise vs MarkLayer: a free stagewise alternativeVolley vs MarkLayer: a free Volley alternativeSuperflow vs MarkLayer: a free Superflow alternativeFeedbucket vs MarkLayer: a free Feedbucket alternativeFigma vs MarkLayerHuddlekit vs MarkLayer: a free Huddlekit alternativeAtarim vs MarkLayer: a free Atarim alternativezipBoard vs MarkLayer: a free zipBoard alternativeWebvizio vs MarkLayer: a free Webvizio alternativeBugSmash vs MarkLayer: a free BugSmash alternativeYbug vs MarkLayer: a free Ybug alternativeSureFeedback vs MarkLayer: a free SureFeedback alternativeSimpleCommenter vs MarkLayer: a free SimpleCommenter alternativePageProofer vs MarkLayer: a free PageProofer alternative

Alternatives

All alternativesFree Markup.io alternative: 5 tools comparedFree Pastel alternativesFree AnnotateWeb alternativesFree Jam.dev alternativesThe best free Marker.io alternative, plus 3 more picksFree Userback alternativesFree Hypothesis alternativesBugHerd free alternative: 4 picks, 3 that cost nothingFree Ruttl alternativesFree Usersnap alternativesFree stagewise alternativesFree Loom alternativesThe closest free Huddlekit alternative, plus 3 more picksThe closest free SureFeedback alternative, plus 3 more picksThe closest free Atarim alternative, plus 3 more picksThe closest free Feedbucket alternative, plus 3 more picksThe closest free PageProofer alternative, plus 3 more picksThe closest free Superflow alternative, plus 3 more picksThe closest free Ybug alternative, plus 3 more picksThe closest free SimpleCommenter alternative, plus 3 more picks

Anyone with the link, view only

Version 0.8.0 · Released

A link owner can now flip a share link to view only and set how long it lives, from the dashboard row or a new share popover in the viewer — the room enforces both everywhere a write can land, not just in the toolbar.
On this page

A share link used to be one setting: whoever had the URL could edit the room. Loosening that meant deciding what "read only" actually covers, because a socket is not the only way to write to a room — the REST endpoint is what realtime sync falls back to when the socket drops, and it's what an anonymous API caller or an MCP agent hits directly. Both paths now ask the same question, canEditLink(), so a toolbar that stayed hidden was never the only thing standing between a viewer and a write.

The owner's expiry needed its own column rather than reusing the room's existing one, because an anonymous visitor's re-save overwrites that value on every load — an owner's choice has to survive being visited by someone who never sees the settings panel at all.

New

Improved

Fixed

More releases

Try MarkLayer

Paste any URL at marklayer.app and annotate the live page in your browser. No install, no account, no sign-up. Recipients of your share links don't need to install anything either.

Annotate a page

Or add the free Chrome extension for sites the web app cannot embed, such as pages behind a login.