Skip to content

Commit d06c26f

Browse files
website: vercel project config
Created and linked the `fnstools` project under functionstore1s-projects. vercel.json loses its `//` comment block -- Vercel's schema rejects unknown keys outright, so the deploy failed schema verification. The rationale moved to the README, which is the only place it can live. .vercelignore is the load-bearing addition: the deploy root is website/, so the CLI never reads the repo-root .gitignore, and without it the upload carries node_modules -- 61 MB instead of 1.8 MB. It also drops tools/ (build and CMS scripts, never served) and .env.local, which the CLI writes on link with a VERCEL_OIDC_TOKEN inside. The CLI's own .gitignore and .vercel/ are ignored so neither the token nor per-machine link state can be committed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent d215a32 commit d06c26f

5 files changed

Lines changed: 41 additions & 17 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,6 @@ packaging/publish/
8181

8282
# website deps. website/docs/ IS committed -- Vercel serves it with no build step.
8383
website/node_modules/
84+
85+
# vercel CLI link state (per-machine)
86+
.vercel/

website/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.vercel
2+
.env*

website/.vercelignore

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# The deploy is a static upload of this directory — see vercel.json, which
2+
# sets an empty build and install command. Nothing here is needed at runtime
3+
# except the pages, assets and the search index under docs/.
4+
#
5+
# Without this file the CLI would ship node_modules (~60 MB, pagefind's
6+
# binaries included): the repo .gitignore covers it, but it lives at the repo
7+
# root and the deploy root is website/, so the CLI never reads it.
8+
9+
node_modules/
10+
package.json
11+
package-lock.json
12+
13+
# build + CMS tooling; never served
14+
tools/
15+
16+
# local scratch and CLI state. .env.local holds a VERCEL_OIDC_TOKEN the CLI
17+
# writes on link — git ignores it, and it has no business being uploaded.
18+
.DS_Store
19+
*.log
20+
.env*
21+
.vercel/

website/README.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,21 @@ video: "https://youtu.be/j43gZ0MB2xo"
143143

144144
## Deploying
145145

146-
Vercel project, **root directory `website`**. `vercel.json` declares
147-
`buildCommand` and `installCommand` as empty on purpose: `website/docs/` is
148-
generated and committed, so a deploy is a pure static upload. Without those,
149-
Vercel auto-detects the `build` script in `package.json` and runs pagefind at
150-
deploy time for nothing.
146+
Vercel project **`fnstools`**, root directory **`website`**.
147+
148+
`vercel.json` declares `buildCommand` and `installCommand` as empty on
149+
purpose: `website/docs/` is generated and committed, so a deploy is a pure
150+
static upload. Without those, Vercel auto-detects the `build` script in
151+
`package.json` and runs pagefind at deploy time for nothing. (The file
152+
cannot carry comments — Vercel's schema rejects unknown keys, `//`
153+
included.)
154+
155+
`.vercelignore` keeps `node_modules/` out of the upload: the repo
156+
`.gitignore` covers it, but it lives at the repo root while the deploy root
157+
is `website/`, so the CLI never reads it. That is the difference between a
158+
1.8 MB upload and a 61 MB one. It also excludes `tools/` (build and CMS
159+
scripts, never served) and `.env.local`, which the CLI writes on link with a
160+
`VERCEL_OIDC_TOKEN` in it.
151161

152162
To stand it up before this branch is merged, point the project at this branch
153163
as its production branch, then switch it to the real one after the merge.

website/vercel.json

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,11 @@
11
{
22
"$schema": "https://openapi.vercel.sh/vercel.json",
3-
4-
"//": [
5-
"Vercel project root directory must be `website`.",
6-
"",
7-
"Deploys are a pure static upload: website/docs/ is generated and",
8-
"committed, so there is nothing to build here. The empty build and",
9-
"install commands are load-bearing -- package.json has a `build`",
10-
"script, and without these Vercel auto-detects it and runs pagefind",
11-
"at deploy time for no reason. CI is where the build is verified."
12-
],
133
"framework": null,
144
"buildCommand": "",
155
"installCommand": "",
166
"outputDirectory": ".",
17-
187
"cleanUrls": true,
198
"trailingSlash": true,
20-
219
"headers": [
2210
{
2311
"source": "/docs/pagefind/(.*)",

0 commit comments

Comments
 (0)