Rebuild the cleanup on top of the team's 4-09 code
Rather than merging abhinav/featurefix into main and fighting eight conflicting files, this branch starts from the team's latest work and reapplies our layer on top. Their code is the base of truth; the cleanup is the diff. Nothing they wrote is reverted.
This commit brings over the structural work:
- Removed the dead ecommerce scaffolding still shipping from the Lovable template: Products, ProductDetail, Cart, Checkout, ProductCard, CollectionCard, CartIcon, QuantitySelector, useCart, useWishlist, data/products.ts and 7 unreferenced media files. All still unrouted on main; verified again against their App.tsx before removing.
- Config layer: src/config/site.ts, src/env.ts, src/lib/media.ts, src/lib/motion.ts, plus .env.example.
- src/routes.tsx as the single route table, with per-route code splitting.
- Self-hosted fonts (public/fonts + src/fonts.css), replacing the render-blocking Google Fonts @import.
- Prettier, the media scripts, the nginx/Cloudflare deploy config and the design audit.
- Fixed the 3 pre-existing ESLint errors and turned no-unused-vars back on.
Their changes, kept and adapted:
- The Address column they added to the footer is now driven from site.address, and the phone number is a tel: link.
- FloatingWhatsApp is kept as-is but points at site.contact rather than carrying its own copy of the number, which was the fifth copy in the tree.
- Their Header change removed the mobile Products/Solutions dropdowns — the same call we had made on the desktop side, so the two now agree. The stale comment about them disagreeing is gone.
Two decisions worth flagging:
- /allfeatures is now the page at /features, and /features redirects there. Their AllFeatures.tsx had both of the last two commits while Features.tsx had not been touched since the 24-08 initial commit, and the header's "Features" link already pointed at /allfeatures — so the older page was already orphaned. It is removed; the newer content wins.
- /training-center is a redirect to VITE_TRAINING_CENTER_URL rather than a page, per the plan to move it to a wiki. While that variable is empty the route falls back to the homepage instead of 404ing, so the link can ship before the wiki does. The original 573-line draft stays in git history on main if it is ever wanted back.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com Claude-Session: https://claude.ai/code/session_013VpGcFn6xowbTvGT8Kep4j