You described an app to an AI, it wrote the code, and now it's sitting in a folder or a repo. The last mile — getting it onto the internet on a real URL — shouldn't be the hard part. With Ngris it isn't: push a repo or drop a folder and you're live on the edge, with no server to manage and no agent to run.
Push or drop — and you're live
There are two ways in. Connect a GitHub or GitLab repo and every push builds and ships automatically. Or upload a folder (or a .zip) straight from your machine. Either way the first successful build goes live on global HTTPS within seconds, with TLS provisioned for you.
curl -X POST https://api.ngris.com/v1/applications/quick-deploy \ -H "X-API-KEY: $NGRIS_API_KEY" \ -F "name=my-site" -F "file=@dist.zip" -F "wait=true"
That single call creates the app, uploads it, provisions the public endpoint, and returns the live URL.
Ngris builds it for you
You don't have to pre-build. Push your source and Ngris detects the framework — Vite, Next.js, Astro, SvelteKit, Nuxt, Gatsby, Angular, Hugo, Jekyll — and runs install + build in a locked-down, single-use sandbox: no network except your package registry, no credentials, read-only root, hard CPU/memory/time limits. Every build's log is captured and tails live, so when something breaks you see exactly why without leaving the page.
A preview URL for every deploy
Every ready deploy gets its own shareable, unguessable preview URL — independent of which version is live. Review a build, send it to a teammate, or check it on your phone before you promote it. Promoting or rolling back is an instant, atomic pointer flip: no rebuild, no downtime, no “redeploy and pray.”
Environment variables and secrets
Front-end builds need config — API URLs, publishable keys, feature flags. Add them per app and they're injected into the build with their exact names, so VITE_API_URL or NEXT_PUBLIC_TOKEN just works. Mark the sensitive ones as secrets and they're encrypted at rest and never shown again.
Need a backend and a database?
If your AI-coded app isn't just a front end, that's covered too: push a Go, Node, or Python backend (auto-detected) or any Dockerfile (a Next.js server included) and Ngris builds it in the same sandbox and runs it on the edge as a full-stack app — a long-running backend, not per-request serverless functions. A full-stack app can also add a managed, MySQL-compatible database (MariaDB) from its detail page: Ngris provisions a per-app schema and a least-privilege user, then injects the connection as DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD, and a mysql:// DATABASE_URL env var and redeploys — so your code just reads DATABASE_URL. It's MariaDB/MySQL only and a paid-plan feature.
The edge you already know
A deployed app is a first-class Ngris endpoint, which means everything else on the platform applies to it unchanged: a custom domain with automatic TLS, per-endpoint auth (OAuth, API keys, SSO), a Web Application Firewall, rate limits, and live traffic inspection. Your bandwidth counts against one unified monthly allowance — the same pool as your tunnels — so there's one platform and one bill, not a pile of add-ons.
Or let Iris drive
Because the whole flow is an API, Iris — the built-in AI assistant — can drive it from chat: “deploy this repo and put it behind Google login,” and it creates the app, connects the repo, and attaches the endpoint policies, showing you a confirmation before it touches anything.
Get started
Read the Static Apps guide or the Quick Deploy API reference, then ship your first app. It really is one push.