automattic / jetpack-my-jetpack
WP Admin page with information and configuration shared among all Jetpack stand-alone plugins
Package info
github.com/Automattic/jetpack-my-jetpack
Type:jetpack-library
pkg:composer/automattic/jetpack-my-jetpack
Requires
- php: >=7.4
- automattic/jetpack-admin-ui: ^0.14.8
- automattic/jetpack-assets: ^5.0.14
- automattic/jetpack-boost-speed-score: ^0.6.1
- automattic/jetpack-connection: ^9.13.0
- automattic/jetpack-constants: ^4.0.1
- automattic/jetpack-explat: ^0.6.5
- automattic/jetpack-feature-flags: ^0.2.1
- automattic/jetpack-jitm: ^5.1.5
- automattic/jetpack-licensing: ^4.1.1
- automattic/jetpack-menu-badges: ^0.2.3
- automattic/jetpack-plans: ^0.15.0
- automattic/jetpack-plugins-installer: ^0.6.1
- automattic/jetpack-protect-status: ^0.9.1
- automattic/jetpack-redirect: ^4.0.1
- automattic/jetpack-status: ^7.1.1
- automattic/jetpack-sync: ^5.4.3
- automattic/jetpack-wp-build-polyfills: ^0.6.5
Requires (Dev)
- automattic/phpunit-select-config: ^1.0.12
- yoast/phpunit-polyfills: ^4.0.0
Suggests
- automattic/jetpack-autoloader: Allow for better interoperability with other plugins that use this package.
Provides
None
Conflicts
None
Replaces
None
- dev-trunk / 6.13.x-dev
- v6.12.0
- v6.11.0
- v6.10.0
- v6.9.1
- v6.9.0
- v6.8.0.1
- v6.8.0
- v6.7.1
- v6.7.0
- v6.6.0
- v6.5.0
- v6.4.1
- v6.4.0
- v6.3.0
- v6.2.2
- v6.2.1
- v6.2.0
- v6.1.0
- v6.0.0
- v5.44.1
- v5.44.0
- v5.43.1
- v5.43.0
- v5.42.3
- v5.42.2
- v5.42.1
- v5.42.0
- v5.41.1
- v5.41.0
- v5.40.9
- v5.40.8
- v5.40.7
- v5.40.6
- v5.40.5.1
- v5.40.5
- v5.40.4
- v5.40.3
- v5.40.2
- v5.40.1
- v5.40.0
- v5.39.0
- v5.38.4
- v5.38.3
- v5.38.2
- v5.38.1
- v5.38.0
- v5.37.6
- v5.37.5
- v5.37.4
- v5.37.3
- v5.37.2
- v5.37.1
- v5.37.0
- v5.36.0
- v5.35.0
- v5.34.4
- v5.34.3
- v5.34.2
- v5.34.1
- v5.34.0
- v5.33.0
- v5.32.0
- v5.31.9
- v5.31.8
- v5.31.7
- v5.31.6
- v5.31.5
- v5.31.4
- v5.31.3
- v5.31.2
- v5.31.1
- v5.31.0
- v5.30.4
- v5.30.3
- v5.30.2
- v5.30.1
- v5.30.0
- v5.29.3
- v5.29.2
- v5.29.1
- v5.29.0
- v5.28.11
- v5.28.10
- v5.28.9
- v5.28.8
- v5.28.7
- v5.28.6
- v5.28.5
- v5.28.4
- v5.28.3
- v5.28.2
- v5.28.1
- v5.28.0
- v5.27.10
- v5.27.9
- v5.27.8
- v5.27.7
- v5.27.6
- v5.27.5
- v5.27.4
- v5.27.3
- v5.27.2
- v5.27.1
- v5.27.0
- v5.26.3
- v5.26.2
- v5.26.1
- v5.26.0
- v5.25.2
- v5.25.1
- v5.25.0
- v5.24.0
- v5.23.2
- v5.23.1
- v5.23.0
- v5.22.1
- v5.22.0
- v5.21.0
- v5.20.2
- v5.20.1
- v5.20.0
- v5.19.0
- v5.18.0
- v5.17.4
- v5.17.3
- v5.17.2
- v5.17.1
- v5.17.0
- v5.16.8
- v5.16.7
- v5.16.6
- v5.16.5
- v5.16.4
- v5.16.3
- v5.16.2
- v5.16.1
- v5.16.0
- v5.15.0
- v5.14.5
- v5.14.4
- v5.14.3
- v5.14.2
- v5.14.1
- v5.14.0
- v5.13.1
- v5.13.0
- v5.12.0
- v5.11.2
- v5.11.1
- v5.11.0
- v5.10.1
- v5.10.0
- v5.9.2
- v5.9.1
- v5.9.0
- v5.8.0
- v5.7.3
- v5.7.2
- v5.7.1
- v5.7.0
- v5.6.0
- v5.5.3
- v5.5.2
- v5.5.1
- v5.5.0
- v5.4.5
- v5.4.4
- v5.4.3
- v5.4.2
- v5.4.1
- v5.4.0
- v5.3.3
- v5.3.2
- v5.3.1
- v5.3.0
- v5.2.0
- v5.1.2
- v5.1.1
- v5.1.0
- v5.0.4
- v5.0.3
- v5.0.2
- v5.0.1
- v5.0.0
- v4.37.0
- v4.36.0
- v4.35.16
- v4.35.15
- v4.35.14
- v4.35.13
- v4.35.12
- v4.35.11
- v4.35.10
- v4.35.9
- v4.35.8
- v4.35.7
- v4.35.6
- v4.35.5
- v4.35.4
- v4.35.3
- v4.35.2
- v4.35.1
- v4.35.0
- v4.34.1
- v4.34.0
- v4.33.1
- v4.33.0
- v4.32.4
- v4.32.3
- v4.32.2
- v4.32.1
- v4.32.0
- v4.31.0
- v4.30.0
- v4.29.0
- v4.28.0
- v4.27.2
- v4.27.1
- v4.27.0
- v4.26.0
- v4.25.4
- v4.25.3
- v4.25.2
- v4.25.1
- v4.25.0
- v4.24.7
- v4.24.6
- v4.24.5
- v4.24.4
- v4.24.3
- v4.24.2
- v4.24.1
- v4.24.0
- v4.23.3
- v4.23.2
- v4.23.1
- v4.23.0
- v4.22.3
- v4.22.2
- v4.22.1
- v4.22.0
- v4.21.0
- v4.20.2
- v4.20.1.1
- v4.20.1
- v4.20.0
- v4.19.0
- v4.18.0
- v4.17.1
- v4.17.0
- v4.16.0
- v4.15.0
- v4.14.0
- v4.13.0
- v4.12.1
- v4.12.0
- v4.11.0
- v4.10.0
- v4.9.2
- v4.9.1
- v4.9.0
- v4.8.0
- v4.7.0
- v4.6.2
- v4.6.1
- v4.6.0
- v4.5.0
- v4.4.0
- v4.3.0
- v4.2.1
- v4.2.0
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v3.12.2
- v3.12.1
- v3.12.0
- v3.11.1
- v3.11.0
- v3.10.0
- v3.9.1
- v3.9.0.1
- v3.9.0
- v3.8.2
- v3.8.1
- v3.8.0
- v3.7.0
- v3.6.0
- v3.5.0
- v3.4.5
- v3.4.4
- v3.4.3
- v3.4.2
- v3.4.1
- v3.4.0
- v3.3.3
- v3.3.2
- v3.3.1
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.0
- v2.15.0
- v2.14.3
- v2.14.2
- v2.14.1
- v2.14.0
- v2.13.0
- v2.12.2
- v2.12.1
- v2.12.0
- v2.11.0
- v2.10.3
- v2.10.2
- v2.10.1
- v2.10.0
- v2.9.2
- v2.9.1
- v2.9.0
- v2.8.1
- v2.8.0
- v2.7.13
- v2.7.12
- v2.7.11
- v2.7.10
- v2.7.9
- v2.7.8
- v2.7.7
- v2.7.6
- v2.7.5
- v2.7.4
- v2.7.3
- v2.7.2.1
- v2.7.2
- v2.7.1
- v2.7.0
- v2.6.1
- v2.6.0
- v2.5.2
- v2.5.1
- v2.5.0.1
- v2.5.0
- v2.4.1
- v2.4.0
- v2.3.5
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.1
- v2.1.0
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.8.3
- v1.8.2
- v1.8.1
- v1.8.0
- v1.7.4
- v1.7.3
- v1.7.2.1
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.0
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- v0.6.13
- v0.6.12
- v0.6.11
- v0.6.10
- v0.6.9
- v0.6.8
- v0.6.7
- v0.6.6
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- v0.4.0
- v0.3.3
- v0.3.1
- v0.3.0
- v0.2.0
- v0.1.3
- v0.1.2
- dev-release-v2.9.2
- dev-release-v2.7.8
- dev-release-v2.7.2.1
- dev-release-v2.5.0.1
- dev-release-v1.7.2.1
- dev-release-v0.6.13
- dev-release-v0.6.6
- dev-fix/slack-workflow-branch-detection
- dev-release-v0.6.4
This package is auto-updated.
Last update: 2026-10-22 07:48:56 UTC
README
WP Admin page with information and configuration shared among all Jetpack stand-alone plugins
Overview
My Jetpack is a centralized WordPress admin page that provides a unified interface for managing all Jetpack products and services. It serves as the main dashboard where users can view, install, configure, and manage their Jetpack products.
Usage
Every Jetpack plugin must include the My Jetpack package.
Require this package and initialize it:
add_action( 'init', function() { Automattic\Jetpack\My_Jetpack\Initializer::init(); } );
Conditionally loading licensing UI behind a feature flag
To disable the licensing UI at /wp-admin/admin.php?page=my-jetpack#/add-license, add a filter on jetpack_my_jetpack_should_enable_add_license_screen and return false: add_filter( 'jetpack_my_jetpack_should_enable_add_license_screen', '__return_false' ); My Jetpack applies this filter automatically when initializing the offline Features entry described below.
Managing features
Where Features opens (sites registered with WordPress.com, and offline sites with the offline entry enabled), My Jetpack Features shows all eligible features by default, including unavailable modules and their reasons. Unavailable modules have no switch or bulk selection. Choose Available to exclude unavailable features, forced-off modules, and installed plugins forced inactive. Search spans all eligible features, and choosing a filter clears the search. Feature filters, search, layout, and an open feature remain in the URL across reloads.
When a standalone plugin provides an alternative, its card retains the install or activation action and explains the Jetpack module's limitation. Plan and connection restrictions retain applicable upgrade routes. Backup, Firewall, and Ads remain unavailable on multisite. Features hidden by the host stay hidden; forced and network-activated features retain their existing controls, with host reasons only in the details window of main cards; forced modules the site cannot run are listed as unavailable with their reasons.
Enable the default-off my-jetpack-account-connect flag with add_filter( 'jetpack_feature_flag_enabled_my-jetpack-account-connect', '__return_true' ); to connect the WordPress.com account from the features that need one. This applies on a site registered with WordPress.com without a connected owner, for an administrator whose own account is not connected either, while the connection reports no errors. Those features, such as Activity Log, Newsletter, Social and Backup, show Needs user account on the card and in its details, whether or not their plugin or Jetpack is installed, unless the host forces them off or multisite blocks them. A missing Social or Backup plugin, or a missing or inactive Jetpack, keeps Install or Activate, which turns the plugin on and then starts the account connection. An installed plugin or a module offers Connect instead of its switch, whether it is on or off: Connect starts the connection and changes nothing else, and the switch returns once the account is connected. A feature already on keeps Deactivate in its details. Available and bulk actions leave these features out, and the connection returns to the same Features view without its status filter. With the flag on, Available also leaves out features whose only action is an install the current user cannot make. A blocked install does not exclude a product that already runs without its plugin.
Enable the default-off my-jetpack-modules-to-features flag with add_filter( 'jetpack_feature_flag_enabled_my-jetpack-modules-to-features', '__return_true' ); to send eligible legacy Modules links to Features through browser navigation, carrying saved searches and recognized module tags. Search and tag together narrow the results; Clear tag removes only the tag. These views include a Classic Modules list link that preserves the current search and tag and remains available if feature data fails to load. Purpose-group and active/inactive filters, unknown tags, and tags or saved searches matching only hidden features stay on Modules. Links reach Features only when My Jetpack detects Jetpack as installed and active, including Jetpack Beta with both jetpack/ and jetpack-dev/ installed and only Beta active. Features and Modules links prefer an active copy when several declared copies are installed; with none active, they keep the first installed copy. Must-use installations without an active plugin file retain Modules and their existing module controls. Sites or users without Features access, sites where My Jetpack would redirect to setup or a partner coupon screen, offline sites (even with the offline entry enabled), and disabled REST access retain Modules with the search and tag arguments preserved. Without JavaScript, legacy links and repointed management links also reach Modules; the server-printed fallback and its REST probe run only while the Modules-to-Features flag is enabled. The pinned footer and its Reset action remain available. Hosts that do not show My Jetpack can keep all management links on Modules with add_filter( 'jetpack_my_jetpack_modules_management_available', '__return_false' );.
Offline Mode
The offline Features entry is off by default. Register add_filter( 'jetpack_my_jetpack_offline_features', '__return_true' ); before My Jetpack initializes, for example in a must-use plugin, and visit /wp-admin/admin.php?page=my-jetpack#/features on a site in offline mode. My Jetpack opens Features without connection onboarding; other hash routes redirect there while preserving the query string.
Users need permission to edit posts and activate plugins, plus manage the network on multisite. The Jetpack plugin keeps its Modules and Settings entry for users who cannot access Features. Local modules can be switched and retain their state after reload. The Features controller refuses to activate modules that require a connection; standalone plugins can still be activated and may run their own activation steps, including Social enabling its module.
The offline page skips product, ownership, notification, and history queries. It does not prevent requests elsewhere in shared Jetpack code: the Search plan lookup with copied credentials and connected-user script data on a cold cache can still contact WordPress.com.
Architecture
Core Components
PHP Backend (src/)
- Initializer (
class-initializer.php): Main entry point that sets up admin menu, REST endpoints, and asset enqueuing - Products (
class-products.php): Core product management system with status constants and lifecycle handling - Product Classes (
src/products/): Individual product implementations inheriting from baseProductclass - REST API (
class-rest-*.php): API endpoints for product management, purchases, and AI functionality
React Frontend (_inc/)
- Main App (
app.jsx): React Router setup, rendered by the wp-build route inroutes/dashboard/ - Onboarding (
onboarding.jsx): Webpack entry for the full-screen onboarding takeover - Components (
components/): Reusable UI components for product cards, screens, and interstitials - Data Layer (
data/): Custom hooks and API integration using React Query (see Data Layer Documentation) - Context (
context/): Global state management for notices and values
Product System
- Products inherit from base
Productclass with standardized interface - Status constants define product lifecycle:
active,inactive,needs_plan,plugin_absent, etc. - Hybrid products can function as both standalone plugins and Jetpack modules
- Product cards dynamically display status, actions, and pricing information
Key Features
- Connection Management: Handles WordPress.com site and user connections
- Product Interstitials: Purchase/activation flows for each product
- Onboarding Flow: Guided setup for new users
- Licensing: License key management and validation
- Activity Log: Integration with Jetpack activity monitoring
- Speed Score: Boost performance metrics integration
Frontend Architecture
- React 18 with functional components and hooks
- React Router for client-side navigation
- CSS Modules for component styling
- TypeScript for type safety
- Custom data hooks using React Query for API state management
Build System
- Webpack with Jetpack-specific configuration
- Babel for JavaScript transpilation
- Sass for CSS preprocessing
- Asset optimization for production builds
- Textdomain replacement for internationalization
Development
Commands
Build Commands:
jetpack build packages/my-jetpack- Build from monorepo rootjetpack watch packages/my-jetpack- Watch mode from monorepo rootpnpm run build- Build from package directorypnpm run test- Run tests from package directory
Testing Strategy
Testing:
- PHP: PHPUnit with WordPress test environment and polyfills
- JavaScript: Jest with React Testing Library
- E2E: Integration with monorepo Playwright setup
Development Notes
Code Standards:
- Uses WordPress coding standards and Jetpack extensions
- Requires WordPress.com connection for full functionality
- Integrates with Jetpack licensing and purchase systems
- Supports feature flags for gradual rollouts
- Compatible with WordPress multisite (when enabled)
API Endpoints
REST API Patterns
- Base namespace:
jetpack/v4/my-jetpack - Products endpoint:
/products- main product data and actions - Purchases endpoint:
/purchases- user purchase information - Feature endpoints: Various feature-specific endpoints
Data Flow
- React components call API via
apiFetch - WordPress routes to appropriate REST controller
- Controller validates permissions and processes request
- Product classes handle business logic
- Response returned to frontend for UI updates
Key Files Reference
PHP Files
src/class-initializer.php- Main initialization, admin menu setupsrc/class-products.php- Core product management, status constantssrc/products/class-product.php- Base product classsrc/class-rest-products.php- Main products API endpointsrc/class-wpcom-products.php- WordPress.com product integration
React Files
_inc/app.jsx- Main React application, rendered byroutes/dashboard/stage.tsx_inc/onboarding.jsx- Onboarding takeover entry point_inc/providers.tsx- Context providers wrapper_inc/constants.ts- Route definitions and constants_inc/components/my-jetpack-screen/- Main dashboard screen_inc/components/product-interstitial/- Product setup flows_inc/data/- API hooks and data management using React Query
Configuration Files
package.json- Dependencies and scriptswebpack.config.js- Build configurationbabel.config.js- JavaScript transpilationtsconfig.json- TypeScript configuration
Using this package in your WordPress plugin
If you plan on using this package in your WordPress plugin, we would recommend that you use Jetpack Autoloader as your autoloader. This will allow for maximum interoperability with other plugins that use this package as well.
Security
Need to report a security vulnerability? Go to https://automattic.com/security/ or directly to our security bug bounty site https://hackerone.com/automattic.
License
my-jetpack is licensed under GNU General Public License v2 (or later)