Projects App Guide
Back to guide hub

Use local development without overtrusting it.

HubSpot hs project dev Local Development Guide

`hs project dev` starts a local development server for supported HubSpot project extension work. It can refresh supported JSX UI changes, but JSON config changes still need manual upload.

Last source check: 2026-05-24

Citation Summary

Use this page as an unofficial, source-linked planning reference for use local development without overtrusting it. The key takeaway is: `hs project dev` starts a local development server for supported HubSpot project extension work. It can refresh supported JSX UI changes, but JSON config changes still need manual upload.

Suggested citation: Projects App Guide, "HubSpot hs project dev Local Development Guide," last source check 2026-05-24, https://projectsappguide.com/hubspot-project-dev-local-development

Answer Snapshot

Short Answer
`hs project dev` starts a local development server; supported JSX changes can refresh in the browser, while `.json` config changes need `hs project upload`.
Applies To
Developers building or testing HubSpot app cards, settings pages, and other Projects-based app work locally.
Verify
Open the current HubSpot project commands docs and create-app docs before relying on local development behavior.
Boundary
Local development preview is not production validation, Marketplace approval, or proof that all app configuration is uploaded.

Independent educational guide. Not affiliated with, endorsed by, or sponsored by HubSpot. Verify critical commands and platform behavior against official HubSpot documentation before deploying.

What hs project dev is for

`hs project dev` is best understood as a local development loop for supported Projects app work. The project commands docs describe it as starting a local development server, and they call out supported browser refresh behavior for JSX changes when developing app cards or settings pages with UI components.

That makes it useful for fast iteration on interactive UI surfaces, copy tweaks, component behavior, and developer feedback loops. It is less useful as a final source of truth for account configuration, OAuth readiness, Marketplace listing quality, or build/deploy behavior.

Before starting local development, install or test the app according to the current create-app flow, confirm the target account, and write down which feature you are testing. A clear test scope keeps local dev from turning into a vague green light.

What does not update automatically

The official project commands docs make a critical distinction: changes to `.json` config files are not included in the local refresh behavior and need to be manually uploaded with `hs project upload`. This affects planning because many important app decisions live in configuration rather than JSX.

If you change `app-hsmeta.json`, feature schema, auth configuration, scopes, redirect URLs, or other JSON-driven configuration, add a separate upload and verification step. Do not tell a client or product owner that local dev has validated those changes just because a UI surface refreshed in the browser.

A clean workflow separates local UI confidence from project configuration confidence. Use `hs project dev` for the former, then use upload/build/install checks for the latter.

QA workflow for teams

For team handoff, create a short local-dev note: command used, target account, feature tested, files changed, browser behavior observed, JSON config changed or not changed, and next upload required or not required. That note gives a reviewer enough context to understand what was actually proven.

If browser permissions, local network settings, or enterprise device policies interfere with the local development server, document the environment rather than turning the issue into a platform claim. Browser behavior changes over time, so the official docs and the local machine state should both be checked.

For AI-assisted development, paste the local-dev note into the agent prompt and ask for separate next steps for JSX/UI issues, JSON config upload, OAuth install checks, and Marketplace readiness. This mirrors the source boundary and reduces overconfident output.

Checklist

  • Confirm the app is installed or testable in the intended account.
  • Run local development from the correct HubSpot project directory.
  • Separate JSX/UI changes from `.json` configuration changes.
  • Use `hs project upload` for configuration changes that need to reach HubSpot.
  • Record browser, account, feature, and files tested in the handoff.
  • Do not treat local dev as Marketplace or production approval.

Claim / Source Map

These are the main claims this page relies on. Re-open the linked official HubSpot source before production-affecting commands, uploads, submissions, or client delivery.

ClaimOfficial source
`hs project dev` starts a local development server for project work.HubSpot CLI project commands
Supported JSX changes for app cards or settings pages can refresh while the server is running.HubSpot CLI project commands
Changes to `.json` configuration files need manual upload with `hs project upload`.HubSpot CLI project commands

FAQ

What changes refresh in hs project dev?

HubSpot's project command docs call out supported JSX changes for app cards or settings pages using UI components while the local development server is running.

Do JSON config files update automatically in local development?

No. The project command docs state that `.json` config file changes need to be manually uploaded using `hs project upload`.

Is hs project watch still the recommended local loop?

The archived HubSpot project commands docs mark `hs project watch` as deprecated in favor of `hs project dev`; verify the current docs before using older workflows.

Use the agent-ready skill workflow

Give your coding agent a source-linked workflow for classifying apps and generating a migration handoff.

Independent educational product. Gumroad checkout opens in a separate page; no official affiliation or guarantee is implied.

View products