Bun · 1.2.23
Bun hosting, 24/7
Bun is runtime, package manager and TypeScript executor in the same binary — so the build has fewer steps. The platform runs bun install while it builds the image and executes the command declared in START.
Who designed Bun
Jarred Sumner announced Bun in 2021 and the first public release came in 2022: a JavaScript and TypeScript runtime written in Zig, using Apple’s JavaScriptCore, with a bundler and package manager in the same executable. The thesis was to stop chaining Node, npm, a bundler and tsc for a short loop. A TypeScript file runs without a separate compiler — the language family is JavaScript, with a different engine.

Jarred Sumner
X · @jarredsumner
One executable instead of five
Runtime, bundler and package installer in the same binary. The purpose was the short loop: stop chaining Node, npm, a bundler and tsc for a script that changes every week.
Built to start fast
Zig and JavaScriptCore instead of the classic Node stack. The difference Sumner sold was time until the process listens on the port, not a new language.
TypeScript in the same engine
A .ts file runs without a separate compiler. It is still the JavaScript family — another runtime, the same idiom for the page and the server.
What the platform does for a Bun project
One binary in the container: no separate tsc, no npm alongside it, no mandatory bundling step.
bun install at build time
Dependencies are resolved while the image is built, with your repository lockfile respected. Fewer build steps means more room inside the 5-minute ceiling every deploy has here.
TypeScript with no build step
MAIN=index.ts and START=bun run index.ts are enough: the runtime itself executes .ts and .tsx. There is no dist to generate, no tsconfig required to start, and no separate executor to install.
Current version, nothing to configure
1.2.23 is both the recommended and the latest. Without VERSION in vertracloud.config the app uses the recommended one; to pin it, declare VERSION=1.2.23.
Auto-restart with a brake
A process that crashes is restarted on its own, on every plan: a rejected promise with no catch does not take the service down. If it breaks 5 times in 10 minutes, auto-restart is disabled for 24 hours, and the last stack trace is kept in the crash log.
What people run in Bun here
The gain shows up where the cycle is short: a script that changes every week, a small API, a worker you redeploy straight from the editor.
APIs with Bun.serve, Elysia and Hono
Publish the application and it gets a vertraweb.app subdomain with TLS. Bun.serve reports the port it opened: check that it is the one declared in PORT and that the host is 0.0.0.0, because on localhost external requests time out.
Bots and background processes
discord.js runs on Bun as a process with no HTTP port. The token goes in the dashboard environment variables, never in a .env inside the zip.
Scripts and routines in TypeScript
A collector, a sync, a scheduled task: the .ts file is the entry point, with no intermediate step between what you edit and what runs in the container.
State and cache in a managed database
Create a Redis 7 or a PostgreSQL 17 in the dashboard and connect with the client Bun already ships. TLS is mandatory: certificate and password come ready from the dashboard, and the script keeps its state there between runs.
Available Bun versions
1.2.23 is both the recommended and the latest one. To pin it, declare VERSION in vertracloud.config.
| Version | vertracloud.config | Status |
|---|---|---|
| 1.2.23 | VERSION=1.2.23 | RecommendedLatest |
The whole configuration
vertracloud.config is an optional INI file at the project root. MAIN points at the TypeScript entry file; START is the runtime command; BUILD runs once per deploy before the app starts; VERSION picks the Bun; MEMORY sets the RAM ceiling.
NAME=minha-api
MAIN=index.ts
START=bun run index.ts
VERSION=1.2.23
MEMORY=512A plan for every stage of the project
Memory and storage change with the plan; the language does not. Compare what each plan unlocks and pick the one that fits the project today.
Compare plansAlso runs here
Same platform, same deploy, a different stack.
Frequently asked questions about Bun hosting
Five questions that show up on the first deploy of a Bun project.
Do I have to compile the TypeScript before deploying?
No. Bun runs .ts directly: point MAIN at the file and leave START as bun run index.ts. If your project already produces a bundled output, that works too — the build folder is not stripped from the zip.
The app crashes with Cannot find module. What happened?
The package is not in package.json dependencies — in devDependencies it is not installed at build time. Move the runtime dependency to dependencies and deploy again.
Can I ship node_modules in the zip to save time?
Do not. A native module compiled on your machine will not run in the container, and the platform compiles for Linux during the build. node_modules is also what inflates the package the most, and the zip limit is 100 MB.
The API starts, but the subdomain does not answer.
Two causes. The server has to listen on 0.0.0.0 at the port declared in PORT; and the application has to be published to the web, which requires 512 MB of RAM and is available from the Pro plan up.
Can I change the Bun version after deploying?
Bun currently runs on 1.2.23. When more versions join the catalog, change VERSION in vertracloud.config and deploy again: the image is rebuilt, bun install runs once more and the container restarts at the end of the process.
Deploy your Bun project today
Create an account, upload a zip with package.json and your .ts file, or connect your GitHub repository: bun install shows up line by line in the dashboard terminal.
Create account