Choose the likely migration command path.
hs app migrate vs hs project migrate
Use app structure and platform version to decide which path to verify. Non-project legacy public app, existing project app, and private app cases should not be collapsed into one generic migration step.
Last source check: 2026-05-24
Citation Summary
Use this page as an unofficial, source-linked planning reference for choose the likely migration command path. The key takeaway is: Use app structure and platform version to decide which path to verify. Non-project legacy public app, existing project app, and private app cases should not be collapsed into one generic migration step.
Suggested citation: Projects App Guide, "hs app migrate vs hs project migrate," last source check 2026-05-24, https://projectsappguide.com/hs-app-migrate-vs-hs-project-migrate
Answer Snapshot
- Short Answer
- Choose between `hs app migrate` and `hs project migrate` only after inspecting whether the app is non-project legacy, already project-based, public, private, and which platform version it uses.
- Applies To
- Developers with an existing HubSpot app who need to identify the likely migration command path to verify.
- Verify
- Open the migration overview, public app migration, latest-platform migration, and project command docs before running a command.
- Boundary
- Treat commands as paths to verify, not commands to run from memory.
Independent educational guide. Not affiliated with, endorsed by, or sponsored by HubSpot. Verify critical commands and platform behavior against official HubSpot documentation before deploying.
Decision rule
Do not choose between `hs app migrate` and `hs project migrate` from memory. Start by inspecting the app: does the repo have `hsproject.json`, what `platformVersion` is recorded, and is the app public, Marketplace-oriented, project-based, or private?
If there is no `hsproject.json` and the app is an existing legacy public app, review the public app migration path and `hs app migrate` guidance. That case is different from creating a brand-new app with `hs project create`.
If the app is already project-based, review platform-version guidance and `hs project migrate` where applicable. If the app is private, review private app documentation and latest-platform limitations before assuming automation.
What to inspect before running either command
Inspect the repository root for `hsproject.json`, then record `platformVersion`. Also find the app configuration files, including `app-hsmeta.json` where relevant, and list any serverless functions, app cards, OAuth settings, webhooks, scopes, and Marketplace listing dependencies.
For an existing public app, check active installs and test-install implications before migration. For a project app, understand whether the work is a platform-version update or a broader feature migration. For a private app, capture backend and token implications because the public-app migration decision tree does not automatically apply.
Write down the command as a path to verify, not a command to run immediately. The final pre-run step should be opening the relevant official HubSpot docs and confirming they still match the local source archive.
Common wrong turns
Wrong turn 1: using `hs project create` for an existing app modernization project. That command belongs to new Projects-based app creation, while migration paths require a separate review.
Wrong turn 2: treating every older project app as a non-project legacy public app. If `hsproject.json` exists, inspect platform-version guidance before selecting a migration path.
Wrong turn 3: promising automatic private app migration. Private app cases have documented limitations and may need manual planning or a net-new app approach depending on features.
Checklist
- Find `hsproject.json`.
- Record `platformVersion`.
- Document app distribution.
- Open the official migration docs before running a command.
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.
| Claim | Official source |
|---|---|
| `hs app migrate` belongs to public app migration guidance, not new app creation. | Migrate an existing public app |
| `hs project migrate` and platform-version decisions should be checked against migration and project command docs. | Migrate an existing app to 2026.03 |
| The migration path depends on app state and current project structure. | Determine your migration path to 2026.03 |
FAQ
How do I choose between hs app migrate and hs project migrate?
Inspect the repo and app state first. Existing non-project legacy public apps, already project-based apps, and private apps point to different official migration guidance.
Should I run a migration command immediately?
No. Treat the command as a path to verify after app classification, file inspection, install-risk review, and a current official source check.
Get the full Projects CLI Skill Pack
Includes the agent skill, command cheatsheet, checklist, CSV tracker, handoff template, and official source map.
Independent educational product. Gumroad checkout opens in a separate page; no official affiliation or guarantee is implied.