wess.devdocs

Deploying with git

wess.dev is a git remote. Add it to your repo once, then every git push builds and ships your app — you watch the whole thing happen in your terminal.

Connect your repo

your project
wess git myapp
# or by hand:
git remote add wess https://wess.dev/git/myapp.git

The app must exist first (wess create myapp). When git asks for credentials, use your wess.dev email and password.

Add a Dockerfile

Builds are driven by a Dockerfile at the root of your repo. It can be as small as this:

Dockerfile
FROM oven/bun:alpine
WORKDIR /app
COPY . .
RUN bun install
CMD ["bun", "server.ts"]

Any language works — if it builds in Docker, it runs on wess.dev.

Listen on PORT

Your app should listen on the PORT environment variable (we set it for you, default 8080). In Bun, that's:

server.ts
Bun.serve({ port: Number(process.env.PORT ?? 8080), fetch })

Push

terminal
git push wess main

What you'll see, live:

git push output
-----> building myapp from main (a1b2c3d4e5)
-----> docker build → wess.dev/myapp:a1b2c3d4e5
       ...build output...
-----> importing image into the platform
-----> deploying
-----> ✓ myapp is live
       https://myapp.wess.dev

Redeploys

Every push deploys fresh: a new machine starts with your new build, traffic moves to it, and the old machine is retired. Your app's URL never changes.

Pushes are rejected politely if the repo has no Dockerfile — add one and push again. Branch doesn't matter: whatever branch you push, its latest commit is what deploys.