Loading…

Heroku
Heroku is a cloud platform as a service where you can deploy projects and websites. It supports several programming languages, so it’s no surprise that Heroku’s really popular.
- 143 posts summarised
- latest
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
From their blog
Latest articles
How To Set Up a Staging Environment on Heroku in 3 Easy Steps
The guide explains how to add a Heroku staging environment so changes are tested in a near-identical, isolated replica before production. It uses a pipeline with production and staging apps, disables production automatic deployments, connects staging to GitHub, and enables automatic builds, with Review Apps offered for pull requests. The setup applies Twelve-Factor practices by separating config vars and databases, recommending migrations into a fresh Postgres database or warning that pg:copy overwrites staging data and can create compliance risks. After validation, slug promotion sends the exact compiled staging asset to production without recompiling, while numbered releases support rollback; database changes must still be reversed separately.
Securing Heroku CLI Credentials with System Keychain Storage
Heroku CLI 11.8.0 changes credential storage by making the system keychain the default and retaining .netrc as a fallback. The transition began in 11.6.0, when the CLI stored tokens in both locations to preserve existing workflows. The credential manager uses macOS security, Linux Secret Service through secret-tool, or Windows PasswordVault, storing credentials under “heroku-cli” with the account email as the identifier. Authentication lookup prioritizes HEROKU_API_KEY, then HEROKU_NETRC_WRITE, keychain storage, and .netrc files; unsupported or failing keychain access falls back to .netrc. Version 11.8.0 also adds a Git credential helper, so commands such as git push heroku main continue without configuration changes, while CI/CD can keep using HEROKU_API_KEY and Linux users may need secret-tool.
A 15-Second Health Check for Your Heroku Connect Data Pipeline
Heroku Connect’s built-in CLI diagnostic utility addresses troubleshooting when Salesforce records lag or fields fail to update as expected, replacing manual dashboard searches with a focused health check. After installing the Heroku Connect CLI plugin, engineers can run heroku connect:diagnose --verbose to inspect connection-level settings and mapping or field configurations. The output reports sequential GREEN, YELLOW, RED, or SKIPPED statuses, with checks covering Salesforce API version, permissions, database plan, schema changes, field types, unique identifiers, and other constraints. Examples include an outdated API version, missing View All Data or Modify All Data permissions, binary or calculated fields, and Salesforce or Postgres schema drift; the text pairs these warnings with actions such as recreating or refreshing a connection, removing binary fields, or realigning mappings. Running the command before migrations or Salesforce schema changes provides an immediate view of configuration mismatches and sync bottlenecks.
Behind the Scenes: How Maintaining Cloud Native Buildpacks Powers Platforms Like Heroku
Maintaining the pack CLI and Cloud Native Buildpacks (CNBs) is presented as invisible infrastructure work supporting platforms including Heroku, Google Cloud, OpenShift, VMware Tanzu, and internal systems. Over the last 14 months, maintainers shipped 27 releases—11 for pack and 16 for buildpacks/github-actions—reviewed more than 65 community pull requests, and delivered Execution Environments and System Buildpacks. The work also covered Windows CI migration, a docker/docker to moby/moby client upgrade, FreeBSD binaries, multi-architecture publishing, and a Platform API 0.14 lifecycle-restorer fix. System Buildpacks address platform composition and defaults, while Execution Environments support consistent configurations across development, CI, and production. The post argues that company-funded maintainers and CNCF collaboration turn production requirements into shared infrastructure, with planned build observability, OCI image annotations, and Kaniko removal as further examples.
From Fragmented Logs to Full-Stack Visibility with SolarWinds Papertrail
Heroku applications combine dynos, databases, third-party APIs, and user interactions, making fragmented logs, metrics, and dashboards costly to correlate during production incidents. The expanded SolarWinds Papertrail add-on addresses this “swivel-chair” workflow by unifying real-time log management, metrics dashboards, and alerting in one interface. It supports live tailing and contextual search through the web, CLI, or API, while ingesting native Heroku metrics for dyno CPU, memory, load averages, application throughput, response times, error rates, and database performance. Custom thresholds based on minimum, maximum, average, or summary values can filter transient-noise alerts, with notifications sent to Slack, PagerDuty, and Microsoft Teams. The post’s incident example correlates a response-time spike with R14 “Out of Memory” errors from Dyno worker.1, identifying an oversized batch job; Librato and AppOptics were deprecated at the end of January 2026.
Building AI-Powered Observability with Heroku Managed Inference and Agents
Production incident debugging often requires switching among an IDE, Splunk, Sentry, and PagerDuty while translating natural-language questions into platform-specific queries. The described system connects AI coding assistants to observability platforms through the Model Context Protocol (MCP), exposing typed tools for Splunk searches, Honeycomb queries, and Sentry event lookups. Heroku Managed Inference and Agents provides an MCP gateway for SSE transport, allowing servers to run as STDIO processes and be deployed with a Heroku app, an inference add-on, credentials, and an inference token configured in tools such as Cursor or Claude. The post reports ranked production error results, processing more than 175,000 events in minutes for a suspicious-account review, and using natural-language questions to reduce syntax barriers and keep telemetry in the IDE.
Building AI Search on Heroku
The reference architecture addresses a common RAG failure: vector search can return semantically similar documentation that does not answer the user's question. Its query pipeline retrieves the top 20 chunks with cosine similarity in Heroku Postgres and pgvector, then sends those candidates to Cohere Rerank 3.5, a cross-encoder reranker, before Claude 3.5 Sonnet generates an answer. The indexing pipeline crawls URLs, filters likely boilerplate, splits documents into 1,000-character chunks with 200-character overlap at natural boundaries, embeds them with Cohere Embed Multilingual, and batch-inserts them. Server-Sent Events stream embedding, search, reranking, sources, and generated text to avoid a blank screen during the multi-step request. The reranking stage can be made optional when lower latency matters more than precision.
PaaS + IaaS: Heroku and AWS for Cloud-Native Enterprise Agility
Modern enterprises can combine AWS IaaS infrastructure scale with Heroku’s managed PaaS to reduce operational work and developer cognitive load while retaining control for specialized workloads. Heroku supports Git-based deployment, managed services including Apache Kafka and Heroku Postgres, polyglot applications, and isolated environments such as Private Spaces and Shield Private Spaces. In Salesforce’s example, five applications serving more than 76,000 employees used Heroku to cut expense approval time from two days to two hours and recover $2 million in unused licenses. The architecture also combines Heroku AppLink, Heroku Connect, Heroku Fir’s OpenTelemetry support, and managed Dynos, while AWS remains the stated choice for highly specialized AI training requiring raw GPU access.
Heroku Support for .NET 10 LTS: What Developers Need to Know
Heroku now supports building and running .NET 10 applications, including ASP.NET Core 10, C# 14, and F# 10, as the new three-year Long Term Support release becomes available. Its .NET buildpack detects single-file C# applications, installs the latest SDK, builds and publishes them, and configures web apps without project or solution files; it also supports both .sln and .slnx formats. Heroku CI continues to run dotnet test by default, with the .NET 10 SDK integrating the Microsoft Testing Platform into that command. .NET 8 and .NET 9 remain supported with updates but reach End of Support on November 10, 2026, while apps targeting net10.0 RC will use stable .NET 10 on their next push and can pin SDK versions through global.json.
Upgrade to Puma 7 and Unlock the Power of Fair Scheduled Keep-alive
Puma 6 and earlier could let a keep-alive connection “cut the line” when all threads were busy, allowing up to ten requests from that connection to run consecutively while previously accepted work waited. The behavior came from reusing a “fast inline” optimization intended for HTTP pipelining, where requests arrive together, for keep-alive requests that can arrive later. Puma 7 changes queueing so pipelined and keep-alive requests return to the back of the queue, and adjusts wait_until_not_full so interleaving is possible; its accept loop now slows proportionally with load instead of stopping completely. The fix does not add capacity, but distributes overload delay more fairly across requests. The post recommends upgrading to Puma 7.1.0 or later, especially for applications that had disabled keep-alives after latency spikes.
Building an Enterprise Data Warehouse on Heroku: From Complex ETL to Seamless Salesforce Integration
The article describes Heroku’s effort to unify Salesforce and data from more than 20 applications in a real-time analytics warehouse after traditional ETL created API, freshness, performance, and maintenance problems. Its architecture uses Heroku Postgres as an operational warehouse and staging layer, AWS Redshift for historical analytics, Heroku Connect for direct Salesforce replication, follower databases for read-only source access, and Apache Airflow for orchestration. Template-driven Python jobs and 200+ JSON definitions support incremental, bulk, and date-range loads, while 30+ DAGs and monitoring across 12 regional Heroku Connect instances provide automated retries and consistency. Reported outcomes include over 10 TB processed monthly, sub-minute freshness, 99.99% pipeline uptime, 60% lower integration costs, and 40% better customer analysis accuracy. Tableau and Dataclips provide real-time, historical, and ad hoc reporting, while planned or newly described capabilities include Postgres Advanced, expanded Connect synchronization, and zero-copy Data Cloud ingestion in beta.
Learn How to Lower Heroku Dyno Latency through Persistent Connections (Keep-alive)
Repeatedly opening TCP connections between the Heroku Router and an application dyno can impose TCP slow start on every request, creating a latency penalty. The post explains how HTTP/1.0 tied each request to a new connection, while HTTP/1.1 keep-alive connections reuse an open connection and amortize setup overhead; unlike pipelining, they do not require requests to be prepared in advance. Heroku Router 2.0 uses keep-alive connections to dynos by default, avoiding repeated slow-start costs on repeat requests and exposing more available bandwidth and lower latency. Ruby applications that previously disabled keep-alives are directed to upgrade to Puma 7.1.0 or newer, then update the bundle, inspect settings, and deploy. Keep-alives still depend on both Puma and router configuration, and the post notes that the router also supports HTTP/2 features.
Heroku Connect: Faster, More Reliable Data Sync with Salesforce CDC
Heroku Connect customers needing current Salesforce data for applications such as custom quoting have faced stale records because legacy synchronization could lag, with Opportunity Line Items among unsupported objects for Accelerated Polling. Heroku is rolling out support for Salesforce Change Data Capture (CDC), allowing Accelerated Polling to listen for changes instead of relying only on the Salesforce Streaming API. That change adds more than 170 Salesforce standard objects to Accelerated Polling, including Opportunity Line Items, Pricebook2, Asset, and OpportunityLineItem, so critical data can synchronize more quickly. To enable it, a Salesforce administrator turns on CDC for selected objects, after which the corresponding Heroku Connect mappings expose the “Uses Accelerated Polling” option.
Securing Salesforce Integrations with Heroku AppLink
Salesforce integrations commonly use Connected Apps or External Services, but long-lived OAuth tokens and public vendor endpoints can expose org data to replay and misuse. Heroku AppLink provides a managed bridge in which a service mesh admits requests only from explicitly connected Salesforce orgs, validates context, and exposes services as native Salesforce actions. For calls back to Salesforce, its SDK obtains short-lived, scoped credentials at runtime through user, user-plus, or authorized-user modes, avoiding refresh-token storage in vendor systems. The mesh uses the x-client-context header to convey org and user information, while the SDK keeps bearer credentials out of application code. The post describes setup commands for the AppLink add-on, service-mesh buildpack, External Service publication, and authorizations, concluding that AppLink improves governance, least privilege, and replay resistance.
Triage and Fix with Confidence: heroku run and OTel on Heroku Fir
Heroku Fir addresses production troubleshooting when a release causes failures, such as a background worker breaking after a database schema change, without requiring access to a live formation dyno. Its interactive heroku run command launches a dedicated one-off dyno with the application code and environment variables, relaying terminal input and output for tasks such as rake db:migrate; using it requires a public SSH key and a deployed application. The platform’s native OpenTelemetry (OTel) signals add router request-duration summaries and percentiles, represent heroku.router.connect and heroku.router.service as floats, and attach heroku.app.name to application signals. Together with service.name filtering for first-party services, these capabilities support identifying affected applications, applying isolated fixes, and verifying latency and errors through an observability platform.
Amazon Nova Models: Now Available on Heroku
Amazon Nova’s nova-pro and nova-lite models are now available through Heroku Managed Inference and Agents, giving applications a managed way to use them. The integration initially supports text-to-text workloads, while multimodal support is planned for a future release; both models support tool use and offer 300,000-token context windows. Nova-lite targets speed, low latency, and high-volume real-time applications at $0.06 per 1M input tokens and $0.24 output, whereas nova-pro targets accuracy and deep reasoning at $0.80 input and $3.20 output. Heroku provides an OpenAI-compatible /v1/chat/completions endpoint for chat and generation, plus /v1/agents/heroku for built-in Heroku tools and custom MCP tools, with provisioning available in US and EU regions through the add-on or CLI.
Heroku AI Expands Model Offering with OpenAI’s gpt-oss-120b
Heroku has made OpenAI’s open-weight gpt-oss-120b available through Heroku Managed Inference and Agents, giving developers an OpenAI-compatible chat completions API for compatible SDKs and frameworks. The model uses a Mixture-of-Experts architecture with 117 billion total parameters, activating 5.1 billion per token and enabling operation on a single 80GB GPU; its Apache 2.0 license permits inspection and fine-tuning. It is designed for agentic workflows involving instruction following, function calling, web searches, and Python execution, while reported benchmarks place it near or above several open-weight models and sometimes OpenAI o4-mini. The add-on provides deployment, secure application access, agent actions, monitoring, and scaling without infrastructure management, with pricing of $0.15 per million input tokens and $0.60 per million output tokens.
Building Data-Aware AI Applications with Heroku AI and LlamaIndex
Organizations building AI applications over private data must connect large language models with proprietary datasets without managing every infrastructure component. The post presents Heroku Managed Inference and Agents with LlamaIndex as a stack for retrieval-augmented generation (RAG), combining LlamaHub connectors, indexing, retrieval, and managed model services. The implementation provisions Heroku Postgres with pgvector, Claude 4 Sonnet for inference, and Cohere Embed Multilingual embeddings, then uses Python and LlamaIndex to load documents, store 1,024-dimensional vectors, and query them through an OpenAI-compatible embedding endpoint. PGVectorStore supplies the vector store, while Heroku environment variables provide service credentials and connection details. The result is a deployable pattern for querying private documents, with examples spanning financial analysis, insurance claims, customer support, and internal knowledge.
AppLink Fundamentals III: Building with AppLink – Development Flow and Language Choices
AppLink Fundamentals III describes how to build Salesforce extensions on Heroku, covering local testing, OpenAPI contract management, deployment workflows, and programming-language selection. For applications that receive Salesforce requests, the supplied invoke.sh script simulates production headers using Salesforce CLI data, can activate session-based permission sets, and accepts JSON payloads for testing; Pattern 1 applications that call Salesforce APIs do not require this special setup. The OpenAPI specification serves as the shared contract for endpoints and Salesforce consumers, with publish-time validation intended to catch misalignment. AppLink also supports Agentforce actions through x-sfdc agent extensions, enabling topics, publishing, input and display settings, privacy controls, and outputs such as generated PDFs in the automotive finance example. The comparison positions Apex for transaction-critical record updates and AppLink languages such as Node.js, Python, and Java for external integrations, intensive computation, elastic scaling, and reuse of existing code.
AppLink Fundamentals II: Advanced AppLink Integrations – Automation & AI
Heroku AppLink lets connected Heroku applications extend Salesforce through Data Cloud, Flow, Apex, and Agentforce, bringing external logic, real-time data processing, and automation into Salesforce orgs. It uses an OpenAPI YAML or JSON specification, including x-sfdc metadata for authentication and permissions, to generate strongly typed Apex classes, Flow External Service definitions, Agent Actions, and related Connected App and Permission Set configurations. Developers can invoke services synchronously or asynchronously from Apex, use operations as no-code Flow actions, and configure Agentforce to call endpoints for specialized processing; callbacks support longer-running work. AppLink uses User Mode authentication by default, while administrator-controlled Permission Sets can temporarily elevate access during execution without changing a user’s permanent permissions.
Topics they write about
All topics →Weekly digest
The best engineering reads, once a week.