Overview
If you are searching for a Heroku alternative, particularly a Heroku Enterprise alternative, Aptible is one of the strongest platform-as-a-service options to evaluate. For teams that need a Heroku-like developer experience but stronger security, isolation, and compliance foundations, Aptible is a natural next step. Aptible offers simple, abstracted deployment of apps, databases, and infrastructure while providing dedicated infrastructure isolation, enforced security controls, and built-in compliance support for frameworks such as HIPAA, HITRUST, and SOC 2. These capabilities are especially important for startups operating in regulated industries and enterprise teams with strict security, reliability, and audit requirements. Refer to the Security & Compliance docs for more information on our approach to security and compliance, including the specific controls we satisfy. If you are evaluating alternatives due to recent changes to Heroku’s Enterprise offering, you’re in the right place. Many teams are reassessing their infrastructure strategy and looking for a platform that preserves developer velocity while strengthening security, compliance posture, and operational control. This guide will help you both evaluate Aptible and outline a clear path for a smooth migration, including:- Heroku vs Aptible comparison
- Key terminology mapping
- Technical migration steps:
- Private Spaces to Dedicated Stacks
- Projects to Environments
- Dynos to containers
- Heroku Postgres and Redis to Aptible-managed databases
- Auditing add-ons
- Reconfiguring endpoints and networking
- Minimizing downtime during cutover
FAQs
Why migrate from Heroku to Aptible?
Why migrate from Heroku to Aptible?
How does Aptible pricing compare to Heroku?
How does Aptible pricing compare to Heroku?
Can I keep using a Procfile?
Can I keep using a Procfile?
CMD instruction. This is referred to as an Implicit Service.You can continue using a Procfile if your application has multiple services or process types. Procfile syntax is compatible between Heroku and Aptible.Note: If you are using Direct Docker Image Deploy (deploying a pre-built image from a container registry), you must place your Procfile at /.aptible/Procfile and your .aptible.yml at /.aptible/.aptible.yml inside your Docker image. See Procfiles and .aptible.yml with Direct Docker Image Deploy for details.Heroku vs Aptible comparison
The table below summarizes key differences across compliance, developer experience, and pricing.| Category | Heroku | Aptible |
|---|---|---|
| Compliance | ||
| HIPAA Eligibility | Available (Enterprise/Shield) | Included |
| HITRUST Inheritance | Not available | Included |
| BAA Support | Available (Enterprise/Shield) | Included |
| Encryption in Transit and at Rest | Included | Included, by default |
| Managed Intrusion Detection | Not available | Included, by default |
| 24/7 SRE Monitoring | Available with additional fee | Included, by default |
| Automated Backups | Included, plan-dependent retention | Included, by default |
| Granular Access Control | Limited | Included, by default |
| Infrastructure Isolation | Included (Private Spaces) | Included (Dedicated Stacks) |
| Developer Experience | ||
| Runtime Model | Dynos | Docker containers |
| Build System | Buildpacks | Dockerfile-based |
| Traffic Routing | Heroku Router | Explicit Endpoints |
| Automatic Rollbacks | Limited | Included, by default |
| Zero-downtime deploys | Included, by default | Included, by default |
| Public and Private Access | Limited | Available (Public and Private Endpoints supported) |
| Managed Databases | Heroku Postgres & Redis | PostgreSQL, MySQL, Redis, Elasticsearch, RabbitMQ, InfluxDB, SFTP |
| Pricing | ||
| Compute Pricing Model | Dyno tiers | Container-based pricing |
| Contract | 12-month contract (Enterprise) | Pay-as-you-go, no lock-in |
Key terminology mapping
If you’re migrating from Heroku, the table below maps common Heroku concepts to their Aptible equivalents.| Heroku Term | Aptible Term | Description |
|---|---|---|
| Dyno | Container | A running instance of your application process |
| Heroku Router | Endpoint | Network entry point that routes traffic to your service |
| App URL | Endpoint URL | Public hostname exposing your service |
| Private Space | Dedicated Stack | Isolated infrastructure environment |
| Project | Environment | Logical grouping of apps and databases |
| Config Vars | Environment Variables | Runtime configuration values |
| Buildpacks | Dockerfile | Defines how your application is built |
| Heroku Postgres | Managed PostgreSQL | Production database service |
| Heroku Redis | Managed Redis | In-memory data store |
| Add-ons | Managed Databases or External Integrations | Infrastructure services attached to your app |
Before you begin
Before starting your migration, ensure the following:Create an Aptible account
- Development is intended for early-stage development and testing, when you do not yet have production security or compliance requirements.
- Production is designed for production workloads and provides access to highly secure and compliant resources, including support for frameworks such as HIPAA.
Install the Aptible CLI
Review your existing Heroku setup
- Application process types (web, worker, background jobs)
- Environment variables and secrets
- Add-ons such as databases, caches, or third-party services
- Any custom build or runtime configuration
- Networking or domain configuration
Migration steps
Set up your Aptible infrastructure
Private Spaces to Dedicated Stacks
In Heroku, applications can run inside Private Spaces, which define the network boundary and isolation model for your workloads. In Aptible, the equivalent concept is a Dedicated Stack. A Dedicated Stack is an isolated AWS environment with its own VPC, enforced encryption, and infrastructure-level security controls.Provision a Dedicated Stack
Execute a BAA if required
Review networking requirements
- Create separate Environments within a single Dedicated Stack (most common approach)
- Provision multiple Dedicated Stacks if stricter infrastructure separation is required
Projects to Environments
In Heroku, applications are grouped into Projects and can be connected via Pipelines. In Aptible, applications and databases are grouped within an Environment, which exists inside a Dedicated Stack. An Environment provides logical separation between staging and production workloads and defines access controls.- Create an Environment corresponding to each Heroku Project
- Create separate Environments for staging and production
Migrate your application
Dynos to Containers
In Heroku, applications run as dynos built via buildpacks and defined by a Procfile. Heroku manages the runtime layer and abstracts containerization. In Aptible, applications run as Docker containers. You define how the application is built and executed using a Dockerfile, and each process type runs as its own service. Key differences:| Heroku | Aptible |
|---|---|
| Buildpacks | Dockerfile |
| Procfile process types | Separate services |
| Dyno scaling | Container scaling |
| Release phase | Explicit release command via .aptible.yml |
Add a Dockerfile
Dockerfile. See Getting Started with Docker for guidance.Example (Node.js):- App binds to
0.0.0.0 - Correct port exposed
- No reliance on ephemeral filesystem storage
Translate Procfile process types
- Deploy
webas one service - Deploy
workeras a separate service - Run database migrations using before_release in
.aptible.yml
.aptible.yml placement depends on your deployment method:- Git Push (Dockerfile Deploy)
- Direct Docker Image Deploy
Procfile and .aptible.yml in the repository root directory. Aptible will detect and use them automatically during the build process.Configure environment variables
DATABASE_URLREDIS_URLSECRET_KEY_BASE- External service credentials
Scale containers
Migrate your databases
Heroku provides Heroku Postgres and Heroku Redis. In Aptible, you can provision managed PostgreSQL, Redis, as well as MySQL, Elasticsearch, InfluxDB, RabbitMQ, and SFTP.Migrating PostgreSQL
There are two primary approaches to migrating PostgreSQL databases:- Dump and restore works well for smaller databases (under 10GB) and simpler migrations
- Logical replication is recommended for databases over 10GB or high-traffic production apps where minimizing downtime is critical
Option A: Dump and Restore (recommended for databases under 10GB)
Option A: Dump and Restore (recommended for databases under 10GB)
Capture backup from Heroku
- Schedule a maintenance window
- Consider putting the application in read-only mode
- Lower DNS TTL in advance if planning cutover
Provision PostgreSQL in Aptible
- Confirm version compatibility with Heroku Postgres
- Verify required extensions are supported
Restore database
--jobs=N for parallel restore.See Dump and Restore PostgreSQL for detailed instructions.Update DATABASE_URL
Option B: Logical Replication (recommended for databases over 10GB)
Option B: Logical Replication (recommended for databases over 10GB)
Provision PostgreSQL in Aptible
Set up logical replication
pglogical extension to replicate data from Heroku to Aptible. The replica stays in sync until you’re ready to cut over.See Database Replication and aptible db:replicate for details.Monitor replication status
Migrating Redis
Provision Redis in Aptible
Plan cutover
- Cache only: No data migration required
- Job queue: Coordinate cutover carefully to avoid dropped jobs
Audit your add-ons
Before migrating, review all add-ons attached to your Heroku application:| Heroku Add-on | Migration Approach |
|---|---|
| Heroku Postgres | Migrate to Aptible-managed PostgreSQL |
| Heroku Redis | Migrate to Aptible-managed Redis |
| Logging add-ons (e.g., Papertrail) | Configure log drains to your observability provider (no additional cost) |
| Email providers | Continue using external provider and update credentials |
| Third-party services | Reconfigure networking and environment variables |
Configure endpoints and networking
In Heroku, applications are exposed via the Heroku Router. In Aptible, applications are exposed through explicitly defined Endpoints.Public Endpoints
If your application is publicly accessible:- Create a Public Endpoint for the service
- Attach your custom domain
- Confirm TLS configuration
- Validate IP allowlists if required
Private Endpoints
If your Heroku Private Space uses internal routing between services:- Create Private Endpoints inside the Dedicated Stack
- Update internal service URLs
- Confirm security group or access configuration
Networking checklist
- Review outbound IP requirements
- Confirm third-party allowlists
- Update webhook destinations if needed
- Verify internal service-to-service communication
Minimize downtime during cutover
To reduce downtime and risk during migration, plan the final cutover carefully.Deploy and validate in staging

