# Deploy *web apps.*

Write your code. Push it. We handle everything else.

Node.js. Python. Go. Ruby. It all just works.

## What you can deploy.

- **REST APIs.** Express. Flask. FastAPI. Gin. Any HTTP server works.
- **Full stack apps.** Next.js. Django. Laravel. Rails. Whatever framework you prefer.
- **Backend services.** Microservices. GraphQL. Auth services. You name it.

## It's really this simple.

1. **Push your code.** `git push tokay`. That's it. We detect your framework automatically.
2. **We prepare it.** Tokay installs your dependencies and packages your app for production. No Dockerfile, no build config to write.
3. **We run it.** Your app goes live on its own server, at a secure HTTPS URL. No config needed.
4. **You ship updates.** Every push is ready to deploy. Zero downtime. Always.

## Just write your code.

No special setup. Write your app like you normally would.

**Node.js + Express**

```javascript
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

app.get('/', (req, res) => res.send('Hello from Tokay'));
app.listen(port);
```

**Python + Flask**

```python
import os
from flask import Flask

app = Flask(__name__)

@app.get('/')
def hello():
    return 'Hello from Tokay'

if __name__ == '__main__':
    port = int(os.getenv('PORT', '5000'))
    app.run(host='0.0.0.0', port=port)
```

**Go**

```go
package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
)

func main() {
    port := os.Getenv("PORT")
    if port == "" {
        port = "8080"
    }

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, "Hello from Tokay")
    })
    log.Fatal(http.ListenAndServe(":"+port, nil))
}
```

That's it. Push this code and it runs.

## What we handle for you.

- **Automatic HTTPS.** SSL certificates, renewals, and secure connections. All automatic, including custom domains.
- **Zero downtime deploys.** The new version has to pass its health checks before it takes over. If something's off, it rolls back. Visitors never notice.
- **Logs and secrets.** Every log in one place, in real time. Set secrets in the dashboard and we inject them at runtime.

- [Read the web apps doc for URLs, custom domains, and rollback](/docs/web-apps)
- [See which languages and frameworks Tokay detects](/docs/languages-and-stacks)
