Teral

October 21, 2026

Teral is generally available: a Free plan, prepaid credit, the public v1 API, Usage and Limits pages, spend budgets, and better logs.

Teral is out of closed beta. Anyone can now sign up and deploy, no invite needed. Thank you to everyone who deployed, reported bugs and sent feedback during the beta. This entry covers everything that shipped since July 5.

New features

Free plan

Every workspace can now deploy without choosing a plan or adding a card. The Free plan includes $2 of usage every month, instances up to 1 vCPU and 1 GB, and 2 vCPU, 2 GB and 5 GB of storage across all instances. When the monthly credit is used up, apps stop instead of usage being billed, so a Free workspace never gets an invoice. The credit resets on the 1st of the month.

Paid plans start at $5 a month with Starter, followed by Pro ($25) and Business ($50). Each plan's price is included as usage credit. See pricing and Billing.

Prepaid credit

Free workspaces can top up prepaid credit to keep apps running past the monthly credit, without a subscription. Top-ups start at $10, the balance carries over, each purchase expires after 12 months, and the oldest credit is used first. Prepaid credit raises the spend cap only; Free's resource limits stay the same. When you move to a paid plan, the remaining balance becomes usage credit for your first billing period.

Public v1 API

The API now covers projects, apps, environments, deployments and domains, and you can set environment variables through it. Create a key under Settings → API Keys and manage Teral from your own scripts and CI. Client errors now return 404, 409 or 412 with a link to the matching error page instead of a generic 500. See the API reference.

Usage and Limits pages

Workspace settings have two new pages. Usage shows what each app consumes, with a usage explorer and an estimated bill for the current month. Limits shows your plan's resource limits and how much of them is allocated. Compute and API usage are also shown in the sidebar, and a deployment that fails because of a limit links straight to the Limits page. See Limits.

Spend budgets and alerts

Set a monthly spend budget under Settings → Billing. Teral emails you when spending reaches 50%, 75% and 100% of it. You can also choose to stop workloads at the budget: Teral then pauses all deployments in the workspace for the rest of the month, and visitors get a spend_limit_reached error. Raise or remove the budget and your deployments resume on their own. See Spend budget.

Explicit production environments

Every project now has a clearly marked production environment, separate from preview environments. See Environments.

Deploy a container image

When creating an app you can now choose a prebuilt container image instead of a GitHub repository. See Container images.

Updates

Better build and runtime logs

Build logs now show a line for every build step, in order, with stderr highlighted. Runtime and gateway logs have sharper filters and stable IDs, and an app's Logs and Requests now live in the sidebar.

Cleaner deployments list

Deployments fit on a single line, and branches with recent deployments are grouped under Active Branches.

Build path suggestions

The root directory and watch paths settings now suggest paths from your repository and flag paths that don't exist, which helps in monorepos.

Multi-line environment variables

Environment variables can now hold multi-line values, such as certificates and private keys, from the dashboard through to your running app.

Automatic TLS in new regions

Certificates for your domains are issued automatically when your app is deployed to a new region.

Region pickers and runtime settings

Regions are picked with a multi-select field, and the CPU and memory sliders in runtime settings follow your workspace's limits.

Fixes

  • The newest deployment now reliably stays live after a deploy.
  • Autoscaling now respects the maximum number of replicas when spreading instances.
  • Proxied requests now support full-duplex streams.
  • Generated domain names are capped at 63 characters per label, so long branch names no longer produce invalid domains.
  • Stuck or leaked build slots are recovered, so builds no longer queue forever.
  • Invalid API key permissions now come with an explanation of what is missing.
  • Disconnecting a repository now asks for confirmation first.
  • Fixed a login redirect loop and settings links that didn't navigate.
  • Sliders are now visible in dark mode and at low values.
Edit on GitHub

On this page