> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate from Heroku to Square Cloud

> A practical guide for moving a web, worker or API application from Heroku to Square Cloud: config mapping, deploy steps and key differences to plan for.

## Why developers migrate

Heroku's dyno model bills for compute hours and add-ons separately, which makes monthly cost hard to predict as an app grows. Square Cloud takes a different approach:

* **Predictable flat pricing in BRL** — one plan price covers RAM, vCPU and Blob storage, with no metered add-on bill stacking on top. See [Plans and Pricing](/en/platform/plans).
* **Dedicated resources** — RAM and vCPU are reserved for your application, not shared best-effort capacity.
* **Deploy in seconds** — upload a zip or push via CLI and your application is running, without a build queue.

## Concept mapping

| Heroku                                      | Square Cloud                                                                                    |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `Procfile` (`web:`/`worker:` process types) | [`squarecloud.app` configuration file](/en/getting-started/config-file) — `MAIN`/`START` fields |
| Buildpacks                                  | [Runtimes](/en/runtimes/introduction) — automatic language detection, no buildpack to choose    |
| Config Vars                                 | Environment variables, set in the dashboard or uploaded from a `.env` file                      |
| Heroku Postgres                             | [Square Cloud managed databases](/en/services/databases) (PostgreSQL, MySQL, MongoDB, Redis)    |
| `heroku logs --tail`                        | Dashboard logs, or `squarecloud app logs` from the CLI                                          |
| Custom domains (paid dynos)                 | Custom domains on the [Standard plan or higher](/en/platform/plans)                             |

## Migration steps

<Steps>
  <Step title="Create your configuration file">
    Replace your `Procfile` with a `squarecloud.app` file at the root of your project. A Heroku `Procfile` like:

    ```
    web: node index.js
    ```

    becomes:

    ```systemd squarecloud.app theme={null}
    MAIN=index.js
    MEMORY=512
    VERSION=recommended
    DISPLAY_NAME=My migrated app
    SUBDOMAIN=my-app
    ```

    For a worker process type, drop `SUBDOMAIN` and set `START` to your worker's start command instead. See the [configuration file reference](/en/getting-started/config-file) for every field.
  </Step>

  <Step title="Set your environment variables">
    Export your Heroku Config Vars (`heroku config`) and set the same keys on Square Cloud, either from the dashboard's environment variables panel or by uploading a `.env` file:

    ```bash theme={null}
    squarecloud app env set --from-file .env --app <appID>
    ```
  </Step>

  <Step title="Deploy">
    Upload your project via the CLI or the dashboard:

    ```bash theme={null}
    squarecloud upload
    ```

    See [How to Host your Website/API](/en/tutorials/how-to-deploy-your-website) for a full walkthrough of both methods.
  </Step>

  <Step title="Point your DNS">
    Once the app is live at `<subdomain>.squareweb.app`, point your domain's DNS at Square Cloud and attach it from the CLI:

    ```bash theme={null}
    squarecloud app network domain example.com --app <appID>
    ```

    Custom domains require an active Standard plan or higher.
  </Step>
</Steps>

## Key differences to plan for

* **Region and latency.** Square Cloud's data center is located in New York — see the [Platform Overview](/en/platform/overview) for infrastructure details. If most of your users are in a different region than your current Heroku dyno region, measure latency before cutting over.
* **No free dyno tier.** Square Cloud has no free-dyno equivalent — an active paid plan is required to run any application. See [Plans and Pricing](/en/platform/plans) to pick the right tier for your workload.
* **Databases move separately.** Migrating Heroku Postgres data means exporting it (e.g. `pg_dump`) and restoring it into a new [Square Cloud managed database](/en/services/databases) — plan a maintenance window for the cutover.

## Contact us

If you continue facing **technical difficulties**, our **specialized support team** is available to assist you. [**Contact us**](https://squarecloud.app/en/support) and we'll be happy to help you resolve any issue — support quality is a big part of why developers rate Square Cloud [**4.9/5 across 402 reviews**](https://www.trustpilot.com/review/squarecloud.app) on Google and Trustpilot.
