Skip to content

Collapse forms to one mailbox, remove brand assets page - #22

Merged
zerotrustdavid merged 2 commits into
mainfrom
claude/document-review-questions-67ijhw
Sep 4, 2026
Merged

Collapse forms to one mailbox, remove brand assets page#22
zerotrustdavid merged 2 commits into
mainfrom
claude/document-review-questions-67ijhw

Conversation

@zerotrustdavid

@zerotrustdavid zerotrustdavid commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Matches the site to the Web3Forms account, which is now a single form delivering to contact@invisionsolutions.co.uk.

Forms

/enquiries was seven department forms reading seven per-mailbox keys. It is now one general enquiry form. /contact and the testimonial form on /testimonials submit with the same key.

Nothing reads the NEXT_PUBLIC_WEB3FORMS_KEY_* variables any more, deliberately. Those forms have been deleted from the account, so a stale variable left set in Vercel is now inert rather than live. That path is the exact fault that stopped /contact delivering in August.

The testimonial form was reading NEXT_PUBLIC_WEB3FORMS_KEY_HELLO, which names a deleted form. Left alone it would have failed silently on the next deploy.

/contact carried a cross-link promising routing to a specific desk. That is no longer true, so it is replaced with the public address.

Published addresses

/services published sales@ and /testimonials published hello@. Both mailboxes are being retired, so advertising them would leave dead addresses on a live site. A mailto never touched the Web3Forms account, so this is about where mail can be read, not the linked-email allowance.

contact@invisionsolutions.co.uk is now the only address the site publishes anywhere.

Brand assets

Removed the /brand route, the 15 generated files in public/brand/, scripts/generate-brand-assets.mjs, the brand script, its CI reproduction guard, and the fontkit and wawoff2 dependencies.

src/lib/brand.ts stays. The logo, favicon and Open Graph card are all drawn from it.

The direct sharp pin goes with the generator that used it. sharp still resolves to 0.35.4 as an optional dependency of Next, above the advisory range, and npm audit reports zero. Its install-script allowlist entry is removed as stale: 0.35.x ships no install script, so it has permitted nothing since the 0.34.5 bump in #19, and an unused permit would let a reintroduced script through unreviewed.

Footer

Removed the Session: closed — log {year} — access: granted line.

Verification

  • lint, tsc --noEmit, check:install-scripts and build all clean
  • 12 routes, down from 13, which is exactly /brand gone
  • /enquiries renders one form and one textarea, with no department labels
  • Session: closed absent from every rendered page; no /brand links rendered
  • 57 occurrences of contact@invisionsolutions.co.uk across the rendered pages, and none of sales@, hello@ or info@

Positive control on the inertness claim. Built with the main key and three stale keys set to distinct dummy UUIDs. The main key appears 13 times in the bundle; _CONTACT, _HELLO and _SALES appear zero times each. The positive arm makes the zeros meaningful.

Needed in Vercel after merge

Delete the seven NEXT_PUBLIC_WEB3FORMS_KEY_SALES/_CONTACT/_SUPPORT/_BILLING/_INVOICE/_ADMIN/_HELLO variables, confirm NEXT_PUBLIC_WEB3FORMS_KEY holds the Main Contact Form key, and redeploy. These values are inlined at build time, so a variable change alone has no effect on an existing deployment.

Every form on the site now submits with NEXT_PUBLIC_WEB3FORMS_KEY and
delivers to contact@invisionsolutions.co.uk, matching the Web3Forms
account, which is now a single form.

/enquiries was seven department forms reading seven per-mailbox keys.
It is now one general enquiry form. /contact and the testimonial form
on /testimonials point at the same key.

Nothing reads the NEXT_PUBLIC_WEB3FORMS_KEY_* variables any more. That
is deliberate: those forms have been deleted from the account, so a
stale variable left set in the hosting dashboard is now inert rather
than live. Verified by building with distinct dummy values for the
main key and three stale ones, and confirming only the main key
reaches the bundle. The stale-key path is the exact fault that stopped
/contact delivering in August.

/contact's cross-link promised routing to a specific desk, which is no
longer true, so it is replaced with the public address.

Brand assets removed: the /brand route, the 15 generated files in
public/brand/, and scripts/generate-brand-assets.mjs, along with the
brand script, its CI reproduction guard, and the fontkit and wawoff2
dependencies. src/lib/brand.ts stays, since the logo, favicon and
Open Graph card are drawn from it.

The direct sharp pin goes with the generator. sharp still resolves to
0.35.4 as an optional dependency of next, above the advisory range,
and npm audit reports zero. Its install-script allowlist entry is
removed as stale: 0.35.x ships no install script, so there has been
nothing to permit since the 0.34.5 bump, and an unused permit would
let a reintroduced script through unreviewed.

Removed the "Session: closed" line from the footer.
/services published sales@ and /testimonials published hello@. Both
mailboxes are being retired alongside the per-department forms, so
advertising them would leave dead addresses on a live site.

A mailto never touched the Web3Forms account, so this is about where
mail can actually be read rather than the linked-email allowance.

contact@invisionsolutions.co.uk is now the only address the site
publishes anywhere: 57 occurrences across the rendered pages, and no
occurrences of sales@, hello@ or info@.
@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
invisionsolutions Building Building Preview Sep 4, 2026 11:39pm UTC

@zerotrustdavid
zerotrustdavid merged commit af7ca9e into main Sep 4, 2026
7 checks passed
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.

2 participants