

A rich, accessible tooltip on the front end — title, description, and a call-to-action button, with an animated marker.
📌 PinSpot turns a flat image into something people explore. Drop pins anywhere on a photo, map, diagram, or product shot — each pin opens a polished, accessible tooltip with a title, description, image or video, and a call-to-action button.
It is a single native block built the modern WordPress way — on the Interactivity API, the same technology that powers WordPress core blocks. No jQuery, no shortcodes, no page builder required. The frontend script is under 4 KB and only loads on pages that actually use a hotspot, so it never slows the rest of your site down.
Every pin can carry a title, a description (with line breaks and basic bold, italic, and links), and one piece of media: an image from your library, a self-hosted video, or a YouTube / Vimeo embed. Add an optional call-to-action button that links anywhere. Choose light or dark tooltips, decide where they open (top, bottom, left, right, or automatic), and pick a marker style — numbered, dot, plus, info, question, any emoji, or your own custom image — in any size and color, with an optional pulse or bounce animation.
Turn on tour mode to add Previous and Next controls that walk visitors through every hotspot in order — perfect for a step-by-step story, a product walkthrough, or a self-running kiosk display. Optionally let the tour advance on its own at an interval you choose; visitors always get a pause button, and autoplay stays off automatically for anyone who prefers reduced motion. Each stop is announced to screen readers as it opens. Style the bar to match your design: place it below the image or overlaid on it, show or hide the position counter, and set the button color, size, and shape.
Assign each hotspot to a named group — “Exits”, “Restrooms”, “Food”, whatever fits — and PinSpot adds a row of filter chips above the image. Visitors tap a chip to show or hide that group, so a busy map or floor plan stays readable and people can focus on just what they need. An “All” chip brings everything back. The chips are real toggle buttons with proper pressed states for keyboard and screen-reader users, each item in the optional list is tagged with its group, and you can set the chip color to match your brand.
PinSpot is designed to work for everyone, not just mouse users. Accessibility is built into how it works:
aria-expanded and aria-controls state plus a descriptive label, so assistive technology understands what every pin does and whether its tooltip is currently open.New to hotspots? PinSpot ships three ready-made layouts you can insert and edit in seconds. In the editor, open the block inserter (the + button in the top-left), switch to the Patterns tab, and choose the PinSpot category. You will find:
Each pattern drops in with a demo illustration and sample pins already in place. Just replace the demo image with your own and edit the text — it is the fastest way to see everything PinSpot can do and to learn how the pieces fit together.
PinSpot deliberately has no separate admin dashboard. You configure everything right where you see it, using the standard WordPress block controls:
If you have ever placed a WordPress block, you already know how to use PinSpot.
PinSpot makes no external requests on its own. YouTube and Vimeo tooltips show a lightweight preview image and only load the real player after the visitor clicks play — nothing is sent to Google or Vimeo until then. Your hotspot data is stored inside the block in your post content: no custom database tables, no tracking, no phoning home, and a completely clean uninstall.
PinSpot embeds no external service by default. Only when you choose YouTube or Vimeo as a tooltip’s media type, the following apply on the public page:
YouTube (Google LLC) — video embeds and thumbnails
Purpose: show the video preview thumbnail and, after the visitor clicks play, the embedded player.
Data sent: the visitor’s IP address and standard browser headers are sent to i.ytimg.com when the tooltip preview image loads, and to www.youtube-nocookie.com (the privacy-enhanced embed domain) only after the visitor clicks play.
Sent when: only on pages where you added a YouTube tooltip; the player itself loads only on click.
Service: https://www.youtube.com
Terms of Service: https://www.youtube.com/t/terms
Privacy Policy: https://policies.google.com/privacy
Vimeo (Vimeo.com, Inc.) — video embeds
Purpose: show the embedded Vimeo player after the visitor clicks play.
Data sent: the visitor’s IP address and standard browser headers are sent to player.vimeo.com only after the visitor clicks play.
Sent when: only on pages where you added a Vimeo tooltip, and only on click.
Service: https://vimeo.com
Terms of Service: https://vimeo.com/terms
Privacy Policy: https://vimeo.com/privacy