feat: add self-serve "Get Started" registration CTA to nav + hero
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.
This commit is contained in:
+13
-8
@@ -123,18 +123,22 @@ const TerminalRain = () => {
|
||||
const HERO_TXT = {
|
||||
en: {
|
||||
pill: "Accepting new projects · Q3 2026",
|
||||
getStarted: "Get Started Free",
|
||||
viewServices: "View Services",
|
||||
getQuote: "Get a Quote",
|
||||
lastShipped: "Last shipped: 2 days ago",
|
||||
},
|
||||
bn: {
|
||||
pill: "নতুন প্রজেক্ট নেওয়া হচ্ছে · Q3 2026",
|
||||
getStarted: "ফ্রি শুরু করুন",
|
||||
viewServices: "সার্ভিস দেখুন",
|
||||
getQuote: "কোট নিন",
|
||||
lastShipped: "সর্বশেষ শিপড: ২ দিন আগে",
|
||||
},
|
||||
};
|
||||
|
||||
// Same self-serve destination as the nav's "Get Started" -- lands a fresh signup straight on the
|
||||
// client portal's service catalog instead of a blank dashboard.
|
||||
const HERO_REGISTER_URL = "https://auth.auraajenticai.cloud/register?next=" + encodeURIComponent("https://client.auraajenticai.cloud/services");
|
||||
|
||||
const Hero = ({ headlinePrefix, headlineSuffix, lang = "en" }) => {
|
||||
const D = PORTFOLIO_DATA;
|
||||
const prefix = headlinePrefix || "Agentic AI &";
|
||||
@@ -210,24 +214,25 @@ const Hero = ({ headlinePrefix, headlineSuffix, lang = "en" }) => {
|
||||
|
||||
{/* CTAs */}
|
||||
<div style={{ display: "flex", gap: 12, marginTop: 40, flexWrap: "wrap" }}>
|
||||
<a href="#work" style={{
|
||||
<a href={HERO_REGISTER_URL} style={{
|
||||
display: "inline-flex",
|
||||
alignItems: "center",
|
||||
gap: 8,
|
||||
padding: "12px 20px",
|
||||
background: "var(--text)",
|
||||
color: "var(--bg)",
|
||||
background: "linear-gradient(110deg, var(--accent), var(--accent-2))",
|
||||
color: "#fff",
|
||||
fontSize: 14,
|
||||
fontWeight: 500,
|
||||
borderRadius: 10,
|
||||
textDecoration: "none",
|
||||
transition: "transform 0.15s",
|
||||
}}
|
||||
onMouseEnter={e => e.currentTarget.style.transform = "translateY(-1px)"}
|
||||
onMouseLeave={e => e.currentTarget.style.transform = "none"}
|
||||
>
|
||||
{t.viewServices} <Icons.Arrow size={14} />
|
||||
{t.getStarted} <Icons.Arrow size={14} />
|
||||
</a>
|
||||
<a href="#contact" style={{
|
||||
<a href="#work" style={{
|
||||
display: "inline-flex",
|
||||
alignItems: "center",
|
||||
gap: 8,
|
||||
@@ -240,7 +245,7 @@ const Hero = ({ headlinePrefix, headlineSuffix, lang = "en" }) => {
|
||||
borderRadius: 10,
|
||||
textDecoration: "none",
|
||||
}}>
|
||||
{t.getQuote} <Icons.ArrowUpRight size={14} />
|
||||
{t.viewServices} <Icons.ArrowUpRight size={14} />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
+37
-4
@@ -8,10 +8,14 @@ const NAV_LINKS = [
|
||||
]
|
||||
|
||||
const NAV_TXT = {
|
||||
en: { search: "Search", getQuote: "Get a Quote", clientLogin: "Client Login" },
|
||||
bn: { search: "খুঁজুন", getQuote: "কোট নিন", clientLogin: "ক্লায়েন্ট লগইন" },
|
||||
en: { search: "Search", getQuote: "Get a Quote", clientLogin: "Client Login", getStarted: "Get Started" },
|
||||
bn: { search: "খুঁজুন", getQuote: "কোট নিন", clientLogin: "ক্লায়েন্ট লগইন", getStarted: "শুরু করুন" },
|
||||
};
|
||||
|
||||
// Where a self-serve account should land right after signing up -- the client portal's own
|
||||
// service catalog, not a blank dashboard. aura-auth's /register already reads and honors `next`.
|
||||
const REGISTER_URL = "https://auth.auraajenticai.cloud/register?next=" + encodeURIComponent("https://client.auraajenticai.cloud/services");
|
||||
|
||||
const Nav = ({ onCmdK, theme, onToggleTheme, accent, lang, onToggleLang, route }) => {
|
||||
const [scrolled, setScrolled] = React.useState(false);
|
||||
const [menuOpen, setMenuOpen] = React.useState(false);
|
||||
@@ -149,6 +153,20 @@ const Nav = ({ onCmdK, theme, onToggleTheme, accent, lang, onToggleLang, route }
|
||||
</a>
|
||||
|
||||
<a href="https://auth.auraajenticai.cloud/login" className="nav-login-btn" style={{
|
||||
padding: "8px 12px",
|
||||
background: "transparent",
|
||||
border: "1px solid var(--line)",
|
||||
borderRadius: 8,
|
||||
color: "var(--text-dim)",
|
||||
fontSize: 13,
|
||||
fontWeight: 500,
|
||||
textDecoration: "none",
|
||||
whiteSpace: "nowrap",
|
||||
}}>
|
||||
{t.clientLogin}
|
||||
</a>
|
||||
|
||||
<a href={REGISTER_URL} className="nav-signup-btn" style={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
gap: 6,
|
||||
@@ -161,7 +179,7 @@ const Nav = ({ onCmdK, theme, onToggleTheme, accent, lang, onToggleLang, route }
|
||||
textDecoration: "none",
|
||||
whiteSpace: "nowrap",
|
||||
}}>
|
||||
{t.clientLogin} <Icons.Arrow size={13} />
|
||||
{t.getStarted} <Icons.Arrow size={13} />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -206,6 +224,7 @@ const Nav = ({ onCmdK, theme, onToggleTheme, accent, lang, onToggleLang, route }
|
||||
}
|
||||
@media (max-width: 480px) {
|
||||
.nav-login-btn { display: none !important; }
|
||||
.nav-signup-btn { display: none !important; }
|
||||
.nav-hamburger { display: flex !important; }
|
||||
}
|
||||
`}</style>
|
||||
@@ -283,6 +302,20 @@ const Nav = ({ onCmdK, theme, onToggleTheme, accent, lang, onToggleLang, route }
|
||||
<a
|
||||
href="https://auth.auraajenticai.cloud/login"
|
||||
onClick={() => setMenuOpen(false)}
|
||||
style={{
|
||||
padding: "8px 14px",
|
||||
background: "transparent",
|
||||
border: "1px solid var(--line)",
|
||||
color: "var(--text-dim)",
|
||||
fontSize: 13,
|
||||
fontWeight: 500,
|
||||
borderRadius: 8,
|
||||
textDecoration: "none",
|
||||
}}
|
||||
>{t.clientLogin}</a>
|
||||
<a
|
||||
href={REGISTER_URL}
|
||||
onClick={() => setMenuOpen(false)}
|
||||
style={{
|
||||
padding: "8px 14px",
|
||||
background: "var(--text)",
|
||||
@@ -292,7 +325,7 @@ const Nav = ({ onCmdK, theme, onToggleTheme, accent, lang, onToggleLang, route }
|
||||
borderRadius: 8,
|
||||
textDecoration: "none",
|
||||
}}
|
||||
>{t.clientLogin}</a>
|
||||
>{t.getStarted}</a>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user