fix(links): the donate buttons funded another organisation, and two nav entries went nowhere - #388
Merged
Conversation
…av entries went nowhere
Found by walking all 33 public pages rather than reading the code.
## Donations were going to Revamp-IT
`/get-involved/donate` carried two hardcoded buttons:
https://ko-fi.com/revampit
https://github.com/sponsors/revampit
On evig's own donate page. Someone clicking "spenden" funded the organisation
evig span out of. evig has no Ko-fi and no GitHub Sponsors account, so there
was nothing to repoint them at — the choice was remove them or keep collecting
for someone else. Removed; the bank transfer and the device-donation path
above and below them are evig's real routes.
Two more links pointed at the wrong GitHub org: the "contribute code" button
(github.com/revampit) and the CO₂ page's "check our maths" link
(github.com/g-but/revampit — the previous org's repo AND a retired handle).
Both derive from EXTERNAL_LINKS.sourceCode now.
## Two nav entries rendered <a href="">
`Marktplatz → evig Shop` read EXTERNAL_LINKS.shopware and `Lernen → Wiki` read
EXTERNAL_LINKS.wiki. Both are empty strings — evig has neither a Shopware
storefront nor a wiki. Neither MegaMenuContent nor MobileMenuNav filters empty
hrefs, so both shipped as `<a href="" target="_blank">`: the FIRST item of the
Marktplatz menu opened a blank duplicate of the current page in a new tab. The
shop entry's comment still read "The official RevampIT storefront is the
external Shopware shop", while .claude/CLAUDE.md says evig has one store and
it is /marketplace.
Nothing could have caught this: not a missing key (the labels exist), not a
broken route (there is no route), not a type error (`''` is a valid string).
So the gate is new — `navigation-links-resolve.test.ts` asserts every href in
the real exported tree is non-empty and well-formed, which also covers the
derived builders. Proved by mutation: planting the empty href back turns
"every href is present and non-empty" red and leaves the other three green.
## Three dead links shipped in DE copy
- faq.groups[4].items[1] sold "die REVAMPED-Zertifizierung" and linked to
/revamped — a 404 since #382 deleted that page. My own regression: I
removed the page and its inbound CTA but not the FAQ entry. REVAMPED is
the previous org's product name, so the question goes rather than the link.
- `Lernen → Guides` pointed at /knowhow#guides; the Guides card ON that page
pointed at /#guides. Neither anchor exists — /knowhow's only id is
`ressourcen` — and the two did not even agree with each other. There are
no guides.
## Lernen now points at what evig actually owns
/workshops renders "0 Workshops · Aktuell sind keine Workshops geplant" and
/blog renders nothing, while the 43-entry open-source alternatives registry
(1029 lines, real, indexed) and the Linux page with its distro matrix sat
three levels down under Dienstleistungen. Both are in Lernen now, where
someone looking to learn would look, alongside a Ressourcen entry pointing at
the curated-links section that does exist.
## /knowhow claimed Revamp-IT's history as evig's
"Wir teilen unser 16+ Jahre Knowhow" — on an org founded 2026. That is exactly
what .claude/CLAUDE.md forbids ("evig claims no 'since 2003' of its own").
Its H1 also sold "Vintage Hardware", repeated in the meta description and the
guides card — the opposite of what evig sells, which is machines good enough
for real work today. Rewritten to Linux, open software and the practical use
of AI, in all eight locales.
npm run verify green: lint, umlauts, chrome, docs, compliance, typecheck,
7750 tests (534 suites), production build.
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.
Found by walking all 33 public pages rather than reading the code.
Donations were going to Revamp-IT
/get-involved/donatecarried two hardcoded buttons:On evig's own donate page. Someone clicking "spenden" funded the organisation evig span out of. evig has no Ko-fi and no GitHub Sponsors account, so there was nothing to repoint them at — the choice was remove them or keep collecting for someone else. Removed; the bank transfer and device-donation paths above and below them are evig's real routes.
Two more links pointed at the wrong GitHub org: the "contribute code" button (
github.com/revampit) and the CO₂ page's "check our maths" link (github.com/g-but/revampit— the previous org's repo and a retired handle). Both derive fromEXTERNAL_LINKS.sourceCodenow.Two nav entries rendered
<a href="">Marktplatz → evig ShopreadEXTERNAL_LINKS.shopware;Lernen → WikireadEXTERNAL_LINKS.wiki. Both are empty strings — evig has neither a Shopware storefront nor a wiki. NeitherMegaMenuContentnorMobileMenuNavfilters empty hrefs, so both shipped as<a href="" target="_blank">: the first item of the Marktplatz menu opened a blank duplicate of the current page in a new tab. The shop entry's comment still read "The official RevampIT storefront is the external Shopware shop", while.claude/CLAUDE.mdsays evig has one store and it is/marketplace.Nothing could have caught this — not a missing key (the labels exist), not a broken route (there is no route), not a type error (
''is a valid string). So the gate is new:navigation-links-resolve.test.tsasserts every href in the real exported tree is non-empty and well-formed, which also covers the derived builders (buildServicesNavigationItems,buildMarktplatzNavigationItems).Proved by mutation — planting the empty href back turns "every href is present and non-empty" red and leaves the other three green.
Three dead links shipped in DE copy
faq.groups[4].items[1]sold "die REVAMPED-Zertifizierung" and linked to/revamped— a 404 since feat(brand): evig repairs becomes evig technicians, and evig stops asking for printers #382 deleted that page. My own regression: I removed the page and its inbound CTA but not the FAQ entry. REVAMPED is the previous org's product name, so the question goes rather than the link.Lernen → Guidespointed at/knowhow#guides; the Guides card on that page pointed at/#guides. Neither anchor exists —/knowhow's only id isressourcen— and the two didn't even agree with each other. There are no guides.Lernen now points at what evig actually owns
/workshopsrenders "0 Workshops · Aktuell sind keine Workshops geplant" and/blogrenders nothing, while the 43-entry open-source alternatives registry (1029 lines, real, sitemap-indexed) and the Linux page with its distro matrix sat three levels down under Dienstleistungen.Both are in Lernen now — where someone looking to learn would look — alongside a
Ressourcenentry pointing at the curated-links section that does exist./knowhowclaimed Revamp-IT's history as evig'sOn an organisation founded in 2026. That is exactly what
.claude/CLAUDE.mdforbids — "evig claims no 'since 2003' of its own". Its H1 also sold "Vintage Hardware", repeated in the meta description and the guides card — the opposite of what evig sells, which is machines good enough for real work today. Rewritten to Linux, open software and the practical use of AI, in all eight locales.Verification
npm run verifygreen: lint, umlauts, chrome, docs, compliance, typecheck, 7750 tests (534 suites), production build.🤖 Generated with Claude Code