Host your own app
Already have an app in a GitHub repository? startupjs.ai can host it. A BYO ("bring your own") project runs your code in its own container, with everything the platform gives AI-built sites: a something.startupjs.ai address, your own domain with automatic certificates, and one-click deploys with useful failure diagnostics.
This page is for people comfortable with a repo and a Dockerfile — or whose connected AI is.
The contract
Your app needs to fit four rules:
- A
Dockerfileat the repository root — the platform builds and runs exactly what it describes. - Listen on port 3000 — that's where web traffic arrives.
- Keep data under
/db— a persistent disk is mounted there and survives deploys and restarts (an SQLite file is the classic fit). Anything written elsewhere is gone on the next deploy. - Configure via environment variables — set them on the project's Environment variables section; they're stored encrypted and injected at run time.
Setting up
- New project on the dashboard → choose Host your own app. (BYO projects are available on paid plans.)
- The project page shows a deploy key — a public key you add to your GitHub repository (repo → Settings → Deploy keys, read-only is fine). This is how the platform fetches your code; no GitHub account linking, no broad permissions.
- Enter the repository's SSH address and branch in the GitHub repository section.
- Add any environment variables your app needs.
- Press Deploy.
The deploy loop
Each deploy fetches your branch, checks the contract, builds the image, and swaps it in only if the new version starts and answers — a broken build never replaces a working site.
When a deploy fails, you get two things: your app's own recent log output (the actual crash, e.g. a missing environment variable), and a ready-to-paste fix prompt — a description of the failure written for an AI coding assistant. Paste it into your AI, apply the fix, push, deploy again. With a connected AI, the whole loop — including reading the diagnosis — runs from your AI directly.
How BYO hosting behaves
- Always on. Unlike AI-built sites (which nap when idle), your container keeps running.
- Bounded. The project's compute units set its memory and disk; disk warnings appear on the dashboard before anything is enforced.
- Self-contained. Your container gets no special access to anything of startupjs.ai's — it's your app, in its own box, behind the platform's front door.
What BYO is not
There's no AI Builder for a BYO project — the platform doesn't understand or modify your code; it builds, runs and routes it. Deploys are manual (press the button or ask your connected AI); pushing to GitHub does not auto-deploy. And your app's content is whatever your app does — none of the site-building docs apply inside it.