Static Next.js export site for TeamStation benchmark content.
- Next.js App Router
output: "export"withtrailingSlash: true- Build flow:
out/export then copied tobuild/ - Domain target:
https://benchmarks.teamstation.dev
//benchmarks//benchmarks/matrix//benchmarks/[role]/[country]/[technology]/(500 static pages)/categories//categories/engineering-velocity//categories/cost-efficiency//categories/quality-reliability//methodology//about-data//faq//trust/
Source: src/data/benchmarks.json
Fields per record:
idtitlemetricscoresummarysourcemethodologylastUpdatedcategorytags
Generate 500 records:
npm run seed:500Build static export + SEO assets + build artifact:
npm run buildValidate code quality and content checks before release:
npm run validateStatic domain verification:
npm run verify:staticVoice enforcement verification:
npm run verify:humanizerRelease checklist command:
npm run release:staticAll user-facing text must be sourced through src/lib/siteCopy.ts and transformed by src/lib/writingHumanizer.ts.
release:static runs verify:humanizer and fails if app routes bypass this copy layer.
- Install Node.js 20+.
- Install dependencies:
npm install- Install recommended VS Code extensions when prompted (from
.vscode/extensions.json). - Run validation before building:
npm run validateFTP_HOST=your.droplet.host \
FTP_USER=your_user \
FTP_PASS=your_password \
FTP_PROTOCOL=sftp \
FTP_REMOTE_DIR=/var/www/benchmarks.teamstation.dev \
npm run deploy:ftpOptional vars:
FTP_PROTOCOL:ftp,ftps,sftp(defaultftp)FTP_PORT: defaults to21(22auto forsftpif left at21)LOCAL_DIR: defaultbuild
Static files committed in repo:
public/robots.txtpublic/sitemap.xml
Verification checks validate domain consistency across:
public/out/build/