Presence API icon

Presence API

Presence API is a WordPress plugin with the following stats:

  • #18,612 Global Rank

PF Score (About PF Scores)

PF Score is not a quality guarantee. It is a ranking based on available public signals.

Bronze46.0
Platinum
Gold
Silver
Bronze
Low

Score Breakdown

0
Popularity 40% No install data
60
Reputation 35% No ratings yet
100
Freshness 25% Updated 4 days ago

No vulnerability history

Download Trends

Loading download data…

Vulnerabilities

No known vulnerabilities

This plugin has no records in the Wordfence Intelligence vulnerability database.

About Presence API

System-wide presence and awareness for WordPress.

Presence API gives WordPress a system-wide awareness layer. It tracks which users are logged in, which admin screen they are on, and which posts they are editing.

Data flows through the Heartbeat API and is stored in a dedicated wp_presence table with a 60-second TTL. No writes to wp_postmeta means no post-cache invalidation on every heartbeat.

Features

  • Who’s Online dashboard widget with idle detection
  • Active Posts dashboard widget grouped by post
  • Admin bar indicator showing other users on the same page
  • Editors column in the post list
  • Online filter in the Users list

Try it

Test in WordPress Playground without installing anything.

Watch the demo on YouTube

For Developers

PHP functions, REST endpoints, WP-CLI commands, filters, and room conventions are documented in the GitHub repository.

Background

An experimental feature plugin sponsored by the WordPress Core team, exploring what system-wide presence could look like for a future WordPress release. Follow development on make.wordpress.org/core with the tag #presence-api.

Ratings & Reviews

Recent Reviews

Loading reviews…

View all reviews on WordPress.org (opens in a new tab)

Changelog

0.1.16

  • Store presence data as longtext and compare schema version as an integer.

0.1.15

  • Replace 404ing Playground badge with the one used in PR previews.
  • Stop props bot echoing raw commit author emails in unlinked accounts.

0.1.14

  • Add display_name and avatar_url to presence response.
  • Add missing alt text to Who’s Online widget avatar.
  • Correct heartbeat function name in render test.
  • Filter presence read paths by per-post capability.
  • Restore wp_set_presence, fix assertion quote handling.
  • Use heartbeat path in render test for reliable coverage.
  • Use wp_presence_admin_room() after ROOM constant removed.
  • Write presence via admin handler in render test.

0.1.13

  • Move inline heartbeat JS to a standalone enqueued script.
  • Replace GROUP_CONCAT session mutations with PHP aggregation.

0.1.12

  • Add action links to the plugin list table.
  • Add blueprints for plugin page preview button.

0.1.11

  • Enforce per-room authorization checks for presence rooms.

0.1.10

  • Credit every contributor in the release props comment.
  • Move the admin/online write out of the Who’s Online widget (b7b500b), closes #141.
  • Render release props in a code block like props-bot.

0.1.9

  • Aggregate props from merged PRs onto release PR.
  • Default presence widgets to top of dashboard on fresh install.
  • Remove top-level permissions block that broke release-please startup.
  • Use inline script to load aggregate-props from workspace.

0.1.8

  • Add AI Tools disclosure to automated contributor PR body.
  • Add concurrency group, use default_branch instead of hardcoded main.
  • Robot PR body for first contributions, suppress props-bot on contributor PRs.
  • Suppress props-bot on release-please PRs.
  • Use user.type for bot detection, wrap fetch in full try/catch.
  • Remove AI disclosure from automated PR body.

0.1.7

  • Add validate_callback validation check to REST screen_key.
  • Use correct REST route in PHPUnit tests.

0.1.6

  • Dispatch deploy workflow instead of calling as reusable to avoid startup failure.
  • Flatten deploy workflow to remove reusable nesting causing startup failure.
  • Use 10up action ASSETS_DIR instead of separate assets workflow.
  • Use correct heading format in Unlinked Accounts regex.

0.1.5

  • Check entry ownership before enforcing per-user presence limit (5698d94), closes #88.
  • Exclude expired entries from ownership check to keep cap exact.
  • Pass VERSION env var to deploy action so SVN tag matches git tag.
  • Preserve version headings in sync script and correct wp_options claim.

0.1.4

  • Maintenance release.

0.1.3

  • Add 40-user Playground blueprint.
  • Address stale-screen review feedback.
  • Address WordPress.org plugin review feedback.

0.1.2

  • Add WordPress Playground blueprint for one-click testing.
  • Remove demo CLI command from production builds.
  • Split CI into separate PHPCS, PHPUnit, and Multisite workflows.
  • Exclude vendor directory from release zip.
  • Add readme.txt for WordPress.org directory submission.
  • Add WordPress.org repository compliance files (CONTRIBUTING, CODEOWNERS, CODE_OF_CONDUCT).
  • Move community health files to .github/.
  • Replace deprecated get_page_by_title() with WP_Query.
  • Add ABSPATH guards to db-viewer.php and demo-seeder.php.

