Framework guidesTested versions & results

Framework guide test results

On September 9, 2026, all 16 recipes across 11 frameworks passed a local build and a new cloud deployment with Lizard CLI 0.3.95. We followed the published setup, created a fresh project and service for each recipe, and uploaded source with lizard up. These results cover the versions and small test apps below.

The cloud run passed 100 checks of routes, APIs, and forms, plus 45 checks of linked JavaScript and CSS files. Django migrations, a database write and read, and the final Docusaurus and Hugo site URLs also passed.

Tested recipes

RecipeTested versionsPortCloud check
Next.js serverNext.js 16.3.4, React 19.2.83000Passed
Next.js static exportNext.js 16.3.4, React 19.2.880Passed
React with ViteReact 19.2.8, Vite 8.2.280Passed
Vue with ViteVue 3.5.42, Vue Router 5.3.1, Vite 8.2.280Passed
Astro staticAstro 7.3.180Passed
Astro Node serverAstro 7.3.1, Node adapter 11.1.53000Passed
Nuxt Node serverNuxt 4.5.23000Passed
Nuxt generateNuxt 4.5.280Passed
SvelteKit Node serverSvelteKit 2.70.3, Svelte 5.57.0, adapter-node 5.5.73000Passed
SvelteKit staticSvelteKit 2.70.3, Svelte 5.57.0, adapter-static 3.0.1080Passed
DocusaurusDocusaurus 3.10.280Passed
VitePress, docs rootVitePress 1.6.480Passed
VitePress, project rootVitePress 1.6.480Passed
FastAPIFastAPI 0.141.1, Uvicorn 0.52.48000Passed
DjangoDjango 6.1.1, Gunicorn 26.2.0, WhiteNoise 6.12.0, psycopg 3.3.58000Passed
HugoHugo 0.165.0 (extended)80Passed

JavaScript builds used Node 22; Python builds used Python 3.13. Uploads ran from macOS without COPYFILE_DISABLE. Package manifests and lockfiles pin the versions above. Container image tags can change independently of a package lockfile.

What we checked on September 9

  • Ran the documented local build and server commands in Linux containers, then ran lizard init, lizard add, and lizard up for each recipe. Read cloud build and runtime logs and checked the final service state and port.
  • Requested the public home page, an inner route, a real asset, a missing page, and a missing JavaScript path. Static content sites returned real 404s; React and Vue kept their documented SPA fallback. Both VitePress layouts returned the right content at clean URLs.
  • Checked request-time API responses, POST handlers, SvelteKit form results, and rejection of a form from an untrusted origin. Submitted the deployed Next.js Server Action form over HTTP using its generated action ID and checked the redirect and returned value.
  • Rebuilt Docusaurus and Hugo after setting the generated hostname in the config. Docusaurus canonical URLs and both sitemaps used the public host.
  • Ran Django migrations against Managed Postgres twice, wrote and read a test row, served collected static files, accepted a valid CSRF form, and rejected a form without its token.

Each recipe used a separate test project, with different names to keep the run isolated. Workspace, region, and JSON flags made the test context explicit. Build, start, and Dockerfile-path service overrides stayed unset. Only the Next.js static export, Nuxt generate, and Django recipes supplied the Dockerfiles documented in their guides. The Docusaurus, VitePress, Hugo, and SvelteKit Node tests included the published source examples.

Browser checks

The September 9 run confirmed a React button click in the browser. The browser connection then returned repeated timeouts during navigation and page reads, so this run does not claim a fresh browser pass for all 16 recipes. HTTP route and form checks passed independently.

The September 7 run included direct-route reloads, React interaction, Vue Router navigation, Next.js Server Actions, and SvelteKit form submissions in a browser. Those remain results from that earlier run.

Fixes since the first run

The September 7 run found missing service-creation steps, a Nuxt static preset mismatch, static routing defects, macOS archive metadata, failed-build exit codes, and port-change errors. The guides now include lizard add and the corrected Nuxt static setup.

The September 8 static-routing recheck passed without custom Dockerfiles for Astro static, SvelteKit static, Docusaurus, Hugo, and both VitePress layouts. New builds include those routing rules; existing images need a rebuild.

Lizard CLI 0.3.95 includes the archive and failed-build exit-code fixes. The September 9 production checks also verified service port changes and preservation of an explicit port during upload and rebuild. See known issues for the release notes and remaining limits.

Limits of these results

These checks cover source uploads and the documented modes. They do not establish support for every plugin, adapter, theme, framework version, GitHub deployment path, database recovery procedure, or multiple-replica workload. Django’s small test app still reports security warnings from check --deploy; it is not a complete production security setup. These tests do not measure search rankings or AI citations. Check your app’s own routes and data operations before release.

Updated