Migrate from Netlify

Netlify handles 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 so you can migrate in one pass.


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 fieldTemps equivalent
[build] commandBuild command in Project Settings
[build] publishOutput directory in Project Settings
[build] environmentEnvironment 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

Add environment variables

  1. 1

    In Netlify, open Site Settings then Environment Variables and export or copy the variables.

  2. 2

    In Temps, open Project then Settings then Environment Variables and paste them in.

  3. 3

    Remove or replace Netlify-specific variables (CONTEXT, DEPLOY_URL, NETLIFY) using their Temps equivalents.

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

Create and deploy the project

  1. 1

    Install Temps if you have not already: curl -fsSL https://temps.sh/deploy.sh | bash

  2. 2

    Go to Projects then New Project in the Temps console.

  3. 3

    Connect your Git repository.

  4. 4

    Set build command and output directory if not auto-detected.

  5. 5

    Add your environment variables.

  6. 6

    Click Deploy.

    Checkpoint: Wait until the deployment completes and the app responds at its Temps preview URL before cutting over DNS.

# Install Temps on your server if not already done
curl -fsSL https://temps.sh/deploy.sh | bash

Then:

  1. Go to Projects → New Project in the Temps console
  2. Connect your Git repository
  3. Set build command and output directory if not auto-detected
  4. Add your environment variables
  5. Click Deploy

Cut over DNS

Add a custom domain and cut over DNS

  1. 1

    Find your numeric project ID with: bunx @temps-sdk/cli projects show -p my-app --json (look for the id field).

  2. 2

    Confirm your app works at the Temps preview URL before touching DNS.

    Checkpoint: Open the preview URL and run your test suite first.

  3. 3

    Go to Project then Settings then Domains then Add Domain.

  4. 4

    Add the DNS records shown (A or CNAME) at your DNS provider.

  5. 5

    Temps provisions TLS automatically.

    Checkpoint: Keep your Netlify site active for 48 hours post-migration as a fallback in case you need to roll back.

  1. Go to Project → Settings → Domains → Add Domain
  2. Add the DNS records shown (A or CNAME)
  3. Temps provisions TLS automatically

Keep your Netlify site active for 48 hours post-migration as a fallback. For framework and runtime support details, see supported frameworks.

Was this page helpful?