{"id":285720,"date":"2026-08-21T01:12:17","date_gmt":"2026-08-21T01:12:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/devpulse\/"},"modified":"2026-08-21T01:11:53","modified_gmt":"2026-08-21T01:11:53","slug":"devpulse","status":"publish","type":"plugin","link":"https:\/\/kn.wordpress.org\/plugins\/devpulse\/","author":23459184,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.2","stable_tag":"2.0.2","tested":"6.9.7","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"DevPulse","header_author":"SekolahCode","header_description":"Real-time error tracking for WordPress \u2014 self-hosted.","assets_banners_color":"","last_updated":"2026-08-21 01:11:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/SekolahCode\/devpulse-wp","header_author_uri":"https:\/\/github.com\/SekolahCode","rating":0,"author_block_rating":0,"active_installs":0,"downloads":59,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.2":{"tag":"2.0.2","author":"sekolahcode","date":"2026-08-21 01:11:53"}},"upgrade_notice":{"2.0.1":"<p>Security fix: only trust X-Forwarded-For from a configured trusted proxy. Recommended for all sites not running behind a reverse proxy\/load balancer.<\/p>","1.2.0":"<p>Adds real-user Core Web Vitals tracking. A lightweight JS bundle (~4 KB) is now injected on public pages by default. Disable it in Settings \u2192 DevPulse if not needed.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page \u2014 enter your DSN and environment name."}},"plugin_section":[],"plugin_tags":[2679,29196,1522,5603,247],"plugin_category":[54,59],"plugin_contributors":[276742],"plugin_business_model":[],"class_list":["post-285720","plugin","type-plugin","status-publish","hentry","plugin_tags-debugging","plugin_tags-error-tracking","plugin_tags-logging","plugin_tags-monitoring","plugin_tags-performance","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-sekolahcode","plugin_committers-sekolahcode"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/devpulse.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>DevPulse is a self-hosted error tracking and performance monitoring plugin for WordPress, similar to Sentry but free and running on your own server.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Captures PHP errors, warnings, notices, and fatal errors<\/li>\n<li>Captures unhandled exceptions automatically<\/li>\n<li>Frontend Core Web Vitals (LCP, INP, CLS, TTFB, page load) \u2014 real-user Lighthouse metrics<\/li>\n<li>Lightweight \u2014 the backend handler has zero JS footprint; the vitals bundle is ~4 KB deferred<\/li>\n<li>Configurable via the WordPress admin or <code>wp-config.php<\/code> constants<\/li>\n<li>Works with any self-hosted DevPulse server<\/li>\n<\/ul>\n\n<p><strong>Privacy:<\/strong> All error data is sent to your own server. Nothing leaves your infrastructure.<\/p>\n\n<h3>Configuration<\/h3>\n\n<p>You can configure the plugin via <strong>Settings \u2192 DevPulse<\/strong> in the WordPress admin, or by defining constants in <code>wp-config.php<\/code>:<\/p>\n\n<pre><code>define( 'DEVPULSE_DSN',     'http:\/\/your-server:8000\/api\/ingest\/YOUR_API_KEY' );\ndefine( 'DEVPULSE_ENV',     'production' );\ndefine( 'DEVPULSE_ENABLED', true );\n<\/code><\/pre>\n\n<p>Constants take precedence over admin settings.<\/p>\n\n<p><strong>Running the DevPulse server:<\/strong><\/p>\n\n<pre><code>docker compose up -d\n<\/code><\/pre>\n\n<p>See the <a href=\"https:\/\/github.com\/SekolahCode\/devpulse\">DevPulse GitHub repository<\/a> for full server setup instructions.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>devpulse<\/code> folder to <code>wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through <strong>Plugins \u2192 Installed Plugins<\/strong> in the WordPress admin<\/li>\n<li>Go to <strong>Settings \u2192 DevPulse<\/strong> and enter your server DSN<\/li>\n<\/ol>\n\n<p>Alternatively, you can configure the plugin using constants in <code>wp-config.php<\/code> (see Configuration below).<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20devpulse%20account%3F\"><h3>Do I need a DevPulse account?<\/h3><\/dt>\n<dd><p>No. DevPulse is entirely self-hosted. You run the server yourself using Docker.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20wordpress%20multisite%3F\"><h3>Is it compatible with WordPress Multisite?<\/h3><\/dt>\n<dd><p>Single-site and network-activated usage is supported. Each site should have its own API key (project) on the DevPulse server.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20the%20devpulse%20server%20is%20unavailable%3F\"><h3>What happens when the DevPulse server is unavailable?<\/h3><\/dt>\n<dd><p>Errors are captured with a short timeout (2 seconds by default) so your site is never slowed down if the server is unreachable.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Fixed: the plugin version header and changelog had drifted out of sync\nwith actual releases since 1.2.0 \u2014 this release reconciles them and\ndocuments what shipped in 2.0.0\/2.0.1 below.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Security: only trust the <code>X-Forwarded-For<\/code> header when <code>REMOTE_ADDR<\/code> is a\nknown, configured trusted proxy \u2014 prevents client-supplied headers from\nspoofing the reported IP address on sites not behind a proxy.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Security: the DSN's API key is no longer sent in the request URL \u2014 it's\nextracted and sent as an <code>X-API-Key<\/code> header instead, so it can no longer\nleak into server or CDN access logs.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added frontend Core Web Vitals collection (LCP, INP, CLS, TTFB, page load) via bundled browser SDK<\/li>\n<li>New \"Frontend Performance Vitals\" setting in wp-admin; can be disabled per-page with the <code>devpulse_enqueue_vitals<\/code> filter or via <code>define('DEVPULSE_TRACK_VITALS', false)<\/code> in wp-config.php<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Stability and compatibility improvements<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release \u2014 PHP error and exception capture, wp_die() and fatal error handlers, admin settings page<\/li>\n<\/ul>","raw_excerpt":"Real-time error tracking and performance monitoring for WordPress \u2014 self-hosted and free.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/285720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=285720"}],"author":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sekolahcode"}],"wp:attachment":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=285720"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=285720"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=285720"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=285720"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=285720"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=285720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}