chore: sync in-progress work across marketing, admin, API and tests
Snapshot of uncommitted work that had accumulated in the tree alongside the Turnstile changes: - marketing pages, SEO helpers (lib/seo.ts, lib/marketing/) and structured data - admin billing actions and a per-user portfolio view, plus an admin error boundary - rate limiting (lib/rate-limit.ts) applied across the /api/v1 surface - CSP and proxy adjustments, accounting/webhook lib updates - Playwright config and an e2e/unit test suite - next bumped to ^16.3.4 with the lockfile regenerated - generated AGENTS.md / CLAUDE.md Authored by other sessions working in this tree; committed here so the Turnstile work could be pushed without leaving the tree dirty. Typecheck passes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8f90347659
commit
1d02598786
@@ -3,6 +3,18 @@ import { Logo } from "@/components/shared/logo"
|
||||
import { TurnstileWidget } from "@/components/shared/turnstile-widget"
|
||||
import { signUp, signInWithGoogle } from "@/app/actions/auth"
|
||||
import { isGoogleConfigured } from "@/lib/auth"
|
||||
import { pageMetadata } from "@/lib/seo"
|
||||
|
||||
// /signup is listed in the sitemap as a conversion landing page, so it needs
|
||||
// its own title, description and canonical rather than inheriting the "Sign in"
|
||||
// title from app/(auth)/layout.tsx.
|
||||
export const metadata = pageMetadata({
|
||||
title: "Create your free Property Management Network account",
|
||||
absoluteTitle: true,
|
||||
description:
|
||||
"Create a free landlord account — track rent, maintenance, leases and expenses for your first property. No credit card required.",
|
||||
path: "/signup",
|
||||
})
|
||||
|
||||
export default async function SignupPage({
|
||||
searchParams,
|
||||
|
||||
Reference in New Issue
Block a user