feat: Updated purchase page
Server Deploy / deploy (push) Successful in 4m40s

This commit is contained in:
2026-07-27 14:59:43 +01:00
parent 0a86167c44
commit 4ad68e3ac4
14 changed files with 1443 additions and 187 deletions
+13 -5
View File
@@ -70,10 +70,15 @@ export default function OverviewPage() {
title="Overview"
subtitle={subtitle}
actions={
!hasFree && live.length > 0 ? (
<LinkButton variant="line" href="/instances/new">
Create a free instance
</LinkButton>
live.length > 0 ? (
<>
{!hasFree && (
<LinkButton variant="line" href="/instances/new">
Create a free instance
</LinkButton>
)}
<LinkButton href="/purchase">Buy a plan</LinkButton>
</>
) : undefined
}
record={[
@@ -96,7 +101,10 @@ export default function OverviewPage() {
server, and link it here to get your licence file.
</p>
<div className="flex flex-wrap gap-2.5">
<LinkButton href="/instances/new">Create a free instance</LinkButton>
<LinkButton href="/purchase">Buy a plan</LinkButton>
<LinkButton variant="line" href="/instances/new">
Create a free instance
</LinkButton>
<LinkButton variant="line" href="/instances/link">
Link an install
</LinkButton>
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -2,15 +2,15 @@ import type { Metadata } from "next";
import { PurchaseForm } from "./PurchaseForm";
import { PageHeader } from "@/components/PageHeader";
export const metadata: Metadata = { title: "Buy a self-hosted plan" };
export const metadata: Metadata = { title: "Buy a plan" };
export default function PurchasePage() {
return (
<div className="grid gap-6">
<PageHeader
back={{ href: "/", label: "Overview" }}
title="Self-hosted plan"
subtitle="Name your instance, choose a plan, and pay. After payment, paste the ID your install reports to receive its licence. Self-hosted is billed annually."
title="Choose your plan"
subtitle="Configure the instance, see exactly what you'll be charged, then pay. Nothing is billed until you confirm at checkout."
/>
<PurchaseForm />
</div>