docs(vercel-csr): name the precondition behind zero-config Fastify - #17
Open
DeyangChan wants to merge 1 commit into
Open
docs(vercel-csr): name the precondition behind zero-config Fastify#17DeyangChan wants to merge 1 commit into
DeyangChan wants to merge 1 commit into
Conversation
The Entrypoint section asserted that Vercel deploys Fastify with no configuration and told the reader not to export a handler or add a vercel.json. That holds only while Vercel's Git integration builds the project, which is the model infra.md mandates — detection runs on the push. A project that has left that model gets no detection: `vercel build --prebuilt` in CI builds from settings fetched by `vercel pull`, so the backend builds as a static site and the deploy stops at `No Output Directory named "public" found`. Observed in a project that had disabled Git deployments so its release could migrate the database before shipping code. Records the precondition, the escape hatch, and the trap in the escape hatch: restoring the vercel.json without restoring the handler export deploys a file that 404s every request, which reaches production instead of failing the build. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What
The
vercel-csrbackend appendix asserts that Vercel deploys Fastify with no configuration, and tells the reader not to export a handler or add anapps/backend/vercel.json. That is true — but only while Vercel's Git integration builds the project, which is the deployment modelinfra.mdmandates. Detection runs on the push.The section reads as unconditional, so it applies itself to projects that have left that model.
Why
Observed in a project that had disabled Git deployments (
git.deploymentEnabled.main = false) so its release could migrate Neon before the new code went live — something the Git integration cannot sequence. Deploys there runvercel pull→vercel build --prebuiltin CI, which builds from fetched project settings and performs no framework detection.Following this section, the backend's
buildsentry was removed andserver.jswas rewritten toapp.listen(...). The production deploy failed:The backend had been built as a static site. Nothing was promoted, so production stayed on the previous build — but the release was blocked until both halves were reverted together.
The change
Adds two paragraphs to the Entrypoint section:
vercel.jsonwithout restoring the handler export deploys a file exporting no handler, which 404s every request. That is worse than the failed build, because it reaches production before a health check catches it.No rule is reversed. Git integration stays the recommended model, and the guidance to restore it comes before the escape hatch.
Not changed
infra.md, the pack README anddeploy.yml.examplealready say the right thing — Git integration is the only normal path, and the example's header tells you to check the adopted pack's conflict register before copying it. The Entrypoint section was the one place that stated its conclusion without its condition.🤖 Generated with Claude Code