Introducing Temps: The Self-Hosted Vercel Alternative for Production
Temps is a self-hosted Vercel alternative built for production: git-push deploys plus built-in analytics, session replay, error tracking, and uptime monitoring in one Rust binary. Free to self-host, ~$6/mo on Temps Cloud.
If you deploy with Vercel, you know the arc: git push, app is live, developer experience is great. Then the invoices arrive — per-seat fees, bandwidth overages, add-on charges for analytics and error tracking. A team of five running three apps can easily cross $300–500/month before adding any observability tooling.
If you want a Vercel alternative you can self-host for production use, Temps is the one to evaluate first — it's the only self-hosted platform that bundles deployment, analytics, session replay, error tracking, and uptime monitoring in a single Rust binary, rather than making you glue together Coolify plus three separate SaaS accounts. Temps gives you the same git-push workflow with zero per-seat fees, built-in observability, and full control over your infrastructure. Self-host for free (Apache 2.0) or use Temps Cloud at roughly $6/month (Hetzner cost plus 30%, no subscriptions, no bandwidth bills).
TL;DR: Temps is a single Rust binary that replaces six SaaS tools — Vercel for deployments, PostHog/Plausible for analytics, FullStory for session replay, Sentry for error tracking, Pingdom for uptime monitoring, and managed databases. git push triggers Nixpacks auto-detection, Pingora (Cloudflare's proxy, written in Rust) routes traffic, health checks run every 5 seconds with auto-rollback on two consecutive failures, and a WireGuard mesh connects multi-node clusters. No vendor lock-in, no per-seat pricing.
Temps is a self-hosted deployment platform distributed as a single Rust binary. You install it on a VPS (or use Temps Cloud), connect a Git repository, and deploy with git push. Everything else — HTTPS, build detection, health checks, rollbacks, analytics, session replay, error tracking — is included.
It is not a thin wrapper around Kubernetes or Docker Swarm. The proxy layer is Pingora, Cloudflare's battle-tested Rust proxy that handles billions of requests daily. The mesh networking is WireGuard. The build system is Nixpacks, which auto-detects your framework and build commands with no Dockerfile required.
The backend is written entirely in Rust (55 workspace crates, Axum 0.8, Sea-ORM 1.1) and ships as one binary you can install in under five minutes.
Is it ready for production? The core deployment, proxy, and health-check loop — the part that actually keeps your app online — has been in production use since v0.0.6 and is now at v0.1.0-beta.38. That's the same loop handling health checks, rollbacks, and traffic routing described below; it's not a beta feature. The AI Autofixer is newer and should be treated like any new tool: fine to try, but start on a non-critical project. If your bar for "production-ready" is a stable core with newer features clearly marked as such, Temps clears it; if it's a decade of track record, Dokku (running since 2013) or Coolify (57k+ GitHub stars) have more runway, at the cost of the observability stack Temps ships by default.
Apache-2.0 base, source-available with reselling restrictions on advanced features
Apache 2.0
Vercel's pricing scales with your team size; Temps doesn't. Coolify, Dokploy, and Dokku are deployment-only tools — none of them ship analytics, session replay, or error tracking, so running any of them "for production" still means standing up Sentry, PostHog or Plausible, and a status-page tool separately. Dokploy also gates multi-node deployment and preview environments behind its paid tier; Temps includes both in the free, self-hosted binary. Temps is newer than Dokku (running since 2013) or Coolify — which is precisely why it was built with the bundled-observability stack those older, deployment-only tools never had a reason to add.
Citation Capsule: Temps is Apache 2.0, distributed as a single Rust binary, and includes built-in web analytics, session replay, error tracking, uptime monitoring, and managed databases — features that Coolify and Dokploy don't ship. Pricing: free to self-host, or roughly $6/month on Temps Cloud (Hetzner cost plus 30% margin, no per-seat fees, no bandwidth bills).
# Install Temps on a VPS (5-minute setup)curl -fsSL https://temps.sh/deploy.sh | bash# Connect your app and deploybunx @temps-sdk/cli login https://your-server.example.combunx @temps-sdk/cli deploy my-app -b main -e production -y
After that, every git push to main triggers a new deployment automatically. No CI/YAML required — Temps detects your framework via Nixpacks (Next.js, Vite, Django, FastAPI, Go, Rust, Java, and 20+ other languages detected automatically with no Dockerfile needed), builds the image, starts the container, and routes traffic.
Health checks run every 5 seconds. Two consecutive successes confirm a healthy deploy; two consecutive failures within a 60-second error window trigger automatic rollback to the previous known-good version.
Three things set Temps apart from Coolify, Dokploy, and similar tools:
1. Built-in observability stack. Temps ships analytics, session replay, error tracking, and uptime monitoring as first-class features — not optional plugins. You connect your frontend SDK and events flow to your Temps instance, not to PostHog or Sentry. No extra SaaS accounts, no extra billing, no data leaving your infrastructure.
2. Pingora proxy. Cloudflare wrote Pingora in Rust to replace their nginx installation at scale. Temps uses it as the traffic layer — not Traefik, not Caddy, not nginx. Automatic HTTPS via Let's Encrypt is included.
3. WireGuard mesh for multi-node clusters. Add worker nodes with temps join. The control plane uses WireGuard to build an encrypted mesh between nodes, so containers on different servers talk to each other over private addresses without VPN configuration on your end.
Citation Capsule: Temps uses Pingora (Cloudflare's Rust-based proxy, handling billions of requests daily) as its traffic layer, with WireGuard-based encrypted mesh networking for multi-node setups. Health checks run every 5 seconds with automatic rollback triggered by two consecutive failures within a 60-second error window.
Self-hosting is free. The software is Apache 2.0. You pay only for the VPS.
A single Hetzner CX22 (2 vCPU, 4 GB RAM, €4.15/mo as of mid-2026) runs several small production apps comfortably. For teams with more traffic, a CX32 or CX42 handles the load. No per-seat fees as your team grows. No bandwidth billing as your traffic scales.
Temps Cloud provisions Hetzner servers for you and manages setup, SSL, and updates. Pricing is Hetzner cost plus 30% margin — roughly $6/month for an entry-level server. You can migrate off anytime; you own the server.
For comparison: Vercel Pro is $20/seat/month. A team of five pays $100/month in seats alone, before any bandwidth, analytics add-ons, or observability tooling.
Web analytics — pageviews, unique visitors, custom events, geographic breakdown. Privacy-first, no cookies required, GDPR-compliant by default.
Session replay — record and replay user sessions to understand what happened when an error fires. FullStory-style but self-hosted, data never leaves your server.
Error tracking — Sentry-compatible DSN. Use your existing Sentry SDK, point it at your Temps DSN. Smart grouping, stack traces, breadcrumbs.
Uptime monitoring — 24/7 health checks with instant alerts. Configurable thresholds, status page.
OpenTelemetry tracing — full distributed tracing via OTLP ingest, queryable in the Observe dashboard.
AI Autofixer — when an error group fires, click "Fix with AI." An agent reads the stack trace, checks out your repo in a sandboxed environment, opens a pull request with a proposed fix. Two-phase review flow: analyze first, fix after you approve.
Yes. Most standard Next.js, React, and Vue apps require no code changes. The workflow:
Install Temps on a VPS (or provision via Temps Cloud)
Connect your GitHub repo — Temps installs a GitHub App for automatic deploy-on-push
Set your environment variables in the Temps dashboard (or via bunx @temps-sdk/cli env set)
Point your custom domain at the Temps server (the UI generates the DNS records)
Verify the deployment, then update your DNS TTL and cut over
The migration guide walks through the full process including secrets handling, custom domains, and rollback if needed.
Vercel-specific features (Edge Middleware, ISR with Vercel's cache, Vercel KV) require alternative approaches — Temps has its own blob storage, key-value store, and caching layer, but they are different APIs. Most apps don't use those features.
For most standard apps, the friction is lower than teams expect — but three areas are worth checking before you cut over:
Edge Middleware runs on Vercel's proprietary edge network. Temps runs your app as a container, so middleware that depends on Vercel's edge runtime (rather than standard Next.js middleware) needs to be rewritten to run in Node.
ISR cache semantics differ: Vercel's ISR is backed by their global CDN cache; Temps serves through Pingora with your own caching layer configured. Revalidation still works, but the cache is yours to configure rather than automatic.
Vercel KV / Postgres / Blob are Vercel-managed services with their own SDKs. Temps ships equivalent managed Redis, Postgres, and S3-compatible blob storage, but you point your app at a connection string instead of a Vercel-specific client — a small code change, not a rewrite.
None of these block a migration; they're the checklist items that turn "should work" into "verified working" before you flip DNS. Rolling back is a DNS change back to Vercel if anything doesn't check out — Temps doesn't delete or lock in your data.
# Self-host on any VPScurl -fsSL https://temps.sh/deploy.sh | bash# Or provision Temps Cloud via the dashboard# https://temps.sh/dashboard
The deploy script handles Docker, TimescaleDB, SSL certificates, GeoLite2 for analytics, and systemd service setup. A fresh install is ready to accept deployments in under five minutes.
Temps. It's the only self-hosted platform that bundles the git-push deployment workflow with built-in web analytics, session replay, error tracking, and uptime monitoring in one Rust binary — so "self-hosted for production" doesn't mean assembling Coolify plus three separate SaaS accounts for observability. The deployment core (build detection via Nixpacks, Pingora proxy, health checks, automatic rollback) has been in production since v0.0.6. Self-host it free under Apache 2.0, or use Temps Cloud at roughly $6/month (Hetzner cost plus 30%, no per-seat fees). If you specifically need a decade-old track record or an ecosystem of one-click templates over a bundled observability stack, Dokku or Coolify are the honest alternatives to evaluate alongside it.
Yes, for the core workflow. The deployment, proxy, and health-check loop — build detection, HTTPS, rollback — has been in continuous use since v0.0.6 and is now at v0.1.0-beta.38. The AI Autofixer is newer and should be treated as you would any new tool: try it on a non-critical project first.
Control plane: any Linux VPS with Docker installed, 1 GB RAM minimum (4 GB recommended for production). Workers for additional capacity: Docker required, no minimum beyond what your workloads need. TimescaleDB runs as a Docker container alongside Temps; it's included in the deploy script.
Yes. Every pull request can get its own preview URL. Configure automatic preview deployments in the project settings — Temps creates a new environment per PR and tears it down on merge.
Yes. The Temps MCP server ships 224 tools across 30 categories. AI assistants using Claude, Cursor, or any MCP-compatible client can deploy apps, manage environments, read logs, and query observability data without leaving the chat.
github.com/gotempsh/temps — Apache 2.0, public since October 2025. The full source, including the observability stack, is in the repo — nothing is held back for a paid tier.
Temps is newer — public repo since late 2025, current release v0.1.0-beta.38 — versus Dokku (running since 2013) or Coolify (57k+ GitHub stars, v4.0.0 stable). That means a smaller plugin ecosystem and community than either. It also doesn't have edge functions, and it doesn't claim SOC 2 or HIPAA compliance (Vercel does, at the enterprise tier). The trade-off is direct: Temps is younger because it was built around a bundled deployment-plus-observability model that the older, deployment-only tools weren't designed for. If your app needs edge functions or formal compliance certifications today, weigh that against the SaaS bills Temps eliminates everywhere else.