Date: 2026-05-16
Status: Design approved, ready for implementation plan
Scope: www/ only — no backend, no infra changes
Make www/v3/ the live site at getorcha.com/de/ and getorcha.com/en/, archive the current site to getorcha.com/archive/, and reuse the existing community pages under v3's header/footer.
The /v3/ URL path disappears entirely after launch.
/v3/* to / (no external backlinks rely on /v3/ paths)www/ as-is; user triggers deploy manuallywww/
├── index.html # redirects to /de/
├── css/globals.css
├── js/{community-forms, main, orb, tracker}.js
├── images/, logos/
├── de/ # current live site
│ ├── 404.html
│ ├── index.html
│ ├── about/, contact/, imprint/, privacy/, produkt/, terms/
│ ├── validation-preview.html
│ └── community/ # ★ stays
│ ├── index.html
│ ├── posts/<37 dirs>/index.html
│ └── videos/
├── en/ # mirror of de/, with /imprint/, /privacy/, /terms/, /product/
└── v3/ # new site, currently not live
├── de/
│ ├── index.html
│ ├── agents-draft.html, korrektheit-draft.html # to delete
│ ├── produkt/<10 pages>, agenten/, steuerberater/
│ ├── roi/, implementierung/, trial/
│ ├── impressum/, datenschutz/, agb/
│ └── archive/ # internal v3 working files
├── en/ # mirror with /imprint/, /privacy/, /terms/
├── css/{v3, product, responsive, tokens, trial}.css
├── js/{chrome.de, chrome, hero, roi, swimlanes, …}.js
├── design-guide.html # internal design ref
├── variations/ # UI exploration mockups
├── dev/ # Playwright screenshot tooling
└── robots.txt # redundant; root www/robots.txt is authoritative
www/
├── index.html # unchanged (still redirects to /de/)
├── robots.txt # updated: Disallow: /archive/
├── sitemap.xml # regenerated for v3 page set
├── css/
│ ├── globals.css # unchanged (community + archive use this)
│ ├── v3.css # from www/v3/css/
│ ├── product.css # from www/v3/css/
│ ├── responsive.css # from www/v3/css/
│ ├── tokens.css # from www/v3/css/
│ └── trial.css # from www/v3/css/
├── js/
│ ├── community-forms.js, main.js, orb.js, tracker.js # unchanged
│ ├── chrome.de.js, chrome.js # from www/v3/js/, with path fixes
│ └── ablauf, dunning, hero, hero-agent, home-pipeline,
│ orchestration, roi, supplier-chat, swimlanes,
│ testimonials, trial-form, viz-activate, workflow.js # from www/v3/js/
├── images/, logos/ # unchanged
├── archive/ # NEW — frozen old site
│ ├── de/
│ │ ├── index.html
│ │ ├── about/, contact/, imprint/, privacy/, produkt/, terms/
│ │ └── validation-preview.html
│ └── en/ (mirror)
├── de/ # v3 promoted
│ ├── 404.html # kept from old site (not archived)
│ ├── index.html # from www/v3/de/
│ ├── produkt/, agenten/, steuerberater/, roi/, implementierung/
│ ├── trial/, impressum/, datenschutz/, agb/
│ └── community/ # ★ unchanged location + body; new header/footer wired
└── en/ # v3 EN promoted
├── 404.html # kept from old site
├── index.html
├── produkt/, agenten/, steuerberater/, roi/, implementierung/
├── trial/, imprint/, privacy/, terms/
└── community/ # ★ unchanged body; new header/footer
www/v3/de/agents-draft.htmlwww/v3/de/korrektheit-draft.htmlwww/v3/variations/ (entire directory — UI exploration mockups)www/v3/dev/ (entire directory — Playwright screenshot tooling)www/v3/design-guide.html (internal design reference)www/v3/de/archive/, www/v3/en/archive/ (v3-internal working files, distinct from the new www/archive/)www/v3/robots.txt (root www/robots.txt is authoritative)www/v3/ itself (empty after the above)www/index.html — root redirect, points to /de/, content unchangedwww/de/404.html, www/en/404.html — kept at the new root, NOT archived (per user request to "take the one we already have"). Wired with v3 chrome in the same pass as community pages.www/de/community/, www/en/community/ — entire directories (index + posts + videos) stay at their URLs. Only <header> and <footer> change; body content, Tailwind setup, orb canvas, AOS, globals.css references all stay.www/js/)Switch all internal hrefs to absolute paths (this is the single change that makes the script depth-independent and lets community posts at depth 3 work without special-case logic).
Specific edits:
location.pathname.replace(/\/v3\/de(\/|$)/, "/v3/en$1") becomes location.pathname.replace(/\/de(\/|$)/, "/en$1")/v3/de/trial/, /v3/en/trial/ → /de/trial/, /en/trial/../../logos/orcha-logo.png and the deeper ../../../logos/... both become /logos/orcha-logo.png (same for orcha-icon.png)homeHref, moduleHref, steuerberaterHref, agentenHref, roiHref, implementierungHref, impressumHref, datenschutzHref, agbHref, anchorHref helpers: switch from depth-relative to absolute pathsisProductSubpage / isOtherSubpage detection: regexes already use /de/ (not /v3/de/), so they keep working post-move and on community pages without changes/de/community/ (absolute) — no changewww/v3/ to rootFind/replace /v3/de/ → /de/ and /v3/en/ → /en/. Affects:
<link rel="canonical"> URLs<link rel="alternate" hreflang=…> URLs<meta property="og:url"> contenthref="/v3/..." references<script> blocks that hardcode pathsPer earlier exploration: ~19 files reference /v3/ explicitly.
Affects:
www/de/community/index.htmlwww/en/community/index.htmlwww/de/community/posts/<slug>/index.html × 37www/en/community/posts/<slug>/index.html × 27Subtotal: 66 community files (2 indexes + 64 posts).
Plus, in the same pass:
www/de/404.html, www/en/404.html (2 files)Grand total for step 6: 68 files get the chrome treatment.
<head>, add: <link rel="stylesheet" href="/css/v3.css"><header id="site-navbar" class="..."> → <header id="site-header"></header> (drop the Tailwind classes — v3 chrome supplies its own styling)<footer id="site-footer"></footer> already matches what v3 chrome looks for</body>, add: <script src="/js/chrome.de.js"></script> (DE) or <script src="/js/chrome.js"></script> (EN). Must come AFTER main.js in the script tag order — see "main.js coexistence" belowThe community pages currently load /js/main.js, which does several things:
#site-navbar with old chrome (no-op after we rename to #site-header)#site-footer with old chrome (collides with v3 chrome)#cookie-banner / #cookie-accept click handlers (independent body elements — keep working)#scroll-to-top and #copy-email-btn handlers (currently inside main.js's rendered old footer — these are lost once v3 chrome overwrites the footer, but neither feature is critical for community pages)Resolution:
main.js script tag in community pages (it still handles the cookie banner that lives in the page body)main.js tag in source order. Both scripts run on DOMContentLoaded; the later-registered handler runs last, so v3 chrome's innerHTML write to #site-footer overwrites main.js's. Brief flash of the old footer is possible but imperceptible (both run on the same DOMContentLoaded tick).scroll-to-top and copy-email-btn no longer work on community pages — they were features of the old footer, not the v3 footer. Not worth re-implementing.globals.css linkmain.js (for cookie banner)orb.js, community-forms.js, tracker.js script tagsCommunity pages currently use ../../css/globals.css, ../../js/main.js, etc. (depth-2 relative paths). After this change:
www/css/, www/js/, www/logos/ are unchanged/css/v3.css, /js/chrome.de.js) use absolute paths/de/community/posts/<slug>/index.html) use ../../../css/globals.css etc. — verify case-by-case during implementation; no change needed if existing paths are correctv3.css and Tailwind both define base styles. Risk: v3 resets or typography bleed into community body.
Mitigation: v3.css selectors are mostly class-based (.nav-*, .btn, .dropdown-*). Risk is low. Verify by spot-checking 3 wired pages (DE community index, 1 DE post, 1 EN post) — if visible regressions, scope v3 chrome under a .v3-chrome class. Don't pre-scope; YAGNI.
www/sitemap.xmlRegenerate from scratch. Include:
https://getorcha.com/ (root)https://getorcha.com/de/, https://getorcha.com/en/ (home)produkt/{kreditoren, debitoren, dokumente, vertraege, freigaben, abschluss, varianz, fpa, einkauf, spesen}.html)agenten/, steuerberater/, roi/, implementierung/, trial/impressum/, datenschutz/, agb/; EN imprint/, privacy/, terms/https://getorcha.com/de/community/, https://getorcha.com/en/community/Exclude:
/archive/* (not for indexing)Set <lastmod> to today (2026-05-16). Use existing sitemap format as template.
www/robots.txtAdd Disallow: /archive/. Leave existing rules intact.
None needed. Per user: no external backlinks rely on /v3/ paths.
Before opening the PR / triggering deploy:
www/de/index.html renders correctly with logo, nav, footer (paths resolve)www/en/index.html same/de/produkt/kreditoren, /en/produkt/kreditoren/de/agenten/, /en/agenten/; /de/roi/, /en/roi//de/produkt/kreditoren → /en/produkt/kreditoren/de/trial/ (and resolves)/de/trial/ submits successfully (Google Apps Script integration)/de/community/ shows v3 nav + footer, hero/post grid/Tailwind body unchanged/de/404.html) renders with v3 chrome/archive/de/index.html opens (acceptable if CSS partly broken — frozen artifact)www/v3/ remains/v3/ in www/ returns zero resultsPost-merge / post-deploy:
getorcha.com → redirects to /de/getorcha.com/v3/de/ → 404 (no leftover content)Single branch, 7 commits:
chore(www): move current site to /archive/ — move all of www/de/{about,contact,imprint,privacy,produkt,terms,index.html,validation-preview.html} → www/archive/de/; same for EN. Keep 404.html and community/ at original location.chore(www): delete v3 draft and exploration files — agents-draft.html, korrektheit-draft.html, variations/, dev/, design-guide.html, de/archive/, en/archive/, v3/robots.txt.feat(www): promote v3 css and js to root — move www/v3/css/* → www/css/; www/v3/js/* → www/js/. No filename conflicts verified at design time.feat(www): move v3 de and en content into root — www/v3/de/* → www/de/; www/v3/en/* → www/en/. Delete empty www/v3/.fix(chrome): switch internal paths to absolute, drop /v3/ references — chrome.de.js, chrome.js, and the ~19 HTML files with /v3/ references.feat(community,404): wire v3 header and footer into community pages and 404 — 68 files (66 community + 2 404). Add v3.css link, rename #site-navbar → #site-header, append v3 chrome script tag after main.js.chore(www): regenerate sitemap.xml and update robots.txtEach commit is independently reviewable. The branch as a whole is the cut-over.
.v3-chrome only if regressions appear./v3/ reference causes broken link. Mitigation: post-step-5 grep gate (! grep -r "/v3/" www/ --include="*.html" --include="*.js").../../css/style.css paths still resolve to /css/. Mitigation: this is acceptable — /archive/ is a frozen snapshot, not a polished destination. If wholly broken, accept it; if needed later, paths can be patched in archive HTML.www/ to its pre-launch state, since git tracks the moves as rename operations./v3/* → /* redirects in CloudFront/S3www/de/community/videos/ (untouched, out of scope)