Skip to content

chore(infra): remove Vercel references - #120

Merged
catomean merged 2 commits into
mainfrom
chore/remove-vercel
Jul 28, 2026
Merged

chore(infra): remove Vercel references#120
catomean merged 2 commits into
mainfrom
chore/remove-vercel

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

Vercel is fully decommissioned; Botsmann runs self-hosted on the Hetzner box "bitbaum" behind Caddy (botsmann.orangecat.ch). This removes/repoints current-setup Vercel references.

Changed

  • CI/config: deploy.yml ("Deploy to Vercel") → renamed to ci.yml, Vercel CLI install + prod/preview deploy steps dropped, kept build/lint/test. Removed vercel.json and the Vercel-only scripts/deployment/deploy-monitor.sh. Dropped .vercel from .gitignore.
  • Docs: .claude/CLAUDE.md, README badge (botsmann.vercel.appbotsmann.orangecat.ch), docs/COMMANDS.md, docs/SHARED_CONTEXT.md — deploy/hosting text rewritten to the self-hosted box (.husky/pre-push → Hetzner deploy script).
  • Code: app/api/*/route.ts "(Vercel)" maxDuration comments neutralized (Next.js route-segment config; behavior unchanged); warmup cron comment reworded; app/demo/page.tsx tech-stack line → self-hosted.

Deploy decision

The old deploy.yml was the Vercel deploy pipeline (dead — real deploy is the .husky/pre-push hook → fleetcrown/scripts/hetzner/deploy.sh). Its build/lint/test steps are still valuable, so it's kept as CI-only under ci.yml; no working self-host deploy was removed.

Kept (intentional)

  • .husky/pre-commit secret-scan guardrail (VERCEL_OIDC_TOKEN pattern) and .husky/pre-push env -u VERCEL — protective, not a Vercel dependency.
  • app/knowledge/infrastructure/page.tsx — educational hosting-landscape comparison ("Vercel / Netlify / AWS"), not a claim Botsmann uses Vercel.
  • docs/archive/** — historical narrative.
  • executive-docs/** (whitepaper/investor/finance/ops) — left untouched: Vercel is woven into cost projections ($/mo tiers), rollback runbooks, and monitoring/DR procedures that can't be faithfully converted to self-host without inventing financial/operational numbers. Flagged as a separate docs task.

Notes

  • No VERCEL_* env reads exist in application source (only the husky guardrails above), so no runtime branches needed rewiring.
  • Typecheck: repo has no typecheck script; npx tsc --noEmit --skipLibCheck returns 1 error in tests/__tests__/lib/embeddings.test.ts (Set iteration under target: es5) — pre-existing and identical on main, in a file this PR does not touch. All changes here are comment/docs/config-only and add zero type errors.

🤖 Generated with Claude Code

catomean and others added 2 commits July 28, 2026 09:21
Botsmann now runs self-hosted on the Hetzner box "bitbaum" behind Caddy
(botsmann.orangecat.ch); Vercel is fully decommissioned.

- CI: rename the "Deploy to Vercel" workflow to a vendor-neutral CI workflow
  (build/lint/test only). Actual deploy runs from .husky/pre-push → Hetzner
  deploy script. Remove vercel.json and the Vercel-only deploy-monitor.sh.
- Docs: rewrite current-setup deploy/hosting text in .claude/CLAUDE.md,
  README badge, docs/COMMANDS.md and docs/SHARED_CONTEXT.md to the self-hosted
  box. Repoint the dead botsmann.vercel.app URL → botsmann.orangecat.ch.
- Code: neutralize "(Vercel)" route-segment comments; reword the warmup cron
  comment; update the demo page tech-stack line to self-hosted.
- Keep: secret-scan guardrail (VERCEL_OIDC_TOKEN) and `env -u VERCEL` in the
  husky hooks, the educational hosting-comparison page, historical docs/archive,
  and executive-docs business/finance planning material (see PR body).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@catomean
catomean merged commit 28453ef into main Jul 28, 2026
0 of 2 checks passed
@catomean
catomean deleted the chore/remove-vercel branch July 28, 2026 07:23
catomean added a commit that referenced this pull request Jul 28, 2026
* ci: strict verify gate + verify SSOT script

Reconciles PR #109's intent onto post-#120 main (self-hosted, no Vercel):
- add "verify" script (format:check && lint && test && build) — one
  definition of "green", run identically locally and in CI
- ci.yml runs `npm ci` then a single `npm run verify` step (no --if-present:
  a missing/renamed gate script fails loudly) instead of the old split steps
- add AGENTS.md, corrected to the real stack (Next.js 16 / React 19) and
  self-hosted Hetzner deploy referencing ci.yml — NOT the stale Vercel/Next14
  draft from #109 that would have re-added Vercel

Supersedes #109 (which conflicted on the workflow #120 renamed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* style: prettier --write repo to make the verify gate green

The strict verify gate surfaced pre-existing format debt that main's long-red
CI (blocked-Vercel deploy step) had masked. prettier --write is mechanical and
content-preserving — the executive-docs keep their text (incl. the separate
Vercel-in-financials follow-up), only whitespace is normalised. Also excludes
the auto-generated next-env.d.ts from prettier. Build/lint/test already pass;
this clears format:check so verify is truly green (and un-reds main on merge).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* style: reformat with the repo-pinned prettier config (printWidth 100)

Prior format commit used a prettier invocation that didn't resolve .prettierrc
(fell back to printWidth 80); the pinned config (printWidth 100) rejected it.
Re-run with the repo's own prettier so format:check matches CI exactly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
catomean added a commit that referenced this pull request Jul 28, 2026
Regenerates PR #110's intent on post-#120 main: the non-breaking subset of
`npm audit fix`. Remaining advisories require `--force` (a breaking
@xenova/transformers major) and are deliberately left out. Lockfile-only.

Supersedes #110 (which conflicted after the dependabot merges + #120).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
catomean added a commit that referenced this pull request Jul 28, 2026
…122)

Regenerates PR #110's intent on post-#120 main: the non-breaking subset of
`npm audit fix`. Remaining advisories require `--force` (a breaking
@xenova/transformers major) and are deliberately left out. Lockfile-only.

Supersedes #110 (which conflicted after the dependabot merges + #120).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant