Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/web/scripts/migrate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ async function main() {
connectionString: postgresUrl,
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
connectionTimeoutMillis: 15000,
});

// Create the Drizzle instance
Expand Down
118 changes: 68 additions & 50 deletions packages/web/src/app/(landing)/ai/ai-landing.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,31 @@ function CodeLine({

type HeroCodeTab = 'typescript' | 'python' | 'curl';

function DeprecatedSignupButton({
children,
variant = 'primary',
}: {
children: React.ReactNode;
variant?: 'primary' | 'secondary';
}) {
const className =
variant === 'primary'
? 'inline-flex items-center px-6 py-3 text-[15px] sm:text-[16px] font-medium text-white bg-[#1B29FF] rounded-md opacity-50 cursor-not-allowed'
: 'inline-flex items-center px-6 py-3 text-[15px] sm:text-[16px] font-medium text-[#1B29FF] border border-[#1B29FF] rounded-md opacity-50 cursor-not-allowed';

return (
<button
type="button"
disabled
aria-disabled="true"
title="This product is being deprecated"
className={className}
>
{children}
</button>
);
}

function HeroCodeTabs() {
const [tab, setTab] = useState<HeroCodeTab>('typescript');

Expand Down Expand Up @@ -164,7 +189,7 @@ function HeroCodeTabs() {
export function AILanding() {
return (
<div className="min-h-screen bg-[#F7F7F2]">
<Header />
<Header disableSignup />

{/* Hero Section */}
<section className="relative border-b border-[#101010]/10 bg-white/90 overflow-hidden">
Expand Down Expand Up @@ -211,27 +236,26 @@ export function AILanding() {
</div>
</div>

<div className="mt-8 sm:mt-10 flex flex-col sm:flex-row flex-wrap items-start sm:items-center gap-4 sm:gap-6">
<Link
className="inline-flex items-center px-6 py-3 text-[15px] sm:text-[16px] font-medium text-white bg-[#1B29FF] hover:bg-[#1420CC] rounded-md transition-colors"
href="/signin"
>
Login
<ArrowRight className="ml-2 w-4 h-4" />
</Link>
<Link
className="inline-flex items-center px-6 py-3 text-[15px] sm:text-[16px] font-medium text-[#1B29FF] border border-[#1B29FF] hover:bg-[#1B29FF]/5 rounded-md transition-colors"
href="/agent-login"
>
Agent Login
<ArrowRight className="ml-2 w-4 h-4" />
</Link>
<Link
className="inline-flex items-center text-[14px] sm:text-[15px] lg:text-[16px] text-[#101010] hover:text-[#1B29FF] underline decoration-[#101010]/30 underline-offset-[4px] hover:decoration-[#1B29FF] transition-colors"
href="https://docs.0.finance/cli/installation"
>
Install + docs
</Link>
<div className="mt-8 sm:mt-10 flex flex-col items-start gap-4">
<div className="flex flex-col sm:flex-row flex-wrap items-start sm:items-center gap-4 sm:gap-6">
<DeprecatedSignupButton>
Login
<ArrowRight className="ml-2 w-4 h-4" />
</DeprecatedSignupButton>
<DeprecatedSignupButton variant="secondary">
Agent Login
<ArrowRight className="ml-2 w-4 h-4" />
</DeprecatedSignupButton>
<Link
className="inline-flex items-center text-[14px] sm:text-[15px] lg:text-[16px] text-[#101010] hover:text-[#1B29FF] underline decoration-[#101010]/30 underline-offset-[4px] hover:decoration-[#1B29FF] transition-colors"
href="https://docs.0.finance/cli/installation"
>
Install + docs
</Link>
</div>
<p className="text-[13px] text-[#101010]/60">
This product is being deprecated. New signups are disabled.
</p>
</div>

<div className="mt-8 grid grid-cols-1 lg:grid-cols-2 gap-6 lg:gap-8 items-start">
Expand Down Expand Up @@ -302,13 +326,10 @@ export function AILanding() {
</div>

<div className="mt-6 flex flex-col sm:flex-row items-start sm:items-center gap-3">
<Link
href="/agent-login"
className="inline-flex items-center px-5 py-2.5 text-[14px] font-medium text-white bg-[#1B29FF] hover:bg-[#1420CC] rounded transition-colors"
>
<DeprecatedSignupButton>
Agent Login
<ArrowRight className="ml-2 w-4 h-4" />
</Link>
</DeprecatedSignupButton>
<Link
href="https://docs.0.finance/cli/reference"
className="inline-flex items-center px-5 py-2.5 text-[14px] font-medium text-[#1B29FF] border border-[#1B29FF] hover:bg-[#1B29FF]/5 rounded transition-colors"
Expand Down Expand Up @@ -465,13 +486,16 @@ export function AILanding() {
<div className="text-[#101010]/55"># 3) Agent continues</div>
<CodeLine>zero bank transfers list</CodeLine>
<div className="mt-4">
<Link
href="/signin?source=approvals"
className="inline-flex items-center text-[13px] font-medium text-[#1B29FF] hover:text-[#1420CC] transition-colors"
<button
type="button"
disabled
aria-disabled="true"
title="This product is being deprecated"
className="inline-flex items-center text-[13px] font-medium text-[#1B29FF] opacity-50 cursor-not-allowed"
>
Open approvals dashboard
<ArrowRight className="ml-2 h-4 w-4" />
</Link>
</button>
</div>
</TerminalCard>

Expand Down Expand Up @@ -511,13 +535,16 @@ export function AILanding() {
</div>
</div>
<div className="mt-6 flex flex-col sm:flex-row items-start sm:items-center gap-3">
<Link
href="/signin?source=cli"
className="inline-flex items-center px-5 py-2.5 text-[14px] font-medium text-white bg-[#101010] hover:bg-[#040404] rounded transition-colors"
<button
type="button"
disabled
aria-disabled="true"
title="This product is being deprecated"
className="inline-flex items-center px-5 py-2.5 text-[14px] font-medium text-white bg-[#101010] rounded opacity-50 cursor-not-allowed"
>
Open dashboard
<ArrowRight className="ml-2 w-4 h-4" />
</Link>
</button>
<Link
href="https://docs.0.finance/mcp/overview"
className="inline-flex items-center px-5 py-2.5 text-[14px] font-medium text-[#101010] border border-[#101010]/15 hover:bg-white rounded transition-colors"
Expand Down Expand Up @@ -549,13 +576,10 @@ export function AILanding() {
control.
</p>
<div className="mt-6 flex flex-col sm:flex-row items-start sm:items-center gap-3">
<Link
href="/agent-login"
className="inline-flex items-center px-5 py-2.5 text-[14px] font-medium text-white bg-[#1B29FF] hover:bg-[#1420CC] rounded transition-colors"
>
<DeprecatedSignupButton>
Agent Login
<ArrowRight className="ml-2 w-4 h-4" />
</Link>
</DeprecatedSignupButton>
<Link
href="https://docs.0.finance"
className="inline-flex items-center px-5 py-2.5 text-[14px] font-medium text-[#101010] border border-[#101010]/15 hover:bg-white rounded transition-colors"
Expand Down Expand Up @@ -647,13 +671,10 @@ export function AILanding() {
https://zerofinance.ai/install | bash
</div>
<div className="mt-6 flex flex-col sm:flex-row items-start sm:items-center gap-3">
<Link
href="/agent-login"
className="inline-flex items-center px-5 py-2.5 text-[14px] font-medium text-white bg-[#1B29FF] hover:bg-[#1420CC] rounded transition-colors"
>
<DeprecatedSignupButton>
Agent Login
<ArrowRight className="ml-2 w-4 h-4" />
</Link>
</DeprecatedSignupButton>
<Link
href="https://docs.0.finance/cli/reference"
className="inline-flex items-center px-5 py-2.5 text-[14px] font-medium text-[#1B29FF] border border-[#1B29FF] hover:bg-[#1B29FF]/5 rounded transition-colors"
Expand All @@ -679,13 +700,10 @@ export function AILanding() {
Script what you need, keep approvals human, and ship faster.
</p>
<div className="mt-6 sm:mt-8 flex flex-col sm:flex-row items-start sm:items-center gap-4 sm:gap-6">
<Link
href="/agent-login"
className="inline-flex items-center px-6 py-3 text-[15px] sm:text-[16px] font-medium text-white bg-[#1B29FF] hover:bg-[#1420CC] rounded-md transition-colors"
>
<DeprecatedSignupButton>
Agent Login
<ArrowRight className="ml-2 w-4 h-4" />
</Link>
</DeprecatedSignupButton>
<Link
href="https://docs.0.finance/cli/installation"
className="inline-flex items-center text-[14px] sm:text-[15px] lg:text-[16px] text-[#101010] hover:text-[#1B29FF] underline decoration-[#101010]/30 underline-offset-[4px] hover:decoration-[#1B29FF] transition-colors"
Expand Down
48 changes: 43 additions & 5 deletions packages/web/src/app/(landing)/header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,43 @@ import React from 'react';
import Link from 'next/link';
import Image from 'next/image';

export function Header() {
type HeaderProps = {
disableSignup?: boolean;
};

function SignupButton({
href,
children,
className,
disabled = false,
}: {
href: string;
children: React.ReactNode;
className: string;
disabled?: boolean;
}) {
if (disabled) {
return (
<button
type="button"
disabled
aria-disabled="true"
title="This product is being deprecated"
className={`${className} cursor-not-allowed opacity-50`}
>
{children}
</button>
);
}

return (
<Link className={className} href={href}>
{children}
</Link>
);
}

export function Header({ disableSignup = false }: HeaderProps) {
return (
<header className="absolute top-0 left-0 right-0 z-50 bg-transparent">
<div className="mx-auto max-w-[1200px] px-4 sm:px-6 lg:px-8 py-4 sm:py-6">
Expand Down Expand Up @@ -46,18 +82,20 @@ export function Header() {
Docs
</Link>

<Link
<SignupButton
className="px-3 sm:px-4 py-1.5 sm:py-2 border border-[#101010]/20 text-[#101010] hover:text-[#1B29FF] hover:border-[#1B29FF]/40 text-[12px] sm:text-[13px] font-medium rounded-md transition-all"
href="/signin"
disabled={disableSignup}
>
Login
</Link>
<Link
</SignupButton>
<SignupButton
className="px-3 sm:px-4 py-1.5 sm:py-2 bg-[#1B29FF] hover:bg-[#1420CC] text-white text-[12px] sm:text-[13px] font-medium rounded-md transition-all"
href="/agent-login"
disabled={disableSignup}
>
Agent Login
</Link>
</SignupButton>
</nav>
</div>
</div>
Expand Down
Loading