The BN/EN button already worked (state + persistence), but almost nothing
on the page actually responded to it — Hero showed both languages stacked
at once, the home service cards' Bangla name was hardcoded on regardless
of language, and everything else (About, Skills, Testimonials, own-products
showcase, Timeline, Nav chrome, Footer) had zero language awareness at all.
Wired `lang` through to every home-page section, added ~15 new *Bn content
fields to data.jsx (service kind/description/highlights, testimonials,
own-products, experience, metrics), and fixed the two literal stacking
bugs (Hero tagline, home service card names). Also fixed the language
toggle button being hidden below 640px — mobile had no way to reach it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Owner flagged these as reading like unfinished-demo links when every one
of them actually points to a real, running product (GT, Snehalata, EA
dashboard, etc.) — relabeling makes that honest.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Public API returns {id, demo, repo} but merge was reading
{serviceId, demoUrl, gitRepo} — so dashboard links never applied.
Homepage service cards will now show Demo/Repo from Control Center.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Was hardcoded "Six services" — now reads from live services array.
Dashboard থেকে service add/remove করলে homepage headline auto-update হবে।
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- mergeServices() maps API data (demoUrl, gitRepo, isActive) onto local static data
- sessionStorage cache (5 min TTL) like nav links
- GitHub button becomes a link when gitRepo is set
- Falls back to PORTFOLIO_DATA.services if API is unavailable
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>