Vision
The path from "works on my machine" to "shipped to prod" is where most weekend projects die. Frameworks that make deploy a single command (Vercel, Fly Launch, Railway) own the entire small-team market. A self-hostable Go framework with the same DX is wide-open territory.
Proposal
`grit deploy ` configures + runs the deployment for the chosen target. Built-in providers:
- `dokploy` — generates the Dokploy app config, Dockerfiles, and Traefik labels (this is what rental-manager uses today, hand-rolled)
- `fly` — `fly.toml` + Postgres / Redis attachments + secrets sync
- `railway` — Railway CLI plumbing
- `docker-compose` — self-hosted on any VPS
- `kubernetes` — Helm chart for serious orgs
Each target generates only on first deploy; subsequent deploys are idempotent. Secrets are sourced from local `.env.production` or a configured vault (1Password CLI, Doppler, etc.).
Bonus: `grit deploy --preview` for ephemeral PR environments.
Why this is differentiating
The reason Vercel won is not the runtime — it's that `vercel` shipped sites in 30 seconds. Grit having that for full-stack Go + multi-client apps is a serious moat.
Acceptance
- A new app deploys to Dokploy with one command + zero manual Traefik file editing
- A PR triggers a preview deploy at `pr-123.preview..dev`
- Rolling back is `grit deploy rollback` — picks the previous build off the registry
Vision
The path from "works on my machine" to "shipped to prod" is where most weekend projects die. Frameworks that make deploy a single command (Vercel, Fly Launch, Railway) own the entire small-team market. A self-hostable Go framework with the same DX is wide-open territory.
Proposal
`grit deploy ` configures + runs the deployment for the chosen target. Built-in providers:
Each target generates only on first deploy; subsequent deploys are idempotent. Secrets are sourced from local `.env.production` or a configured vault (1Password CLI, Doppler, etc.).
Bonus: `grit deploy --preview` for ephemeral PR environments.
Why this is differentiating
The reason Vercel won is not the runtime — it's that `vercel` shipped sites in 30 seconds. Grit having that for full-stack Go + multi-client apps is a serious moat.
Acceptance