Your main just works
No Dockerfile, no YAML, no handler wrappers. If it runs with go run, it runs on Greyship.
Type grey deploy or push to GitHub. Every folder in cmd/ becomes its own service.
// cmd/api/main.go func main() { r := chi.NewRouter() r.Get("/", hello) addr := ":" + os.Getenv("PORT") http.ListenAndServe(addr, r) }
You get a URL with HTTPS. When traffic stops your app sleeps and costs nothing, then wakes on the next request.
No traffic, no bill. Idle apps sleep and wake on the next request, usually as a resume in milliseconds, not a cold start. Try it; this demo runs 10× faster.
No Dockerfile, no YAML, no handler wrappers. If it runs with go run, it runs on Greyship.
APIs, background workers and cron jobs from one repo. Every cmd/ folder becomes a service.
Apps stay awake for a grace window after the last request, so background work finishes.
Goroutines, heap, GC pauses and one-click pprof flame graphs in the dashboard.
Free subdomain, custom domains and HTTPS certificates handled for you.
Because every app is a single static Go binary, we can do things general platforms can't.