# Framework-starters: Next.js, Nuxt, SvelteKit en Astro

> Wat de draaiende starter is, hoe je hem vervangt vanuit git en welk startcommando elk framework nodig heeft.

Source: https://veldhost.eu/nl/docs/framework-starters

Next.js, Nuxt, SvelteKit of Astro gekozen? Je site is geleverd met de minimale starter van het framework zelf, gebouwd en draaiend op de Node.js-runtime — een plaatshouder die bewijst dat de runtime werkt en die je vervangt door je eigen code.

## Wat er wordt geïnstalleerd

- De officiële scaffolder (vastgepind: `create-next-app`, `nuxi init`, `sv create`, `create-astro`) niet-interactief uitgevoerd in de codemap van je site, gevolgd door `npm install` en de productiebuild, in je container. Geen git-repository, geen voorbeelddata behalve de welkomstpagina van het sjabloon.
- Een `start`-script in `package.json` dat luistert op de `PORT` die wij de app geven — hetzelfde commando dat een latere deploy gebruikt.
- Waar het framework een adapter nodig heeft om als server te draaien, is die aangesloten: SvelteKit krijgt `@sveltejs/adapter-node` (met `ORIGIN` en proxy-headers in `.env`), Astro krijgt `@astrojs/node` in standalone-modus met `output: 'server'`.

## Vervangen door je eigen code

1. Push je project naar GitHub, GitLab of veldhost Git en koppel het op het tabblad **Deploy** (zie [Deployen vanuit Git](https://veldhost.eu/nl/docs/deploy-from-git)). Elke push draait `npm ci`, je buildcommando en een herstart.
2. Houd een `start`-script dat luistert op `process.env.PORT` (3000 in de container) — de tabel hieronder toont wat de starter gebruikt. Stel een ander commando in op de Node-kaart als je project dat vraagt.
3. Bestanden in `public/` serveert nginx rechtstreeks vanaf schijf; al het andere gaat via de proxy naar je app, WebSockets inbegrepen. `X-Forwarded-Proto` vertelt je app dat hij achter https draait.

| Framework | Build | Startcommando | Opmerkingen |
| --- | --- | --- | --- |
| Next.js | `next build` | `next start` | Respecteert `PORT`. `output: 'standalone'` werkt ook, met `node .next/standalone/server.js`. |
| Nuxt | `nuxt build` | `node .output/server/index.mjs` | Nitro respecteert `PORT` en `HOST`. |
| SvelteKit | `vite build` met `@sveltejs/adapter-node` | `node --env-file=.env build` | `.env` bevat `ORIGIN`, zodat form actions je https-adres accepteren. |
| Astro | `astro build` met `@astrojs/node` (standalone) | `node ./dist/server/entry.mjs` | Vraagt `output: 'server'` (of per pagina `prerender = false`) voor rendering op aanvraag; een volledig statische Astro-site is beter af als statische site. |

## Bijwerken en geheugen

- Framework-updates zijn gewone dependency-updates in je repository; het deployen daarvan bouwt in onze buildcontainer, niet in het geheugen van je site.
- De eerste installatie bouwt in je container met een tijdelijk verhoogde geheugenlimiet; een Starter-container (768 MB) draait elk van deze starters daarna prima.