0.1.1

  • Fix Plugin Check errors for directory submission.

0.1.0

  • Dedicated wp_presence table with UNIQUE KEY (room, client_id) for atomic upserts via INSERT ... ON DUPLICATE KEY UPDATE.
  • 60-second TTL with batched cron cleanup.
  • Public API: wp_get_presence, wp_set_presence, wp_remove_presence, wp_remove_user_presence, wp_can_access_presence_room, wp_presence_post_room.
  • REST endpoints: GET/POST/DELETE /wp-presence/v1/presence, GET /wp-presence/v1/presence/rooms with SQL pagination and Cache-Control: no-store.
  • Heartbeat integration for admin and editor presence pings.
  • Post-lock bridge: translates wp-refresh-post-lock into presence entries.
  • Login/logout lifecycle hooks gated on edit_posts.
  • Dashboard widgets: Who’s Online (with idle detection, overflow threshold, avatar stacks) and Active Posts (grouped by post with editor counts).
  • Admin bar indicator: avatar stack for same-page users, dropdown grouped by “On this page” / “Elsewhere”, alphabetically sorted.
  • Post list “Editors” column with avatar stacks.
  • Users list “Online” filter tab.
  • WP-CLI: set, list, summary, cleanup.
  • Debugger widget (WP_DEBUG only): heartbeat monitor with live table viewer.
  • wp_presence_default_ttl filter and WP_PRESENCE_DEFAULT_TTL constant.
  • Multisite-aware uninstall.php.
  • Full i18n with .pot file.
  • WCAG AA accessibility: ARIA labels, aria-live, keyboard navigation.
  • 59 PHPUnit tests, 118 assertions.
  • Playwright e2e tests with screenshot artifacts.

Alternatives to Presence API

Other WordPress plugins serving a similar purpose, ranked by relevance and PF Score.

Silver66.4
Dynamic Front-End Heartbeat Control icon

Dynamic Front-End Heartbeat Control

An enhanced solution to optimize the performance of your WordPress website and automatically achieve the best Heartbeat API values.

★ 4.8/5·1K+ installs·Updated 7 Mar 2026
Silver63.8

Liveblog

Empowers website owners to provide rich and engaging live event coverage to a large, distributed audience.

★ 2.9/5·1K+ installs·Updated 3 Jun 2026
Silver60.2
Heartbeat Control icon

Heartbeat Control

Allows you to easily manage the frequency of the WordPress heartbeat API.

★ 4.2/5·80K+ installs·Updated 31 Aug 2023
Silver60.0
Real Time Validation For Gravity Forms icon

Real Time Validation For Gravity Forms

This plugin adds an awesome feature that provides instant feedback and guidance in each field, helps prevent errors.

★ 5/5·500+ installs·Updated 1 Feb 2026
Silver57.0
Weblix Analytics icon

Weblix Analytics

Real-time, lightweight and privacy-first analytics for WordPress. Powerful insights without slowing down your site.

70+ installs·Updated 30 Jun 2026
Silver55.8
Woopra Analytics Plugin icon

Woopra Analytics Plugin

Track who is on your website, what pages they're browsing, actions they're taking, articles they're reading and more.

★ 3.7/5·800+ installs·Updated 23 Jul 2025
Silver55.7
NexraOne Agent icon

NexraOne Agent

Official connector plugin for NexraOne. Connects your WordPress site to the NexraOne monitoring service (Software as a Service).

30+ installs·Updated 10 Aug 2026
Silver55.6
Heartbeat Controller icon

Heartbeat Controller

Control WordPress Heartbeat API to reduce load. Allow, disable, or set custom frequency for Dashboard, Post Editor, and Frontend.

1K+ installs·Updated 28 Jul 2025
Bronze54.2
Docs icon

Docs

Create and share documents with WordPress!

★ 5/5·50+ installs·Updated 1 Apr 2026
Bronze47.6
TrimPress icon

TrimPress

TrimPress optimizes and trims some of the cruft from WordPress for a lighter, more secure theme!

★ 5/5·100+ installs·Updated 8 May 2025
Bronze47.4
Arena.IM – Live Blogging for real-time events icon

Arena.IM – Live Blogging for real-time events

Arena.im is a powerful FREE live blogging platform for real-time events. Cover sports, news, tech, etc. SEO optimized and mobile…

★ 4/5·100+ installs·Updated 11 Mar 2025