fix: restore homepage routing by building on Vercel - #32
Merged
Conversation
The v0.10.0 deploy left / returning 404 while the homepage was served at /index. The build artifact was correct (out/index.html was emitted), but the routing config generated by the local prebuilt path never bound index.html to the site root. Pin the framework to nextjs via vercel.json and deploy from source so Vercel's own Next.js pipeline generates the routing config, instead of uploading a prebuilt output. Also add workflow_dispatch so production can be redeployed without an empty commit. 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.
Problem
Production is serving 404 at
/while the homepage is live at/index:/404.html)/index/privacyThe v0.10.0 deploy (#31) succeeded and the artifact is correct — I rebuilt
87c4eaelocally and it emitsout/index.htmlat exactly 74,907 bytes andout/404.htmlat exactly 12,299 bytes, matching the byte counts served in production. Nothing is missing from the build.The failure is in the routing config:
index.htmlgot bound to/indexinstead of the site root, so/falls through to404.html. This is Vercel-side, not the reverse proxy in front ofecash.love— the aliasecash-app-site.vercel.appreproduces it directly withserver: Verceland no nginx in the chain.Fix
vercel.jsonpins"framework": "nextjs", so the preset is set from the repo rather than depending on dashboard project settings.vercel buildstep and the--prebuiltflag so Vercel's own Next.js pipeline generates the routing config. This is the equivalent of clicking "Redeploy" in the dashboard.workflow_dispatch:added so production can be redeployed without an empty commit (the repo currently does this via chore: trigger redeploy for v0.3.0 Ecash App release #16, chore: v0.3.1 release, trigger redeploy #17, chore: bump to trigger redeploy for v0.4.0 #18, chore: trigger v0.5.0 release #20).Verification
The preview build for this branch passed, confirming
vercel.jsondoesn't break the build. Preview deployments are SSO-gated, so the routing change itself can only be confirmed once this is onmain. Post-merge check:Expect
200; it is404today.Note the production workflow's source-side deploy path has not run before, so the merge is its first execution. If it fails, the current deployment stays on the alias — the failure mode is "still broken," not "newly broken."
🤖 Generated with Claude Code