- Add Snehalata (AI clothing ecosystem) to ownProducts in data.jsx
- Redesign FlagshipProduct section: single-product -> scalable multi-product grid
- New OwnProductCard component: color-coded per product, features, stack, CTAs
- Section header updated to be generic (not GlamourTouch-specific)
- Bottom nudge: 'Want Aura to build your product? From $499'
- Both snehalata.com and glamourstouch.com now showcased side by side
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
GlamourTouch is a real live product — remove fake browser chrome,
fake product category boxes, and made-up stats. Replace with clean
brand identity panel: real gradient name, live pulse badge, and
direct glamourstouch.com link. Updated description to 'Not a demo.
A real business.'
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New 'In-House Product' section on homepage between Projects & AgentShowcase
- Full FlagshipProduct component with browser-chrome mockup, live store badge,
gradient brand display, feature list, stack pills, and CTAs
- Bottom nudge bar: "Want a store like this? Starter from $499"
- Updated web-app-dev demo URL to glamourstouch.com (real live store)
- Added ownProducts data to PORTFOLIO_DATA
- Added products meta tag for SEO
- Responsive: single-column on mobile (< 860px)
Co-Authored-By: Claude Sonnet 4.6 <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>
- Fetch published posts from /api/public/blog (10-min sessionStorage cache)
- Fall back to PORTFOLIO_DATA.blogArticles if API is unavailable or empty
- Preserves all existing display logic unchanged
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- index.html: JSON-LD Organization + Services ItemList schema, Plausible
Analytics, canonical link
- app.jsx: dynamic document.title + meta description/OG per hash route;
service detail routing (services/:id → ServiceDetailPage)
- pages.jsx: ServiceDetailPage with hero, metric, use cases (3 per
service), process timeline, highlights, and CTA; registered on window
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Testimonials section on home page (4 client quotes with service tags)
- Pricing page (#/pricing) — 3 tiers: Starter $499 / Growth $1499 / Enterprise custom
- Blog page (#/blog) — 4 articles with full content and category tags
- Nav: Services | Pricing | Blog | Timeline | Contact (conversion-focused)
- Contact form now POSTs to dashboard API (real email via Resend)
- PricingPage + BlogPage exposed as window globals
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Live Demo button appears when svc.demo exists,
View Repo button appears when svc.repo exists.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Kept HEAD version: active link highlighting + #/ hash routes
Discarded origin: simpler version without active states
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>
- Merge mobile-responsive hamburger nav with dynamic API links
- Add ChatboxWidget from dashboard public API
- Nav fetches links from /api/public/links with sessionStorage cache
- Chatbox checks business hours, proxies to AI via dashboard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add ChatboxWidget component (src/chatbox.jsx) with business hours check
- Update nav.jsx to fetch links dynamically from /api/public/links
- Wire ChatboxWidget into app.jsx
- Add chatbox.jsx script tag to index.html
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>