Deploy web apps from a Git branch

Deploy a web app from the Git branch that you connect, with the build steps for the framework that Runtime detects. Runtime deploys every later push and scales the app with its traffic, down to zero instances while the app is idle.

Framework detection, scaling, and TLS for every app that you deploy

To detect the framework, Runtime parses the config files in the branch that you connect, and then it deploys the build to a live URL. After the deploy, Runtime scales the app with its request traffic and serves it over TLS on its .conjoin.app subdomain and on any custom domain that you add.

Builds, domains, scaling, and rollbacks for each hosted app

Git-based deployments

Connect a repository on GitHub, GitLab, or Bitbucket and choose the branch to deploy. Runtime redeploys the app each time you push a commit to that branch.

Automatic framework detection

Runtime identifies the framework from your package.json, requirements.txt, or equivalent file. For each framework that Runtime detects, it chooses the build and start commands itself, so you can leave the build configuration out of your repository.

Traffic-based auto-scaling

Runtime sets the number of instances from your app's request traffic, adding instances as traffic increases and removing them as it falls, so you have no scaling rules to write.

Scale-to-zero

While an app has no traffic, Runtime keeps it at zero instances, so Conjoin bills no compute for it. When traffic resumes, Runtime serves the first request after a cold start of under 500ms.

Custom domains with TLS

Once you add a domain and point its DNS records at the app, Runtime provisions a TLS certificate for that domain. Every app also has a default subdomain on .conjoin.app.

Health-checked rollouts

Runtime starts each new version alongside the current one and moves traffic to it once the new version passes its health checks. To roll back, make one API call that names any earlier deployment.

< 500ms
Cold start

From zero instances to serving the first request

10+
Frameworks

Detected from the files in your project

1 API call
To roll back

Moves traffic back to any earlier deployment

Build faster with solutions designed for real-world needs

Deploy internal tools and dashboards from a connected repository

When you deploy the dashboard's repository, Runtime returns a .conjoin.app URL for it. From then on, Runtime builds every push, scales the dashboard with its traffic, and serves it on any custom domain that you point at it.

Impact

The repository is the only part of the dashboard that you maintain, since Runtime performs the builds and the scaling and issues the TLS certificate.

Keep a staging environment at zero instances between QA rounds

Deploy the staging branch with scale-to-zero enabled. Runtime scales the environment down to zero instances once QA traffic stops and starts an instance again when a developer next opens the URL.

Impact

Conjoin bills compute for the staging environment only while an instance serves requests, so the hours between QA rounds add no compute charge.

Deploy an app on any detected framework with no deployment file

Push an app whose framework appears on the supported list. At deploy time, Runtime selects the build command and start script for that framework from your project files.

Impact

Runtime builds and starts the app from its code and package manifest, so you have no deployment file to write for each framework.

Keep users on the current version until the new one is healthy

During a deploy, the current version serves every request until the new version passes its health checks, after which Runtime moves traffic over.

Impact

When a new build crashes on start, Runtime keeps sending your users to the current version, so you have no emergency rollback to perform.

Build your next app on Conjoin

Conjoin will open with a free Build tier, while the pricing page already lists the launch prices for Pro and Business. If you tell us what you're building, we'll talk you through early access.