Hosts the real Aura mark (cropped to the icon, wordmark removed,
square) as an SVG so mail clients that support BIMI can show it next
to the sender name instead of a generated initial.
Visitors previously had no path to create a client account -- only a
Client Login link. Both CTAs now route through aura-auth's /register
with next= pointed at the client portal's service catalog.
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>
The registered domain (auraajenticai.cloud) and the logo artwork both
spell it "Ajentic", not the dictionary word "Agentic" — a mismatch that
predates this session, now propagated further by today's Privacy/Terms
pages before it was caught. Fixed every brand-name occurrence (page
title, meta tags, JSON-LD, logo alt text, footer) across index.html,
data.jsx, app.jsx, icons.jsx. Left "Agentic AI"/"Agentic systems" alone
where it's used as a generic industry term, not the brand name.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Needed to unblock Google OAuth consent-screen branding (the field was
still pointing at Snehalata's URLs, reused from that project). Genuine
content, not boilerplate — covers the contact form, analytics tools
just installed, and Google Sign-In's basic-profile-only scope. Linked
from the footer, which had no legal links at all before.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Owner-provided codes: GSC verification meta tag, GTM-WMF863QM (head snippet
+ body noscript iframe), and GA4 gtag.js for G-5MB0V1M3LQ.
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>
Replaces hello@auraajenticai.cloud with ceo@auraajenticai.cloud across every
display/mailto surface (nav CTA, contact page, direct-contact card, JSON-LD),
and adds +8801911877091 as a real WhatsApp contact channel (click-to-chat
link on the Contact page and the home page's Direct card, plus telephone in
the Organization schema). The contact form itself is unaffected — it already
posts to a separate address via formsubmit.co, not through this email.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Both were already running for our own brand and sold through the client
portal, but neither appeared on the public site — so the two services with
the clearest proof behind them were invisible to anyone reading it.
The bundle is deliberately positioned as one accountable team for the whole
chain (storefront, bot, courier, posts, ads) rather than five vendors,
because that is exactly how we run Glamour's Touch.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The bot has been running on our own shop for weeks but was missing from
the services list entirely. The demo link opens a real WhatsApp chat with
it, pre-filled with a product question, so a visitor sees the actual
answer — photo, real price, real discount — in about ten seconds.
Also corrects the Glamour's Touch case study, which listed a Next.js and
Stripe stack it has never used; it is React + Vite + Supabase, sells cash
on delivery, and now runs the bot and the daily auto-posts.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
One MCP connector for every BD courier (Steadfast + Pathao) — add to Claude,
book & track parcels from a conversation. Links to the live showcase + repo.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace non-existent n8n webhook with Formsubmit AJAX endpoint.
Zero backend required — first submission triggers Gmail verification,
after that all inquiries arrive as formatted table emails.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
snehalata.com domain not yet registered — use production Vercel URL
until custom domain is configured.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>