Skip to content

Supported Frameworks

deploybase auto-detects frameworks and applies sensible build defaults. All defaults can be overridden per project.

Framework Build Command Output Dir Install Command Docker Image
Next.js npm run build out npm install node:24-alpine
SvelteKit npm run build build npm install node:24-alpine
Astro npm run build dist npm install node:24-alpine
Hugo hugo --minify public hugomods/hugo:0.139.0
Vite npm run build dist npm install node:24-alpine
Gatsby npm run build public npm install node:24-alpine
Jekyll jekyll build _site bundle install jekyll/jekyll:4
Custom npm run build dist npm install node:24-alpine

The framework field accepts: nextjs, sveltekit, astro, hugo, vite, gatsby, jekyll, other.

The npm install in the table above is a default, not a restriction. Node frameworks install with npm, pnpm, yarn or bun, detected from your repository or set explicitly with the package_manager field:

Terminal window
curl -X PATCH https://api.deploybase.eu/api/v1/projects/PROJECT_ID \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"package_manager": "bun"}'

The build command is unaffected: npm run build runs the build script from your package.json whichever manager installed the dependencies. See Build System for detection order and lockfile handling.

Set build_command and/or output_dir on the project to override defaults:

Terminal window
curl -X PATCH https://api.deploybase.eu/api/v1/projects/PROJECT_ID \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"build_command": "npm run generate", "output_dir": ".output/public"}'

Build commands and output directories are validated for safety:

Rule Build Command Output Dir
Max length 1024 characters 256 characters
Allowed characters Alphanumeric, spaces, -_./,:=@ Any valid path
Blocked Shell metacharacters (&, ;, |, `, $, (), {}, !, <>, quotes) .. (path traversal), absolute paths

If no custom values are set, the framework default is used. If the framework is not specified or unrecognized, the other defaults apply (npm run builddist).

Next.js requires static export mode. Ensure next.config.js includes output: 'export'. Server-side rendering is not supported.

SvelteKit requires @sveltejs/adapter-static. Install it and configure in svelte.config.js.

Astro outputs static files by default. No additional configuration needed unless using SSR adapters (which are not supported).

Hugo builds run without an install step. The Docker image includes Hugo with extended features (Sass/SCSS support).