ui: wording tweaks

This commit is contained in:
xmrcheckout
2026-01-10 22:28:19 +00:00
parent 98d944ce0c
commit 7eadd14ca0
5 changed files with 96 additions and 105 deletions
+1 -1
View File
@@ -536,7 +536,7 @@ export default function DocsPage() {
</h1> </h1>
<p className="text-[1.05rem] leading-relaxed text-ink-soft"> <p className="text-[1.05rem] leading-relaxed text-ink-soft">
xmrcheckout.com generates invoices, detects Monero payments using view-only access, xmrcheckout.com generates invoices, detects Monero payments using view-only access,
and relays status events. Setup is simple: bring your primary address and secret and relays status events. Setup is explicit: bring your primary address and secret
view key - never spend keys, never custody. view key - never spend keys, never custody.
</p> </p>
<div className="flex flex-wrap gap-2"> <div className="flex flex-wrap gap-2">
+73 -84
View File
@@ -62,18 +62,18 @@ const faqItems: FaqItem[] = [
</> </>
), ),
}, },
{ {
question: "How easy is setup?", question: "What does setup require?",
answer: ( answer: (
<> <>
<p className="text-ink-soft"> <p className="text-ink-soft">
Setup is simple and explicit: provide your primary address and secret Setup is explicit: provide your primary address and secret
view key, then create invoices via the dashboard or API. We never view key, then create invoices via the dashboard or API. We never
request spend keys or signing access. request spend keys or signing access.
</p> </p>
</> </>
), ),
}, },
{ {
question: "Do you require email or personal information?", question: "Do you require email or personal information?",
answer: ( answer: (
@@ -85,27 +85,26 @@ const faqItems: FaqItem[] = [
</> </>
), ),
}, },
{ {
question: "Why is XMR Checkout free?", question: "What does XMR Checkout cost?",
answer: ( answer: (
<> <>
<p className="text-ink-soft"> <p className="text-ink-soft">
We want to give back to the Monero community and help improve Currently, xmrcheckout.com does not charge a service fee. You can also self-host the open source
adoption. XMR Checkout is intentionally offered as free checkout stack if you prefer.
software. </p>
</p> {donationsEnabled ? (
{donationsEnabled ? ( <p className="text-ink-soft">
<p className="text-ink-soft"> If you find XMR Checkout useful, you can support development with{" "}
If you find XMR Checkout useful, we happily accept{" "} <Link className="underline underline-offset-4" href="/donate">
<Link className="underline underline-offset-4" href="/donate"> donations
donations </Link>
</Link> .
. </p>
</p> ) : null}
) : null} </>
</> ),
), },
},
{ {
question: "Can XMR Checkout move funds, issue refunds, or reverse payments?", question: "Can XMR Checkout move funds, issue refunds, or reverse payments?",
answer: ( answer: (
@@ -131,30 +130,26 @@ const faqItems: FaqItem[] = [
</> </>
), ),
}, },
{ {
question: "Why choose XMR Checkout instead of hosted services (e.g. NOWPayments)?", question: "How does XMR Checkout differ from hosted services (e.g. NOWPayments)?",
answer: ( answer: (
<> <>
<p className="text-ink-soft"> <p className="text-ink-soft">
The main differences are scope and data collection: XMR Checkout is The main differences are scope, custody model, and data collection: XMR Checkout is Monero-only,
Monero-only, has no fees, and does not collect personal information. does not require an account or email, and uses view-only access for payment detection.
</p> </p>
<ul className="mt-4 grid gap-2 text-sm text-ink-soft"> <ul className="mt-4 grid gap-2 text-sm text-ink-soft">
<li> <li>
<span className="font-semibold text-ink">Monero-only:</span> a focused <span className="font-semibold text-ink">Monero-only:</span> a focused
product without a multi-asset stack. product without a multi-asset stack.
</li> </li>
<li> <li>
<span className="font-semibold text-ink">No fees:</span> free to use. <span className="font-semibold text-ink">No account/email:</span> your primary address is the identifier.
</li> </li>
<li> <li>
<span className="font-semibold text-ink">No personal info:</span>{" "} <span className="font-semibold text-ink">No custody:</span> payments
your address is the identifier. go directly to your wallet.
</li> </li>
<li>
<span className="font-semibold text-ink">No custody:</span> payments
go directly to your wallet.
</li>
<li> <li>
<span className="font-semibold text-ink">View-only by design:</span>{" "} <span className="font-semibold text-ink">View-only by design:</span>{" "}
we never ask for spend keys. we never ask for spend keys.
@@ -164,33 +159,27 @@ const faqItems: FaqItem[] = [
downtime can delay status updates, but it does not affect on-chain downtime can delay status updates, but it does not affect on-chain
validity of payments. validity of payments.
</li> </li>
</ul> </ul>
<p className="mt-4 text-ink-soft"> <p className="mt-4 text-ink-soft">
If you prefer a third-party hosted flow for convenience, compare If you use a third-party service, review what keys and data it requires, and whether it ever takes custody
providers carefully and choose what matches your risk tolerance and or intermediates funds.
operational needs. </p>
</p> </>
</> ),
), },
}, {
{ question: "How does XMR Checkout differ from BTCPay Server?",
question: "Why choose XMR Checkout instead of BTCPay Server?", answer: (
answer: ( <>
<> <p className="text-ink-soft">
<p className="text-ink-soft"> BTCPay Server is a general-purpose, self-hosted payment server with a primary focus on Bitcoin
BTCPay Server is a strong self-hosted option, with a primary focus on and optional integrations for other assets (including Monero via a plugin). XMR Checkout is intentionally
Bitcoin (including the Lightning Network) and optional integrations focused on Monero checkout with a view-only trust boundary and a minimal, deterministic core.
for other assets (including Monero via a plugin). XMR Checkout is </p>
intentionally focused on Monero checkout with a view-only trust <p className="text-ink-soft">
boundary and a minimal, deterministic core. Some hosted BTCPay deployments may not include the Monero plugin by default. XMR Checkout provides a
</p> small compatibility layer so teams can integrate without running a full BTCPay deployment.
<p className="text-ink-soft"> </p>
BTCPay Server configuration can be difficult, and while hosted
BTCPay options exist, they are often not configured with the Monero
plugin. For that reason we provide a basic (greenfield) integration
layer so teams can accept Monero without the requirement of
self-hosting.
</p>
<ul className="mt-4 grid gap-2 text-sm text-ink-soft"> <ul className="mt-4 grid gap-2 text-sm text-ink-soft">
<li> <li>
<span className="font-semibold text-ink">Monero-first UX:</span>{" "} <span className="font-semibold text-ink">Monero-first UX:</span>{" "}
+1 -2
View File
@@ -67,8 +67,7 @@ export default async function MarketingLayout({
<footer className="site-footer"> <footer className="site-footer">
<div className="site-footer-copy"> <div className="site-footer-copy">
<p> <p>
xmrcheckout.com - Non-custodial Monero checkout software. Zero xmrcheckout.com - Non-custodial Monero checkout software. Open source. Self-hostable.
service fees.
</p> </p>
<p> <p>
<Link <Link
+19 -16
View File
@@ -14,12 +14,11 @@ export default function MarketingHomePage() {
<div className="grid items-center gap-12 lg:grid-cols-[1.1fr_0.9fr]"> <div className="grid items-center gap-12 lg:grid-cols-[1.1fr_0.9fr]">
<div className="grid max-w-[38rem] gap-6 animate-[rise_0.9s_ease_both]"> <div className="grid max-w-[38rem] gap-6 animate-[rise_0.9s_ease_both]">
<h1 className="font-serif text-[clamp(2.6rem,2.2rem+2.3vw,4.3rem)] leading-[1.02]"> <h1 className="font-serif text-[clamp(2.6rem,2.2rem+2.3vw,4.3rem)] leading-[1.02]">
Hosted Monero checkout that keeps custody and personal data with you. Monero checkout software with view-only detection and merchant-owned custody.
</h1> </h1>
<p className="text-[1.08rem] leading-relaxed text-ink-soft"> <p className="text-[1.08rem] leading-relaxed text-ink-soft">
Create invoices, detect on-chain payments with view-only access, Create invoices, detect on-chain payments using your primary address and secret view key,
and relay status to your systems - all without ever holding or and relay status to your systems - without ever holding or moving funds.
moving funds.
</p> </p>
<ul className="grid gap-3 text-sm text-ink-soft"> <ul className="grid gap-3 text-sm text-ink-soft">
<li className="flex items-start gap-3"> <li className="flex items-start gap-3">
@@ -31,29 +30,26 @@ export default function MarketingHomePage() {
<li className="flex items-start gap-3"> <li className="flex items-start gap-3">
<span className="mt-1.5 h-2 w-2 rounded-full bg-monero"></span> <span className="mt-1.5 h-2 w-2 rounded-full bg-monero"></span>
<span> <span>
No identifying information required - your primary address is the identifier. No account or email required - your primary address is the identifier.
</span> </span>
</li> </li>
<li className="flex items-start gap-3"> <li className="flex items-start gap-3">
<span className="mt-1.5 h-2 w-2 rounded-full bg-monero"></span> <span className="mt-1.5 h-2 w-2 rounded-full bg-monero"></span>
<span>BTCPay Server compatibility for existing integrations.</span> <span>BTCPay-compatible invoice endpoints for existing integrations.</span>
</li> </li>
</ul> </ul>
<p className="inline-flex w-fit items-center rounded-full bg-monero px-4 py-2 text-xs font-semibold uppercase tracking-[0.2em] text-ink shadow-[0_12px_24px_rgba(242,104,34,0.25)]"> <p className="inline-flex w-fit items-center rounded-full bg-monero px-4 py-2 text-xs font-semibold uppercase tracking-[0.2em] text-ink shadow-[0_12px_24px_rgba(242,104,34,0.25)]">
Non-custodial · view-only access · merchant-owned funds Non-custodial · view-only access · merchant-owned funds
</p> </p>
<p className="text-sm font-semibold text-ink-soft"> <p className="text-sm font-semibold text-ink-soft">
We are not a payment processor, we are a payment <i>enabler</i>. Open source. Self-hostable.
</p>
<p className="text-sm font-semibold text-ink-soft">
Zero service fees.
</p> </p>
<div className="flex flex-col gap-3 sm:flex-row sm:items-center"> <div className="flex flex-col gap-3 sm:flex-row sm:items-center">
<Link <Link
className="inline-flex w-full items-center justify-center rounded-full bg-ink px-8 py-4 text-base font-semibold text-cream shadow-[0_18px_34px_rgba(16,18,23,0.2)] transition hover:-translate-y-0.5 sm:w-auto" className="inline-flex w-full items-center justify-center rounded-full bg-ink px-8 py-4 text-base font-semibold text-cream shadow-[0_18px_34px_rgba(16,18,23,0.2)] transition hover:-translate-y-0.5 sm:w-auto"
href="/login" href="/login"
> >
Start accepting Monero Log in
</Link> </Link>
<Link <Link
className="inline-flex w-full items-center justify-center rounded-full border border-stroke bg-white/60 px-6 py-3 text-sm font-semibold text-ink transition hover:-translate-y-0.5 sm:w-auto" className="inline-flex w-full items-center justify-center rounded-full border border-stroke bg-white/60 px-6 py-3 text-sm font-semibold text-ink transition hover:-translate-y-0.5 sm:w-auto"
@@ -61,6 +57,14 @@ export default function MarketingHomePage() {
> >
View documentation View documentation
</Link> </Link>
<Link
className="inline-flex w-full items-center justify-center rounded-full border border-stroke bg-white/60 px-6 py-3 text-sm font-semibold text-ink transition hover:-translate-y-0.5 sm:w-auto"
href="https://github.com/xmrcheckout/xmrcheckout#self-hosted-deployment-docker-compose"
target="_blank"
rel="noreferrer"
>
Self-host
</Link>
</div> </div>
</div> </div>
<div className="relative grid gap-4"> <div className="relative grid gap-4">
@@ -127,10 +131,10 @@ export default function MarketingHomePage() {
Relay Relay
</p> </p>
<h3 className="mt-2 font-serif text-base sm:text-xl"> <h3 className="mt-2 font-serif text-base sm:text-xl">
Status updates in real time. Status updates via API + webhooks.
</h3> </h3>
<p className="mt-2 text-xs text-ink-soft sm:text-sm"> <p className="mt-2 text-xs text-ink-soft sm:text-sm">
Keep your stack updated without handing over control. Keep your systems updated without handing over control.
</p> </p>
</div> </div>
</div> </div>
@@ -247,11 +251,10 @@ export default function MarketingHomePage() {
<div className="absolute bottom-[-120px] left-[-40px] h-56 w-56 rounded-full bg-[radial-gradient(circle,rgba(93,122,106,0.4),transparent_70%)] blur-2xl"></div> <div className="absolute bottom-[-120px] left-[-40px] h-56 w-56 rounded-full bg-[radial-gradient(circle,rgba(93,122,106,0.4),transparent_70%)] blur-2xl"></div>
</div> </div>
<h2 className="font-serif text-3xl"> <h2 className="font-serif text-3xl">
Start accepting Monero without custody. Use Monero without giving up custody.
</h2> </h2>
<p className="text-cream/80"> <p className="text-cream/80">
Use the hosted checkout. Create invoices, query status. Control Hosted invoice pages, API, and webhooks for status updates. View-only access, no fund movement.
stays with you.
</p> </p>
<div className="flex flex-wrap gap-3"> <div className="flex flex-wrap gap-3">
<LoginTrigger <LoginTrigger
+2 -2
View File
@@ -112,7 +112,7 @@ export default function DonateModal() {
Support xmrcheckout.com Support xmrcheckout.com
</p> </p>
<h3 id="donate-title" className="mt-2 font-serif text-xl"> <h3 id="donate-title" className="mt-2 font-serif text-xl">
Send a quick donation. If xmrcheckout.com has been helpful, a donation is appreciated.
</h3> </h3>
</div> </div>
<button <button
@@ -125,7 +125,7 @@ export default function DonateModal() {
</button> </button>
</div> </div>
<p className="mt-3 text-ink-soft"> <p className="mt-3 text-ink-soft">
Choose an amount and we will open a read-only invoice page. Choose an amount and we will open an invoice page with payment details and status.
</p> </p>
<form className="mt-4 grid gap-4" action={formAction} ref={formRef}> <form className="mt-4 grid gap-4" action={formAction} ref={formRef}>
<label <label