Migrate from Netlify
Netlify's strength is static sites — Temps handles those the same way and adds full-stack app support alongside them. This guide covers converting your build config, redirects, and functions.
Build Settings
Netlify reads build config from netlify.toml. Temps auto-detects most frameworks, but you can override settings via the console or a temps.json file.
netlify.toml → Temps equivalents
| netlify.toml field | Temps equivalent |
|---|---|
[build] command | Build command in Project Settings |
[build] publish | Output directory in Project Settings |
[build] environment | Environment Variables in Project Settings |
[[redirects]] | _redirects file or Next.js rewrites |
[[headers]] | Framework-level headers or nginx config |
[functions] | Standard API routes (Node.js, Python, etc.) |
A typical netlify.toml for a static site:
[build]
command = "npm run build"
publish = "dist"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
The equivalent Temps setup: set Build command to npm run build and Output directory to dist. Temps serves static files automatically; the SPA fallback redirect is handled by default for single-page apps.
Redirects
If you use a _redirects file (Netlify's format), it works as-is for static sites deployed on Temps — no changes needed.
For framework-based apps (Next.js, Nuxt, etc.), keep redirects in your framework's config:
// next.config.ts
const nextConfig = {
async redirects() {
return [
{ source: "/old-path", destination: "/new-path", permanent: true },
];
},
};
Netlify Functions → API Routes
Netlify Functions are Lambda-style serverless functions. On Temps, use standard framework API routes instead — they run as long-lived processes rather than cold-starting per invocation.
A Netlify Function:
// netlify/functions/hello.js
exports.handler = async (event) => {
return { statusCode: 200, body: JSON.stringify({ message: "Hello" }) };
};
The equivalent Next.js API route:
// app/api/hello/route.ts
export async function GET() {
return Response.json({ message: "Hello" });
}
For non-Next.js projects, add an Express or Fastify server and Temps will run it as a container.
Forms
Netlify Forms captures form submissions without a backend. Temps doesn't include a managed forms service — use one of these instead:
- Formspree or Formspark — drop-in replacements, same embed pattern
- A Temps API route — store submissions in your own database
- Resend — send form data directly as email via API
Environment Variables
Export from Netlify → Site Settings → Environment Variables, then add them in Temps → Project → Settings → Environment Variables.
Netlify's context-specific variables (CONTEXT=production) don't have a direct equivalent — use Temps's per-environment variables instead (Production, Preview, Development each have separate scopes).
Deploy to Temps
# Install Temps on your server if not already done
curl -fsSL https://temps.sh/deploy.sh | bash
Then:
- Go to Projects → New Project in the Temps console
- Connect your Git repository
- Set build command and output directory if not auto-detected
- Add your environment variables
- Click Deploy
Cut Over DNS
- Go to Project → Settings → Domains → Add Domain
- Add the DNS records shown (A or CNAME)
- Temps provisions TLS automatically
Lower your DNS TTL to 60 seconds a few hours before cutting over to minimize the window where requests still hit Netlify.
Keep your Netlify site active for 48 hours post-migration as a fallback.