From 9bf8b1d03b7fdc18381e7d6d568e41b0a2ddc166 Mon Sep 17 00:00:00 2001 From: DevBehindYou Date: Sun, 11 Oct 2026 19:30:02 +0530 Subject: [PATCH 1/5] Support page: Atomic Coin Reactor and three Patreon tiers - Interactive reactor gauge on /support-atomic-notes: pick $1 to $10, see the exact Atomic Coins. $2, $4 and $10 route to the Patreon memberships (Spark, Catalyst, Reactor); every other amount routes to a one-time Ko-fi payment. A support-only mode skips coins. - Versioned reward table in src/lib/supportPricing.ts (integer cents, no interpolation), matching 03_COIN_PRICING_IMPLEMENTATION.md. Covered by tests/support-pricing.test.mjs, now run in CI. - Membership cards with the new tier covers, a comparison table, and a FAQ. - The page only previews rewards: payment happens on Patreon or Ko-fi, and coins are still added by hand after the payment is checked. Reduced motion is respected. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/typecheck.yml | 2 + package.json | 3 +- public/support/atomic-catalyst-cover.webp | Bin 0 -> 31960 bytes public/support/atomic-reactor-cover.webp | Bin 0 -> 41368 bytes public/support/atomic-spark-cover.webp | Bin 0 -> 31828 bytes src/app/globals.css | 778 ++++++++++++++++++++++ src/app/support-atomic-notes/page.tsx | 271 ++++++-- src/components/SupportReactor.tsx | 294 ++++++++ src/lib/supportPricing.ts | 139 ++++ tests/support-pricing.test.mjs | 75 +++ 10 files changed, 1494 insertions(+), 68 deletions(-) create mode 100644 public/support/atomic-catalyst-cover.webp create mode 100644 public/support/atomic-reactor-cover.webp create mode 100644 public/support/atomic-spark-cover.webp create mode 100644 src/components/SupportReactor.tsx create mode 100644 src/lib/supportPricing.ts create mode 100644 tests/support-pricing.test.mjs diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 9b23004..35e5421 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -36,3 +36,5 @@ jobs: run: npm run build - name: Verify production routes and admin sessions run: npm run test:smoke + - name: Verify support reward table + run: npm run test:pricing diff --git a/package.json b/package.json index 1d84209..2eaca1f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "build": "next build", "start": "next start", "lint": "next lint", - "test:smoke": "node --test tests/runtime.test.mjs" + "test:smoke": "node --test tests/runtime.test.mjs", + "test:pricing": "node --experimental-strip-types --no-warnings --test tests/support-pricing.test.mjs" }, "dependencies": { "@vercel/analytics": "^2.0.1", diff --git a/public/support/atomic-catalyst-cover.webp b/public/support/atomic-catalyst-cover.webp new file mode 100644 index 0000000000000000000000000000000000000000..ce7b636d6d2aedeb6f43122c7953eedf9e280484 GIT binary patch literal 31960 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

5ORaX*&(>jx+KAW$6T5-UP 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 z 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�a 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 literal 0 HcmV?d00001 diff --git a/src/app/globals.css b/src/app/globals.css index a96a6de..384c77e 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -2837,3 +2837,781 @@ section h2 { transform: none; } } + +/* ---------- support reactor ---------- */ +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} +.support-promise { + font-family: var(--mono); + text-transform: uppercase; + letter-spacing: 1.6px; + font-size: 0.74rem; + color: var(--signal); + margin: 14px 0 24px; +} +#reactor, +#monthly, +#how, +#faq { + scroll-margin-top: 72px; +} +.rx-section { + background-color: var(--ink); + background-image: radial-gradient(rgba(244, 245, 241, 0.07) 1.2px, transparent 1.3px); + background-size: 22px 22px; +} +.rx-intro { + max-width: 56ch; + margin-bottom: 30px; +} +.rx-grid { + display: grid; + grid-template-columns: minmax(0, 58fr) minmax(0, 42fr); + border: 1px solid rgba(244, 245, 241, 0.16); + border-radius: 6px; + background: rgba(21, 23, 27, 0.72); +} +.reactor { + padding: 26px 28px 30px; + border-right: 1px solid rgba(244, 245, 241, 0.16); + min-width: 0; +} +.reactor-head, +.reactor-scale { + display: flex; + justify-content: space-between; + gap: 12px; + font-family: var(--mono); + font-size: 0.68rem; + letter-spacing: 1.6px; + text-transform: uppercase; +} +.reactor-head p { + margin: 0; +} +.reactor-label { + color: #8f88ff; +} +.reactor-tag { + color: rgba(244, 245, 241, 0.6); +} +.reactor.is-full .reactor-tag { + color: #ffa53c; +} + +.reactor-dial { + position: relative; + width: min(100%, 400px); + aspect-ratio: 1; + margin: 14px auto 6px; + container-type: inline-size; +} +.reactor-dial svg { + display: block; + width: 100%; + height: 100%; + overflow: visible; +} +.rx-seg { + fill: none; + stroke: rgba(244, 245, 241, 0.14); + stroke-width: 9; + transition: stroke 0.18s ease; +} +.rx-seg.member:not(.on) { + stroke: rgba(143, 136, 255, 0.38); +} +.rx-seg.on { + stroke: #4b40ff; +} +.reactor.is-full .rx-seg.on:nth-of-type(10) { + stroke: #ff8a00; +} +.rx-ring { + fill: none; + stroke: rgba(143, 136, 255, 0.4); + stroke-width: 1.5; + stroke-dasharray: 4 9; + transform-box: view-box; + transform-origin: 50% 50%; + animation: rx-spin 26s linear infinite reverse; +} +.rx-atom { + transform-box: view-box; + transform-origin: 50% 50%; + animation: rx-spin 22s linear infinite; +} +.rx-orbit { + fill: none; + stroke: #dedaff; + stroke-width: 3; + opacity: 0.92; +} +.reactor.is-full .rx-orbit { + stroke: #fff4e6; +} +.rx-electron { + fill: #ffffff; +} +.reactor.is-full .rx-electron { + fill: #ffb040; +} +.rx-core { + transform-box: fill-box; + transform-origin: 50% 50%; + animation: + rx-core-in 0.5s ease-out, + rx-breathe 4.5s ease-in-out 0.5s infinite; +} +.rx-spark { + position: absolute; + left: 50%; + top: 50%; + width: 12px; + height: 12px; + margin: -6px 0 0 -6px; + border-radius: 50%; + background: #fff; + box-shadow: + 0 0 10px 3px rgba(143, 136, 255, 0.9), + 0 0 22px 6px rgba(58, 47, 240, 0.6); + opacity: 0; + pointer-events: none; + animation: rx-spark 0.62s ease-in forwards; +} +.reactor.is-full .rx-spark { + box-shadow: + 0 0 10px 3px rgba(255, 176, 64, 0.95), + 0 0 24px 8px rgba(255, 138, 0, 0.55); +} +.reactor-count { + position: absolute; + inset: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + pointer-events: none; + text-align: center; +} +.rx-disc { + fill: #15171b; + stroke: #4b40ff; + stroke-width: 3; +} +.reactor.is-full .rx-disc { + stroke: #ff8a00; +} +.reactor-num { + font-family: var(--display); + font-size: clamp(2.6rem, 15cqw, 4rem); + line-height: 0.9; + color: #ffffff; + font-variant-numeric: tabular-nums; +} +.reactor-unit { + margin-top: 4px; + max-width: 28cqw; + font-family: var(--mono); + font-size: clamp(0.5rem, 2.4cqw, 0.6rem); + letter-spacing: 1.2px; + line-height: 1.3; + color: #a9a2ff; + font-weight: 500; +} +.reactor.is-full .reactor-unit { + color: #ffa53c; +} + +.reactor-slider { + margin-top: 10px; +} +.reactor-slider input[type="range"] { + -webkit-appearance: none; + appearance: none; + width: 100%; + height: 34px; + background: transparent; + cursor: pointer; + margin: 0; +} +.reactor-slider input[type="range"]::-webkit-slider-runnable-track { + height: 10px; + border-radius: 5px; + background: linear-gradient(to right, #4b40ff var(--fill), rgba(244, 245, 241, 0.16) var(--fill)); +} +.reactor-slider input[type="range"]::-moz-range-track { + height: 10px; + border-radius: 5px; + background: linear-gradient(to right, #4b40ff var(--fill), rgba(244, 245, 241, 0.16) var(--fill)); +} +.reactor-slider input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 28px; + height: 28px; + margin-top: -9px; + border-radius: 50%; + background: #f4f5f1; + border: 4px solid #3a2ff0; + box-shadow: 0 0 0 4px rgba(58, 47, 240, 0.25); +} +.reactor-slider input[type="range"]::-moz-range-thumb { + width: 20px; + height: 20px; + border-radius: 50%; + background: #f4f5f1; + border: 4px solid #3a2ff0; +} +.reactor-slider input[type="range"]:focus-visible { + outline: 2px solid #f4f5f1; + outline-offset: 4px; + border-radius: 6px; +} +.reactor-scale { + color: rgba(244, 245, 241, 0.55); + margin-top: 2px; +} + +.reactor-presets, +.reactor-mode { + display: grid; + gap: 10px; + margin-top: 16px; +} +.reactor-presets { + grid-template-columns: repeat(3, 1fr); +} +.reactor-mode { + grid-template-columns: 1fr 1fr; + margin-top: 10px; +} +.reactor-presets button, +.reactor-mode button { + font-family: var(--mono); + text-transform: uppercase; + letter-spacing: 1.4px; + font-size: 0.78rem; + padding: 12px 10px; + border-radius: 4px; + border: 1.5px solid rgba(244, 245, 241, 0.3); + background: transparent; + color: #f4f5f1; + cursor: pointer; + transition: + background 0.15s ease, + color 0.15s ease, + border-color 0.15s ease, + transform 0.12s ease; +} +.reactor-mode button { + font-size: 0.68rem; + padding: 10px; +} +.reactor-presets button { + display: flex; + flex-direction: column; + align-items: center; + gap: 3px; + padding: 10px 8px; +} +.rp-price { + font-size: 0.9rem; +} +.rp-name { + font-size: 0.58rem; + letter-spacing: 1.4px; + opacity: 0.75; +} +.reactor-presets button:hover, +.reactor-mode button:hover { + border-color: #f4f5f1; +} +.reactor-presets button:active, +.reactor-mode button:active { + transform: translateY(1px); +} +.reactor-presets button[aria-pressed="true"], +.reactor-mode button[aria-checked="true"] { + background: #f4f5f1; + color: #15171b; + border-color: #f4f5f1; +} +.reactor-presets button:focus-visible, +.reactor-mode button:focus-visible, +.reactor-go:focus-visible, +.reactor-copy:focus-visible, +.rx-side-link:focus-visible { + outline: 2px solid #8f88ff; + outline-offset: 3px; +} + +.reactor-data { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 12px; + margin: 22px 0 0; + padding-top: 18px; + border-top: 1px solid rgba(244, 245, 241, 0.16); +} +.reactor-data > div:last-child { + text-align: right; +} +.reactor-data dt { + font-family: var(--mono); + font-size: 0.64rem; + letter-spacing: 1.6px; + color: rgba(244, 245, 241, 0.6); +} +.reactor-data dd { + margin: 4px 0 0; + font-family: var(--display); + font-size: 2.3rem; + line-height: 1; + color: #fff; +} +.reactor-per { + font-family: var(--mono); + font-size: 0.8rem; + letter-spacing: 1px; + color: rgba(244, 245, 241, 0.7); +} +.reactor-route { + margin: 6px 0 0; + font-family: var(--mono); + font-size: 0.66rem; + letter-spacing: 1.6px; + color: #a9a2ff; +} +.reactor.is-full .reactor-route { + color: #ffa53c; +} +.reactor-where { + margin: 2px 0 0; + font-family: var(--mono); + font-size: 0.6rem; + letter-spacing: 1.4px; + color: rgba(244, 245, 241, 0.5); +} +.reactor-bonus { + margin: 6px 0 0; + font-family: var(--mono); + font-size: 0.66rem; + letter-spacing: 1.6px; + color: #a9a2ff; + animation: rx-fade 0.3s ease-out; +} +.reactor.is-full .reactor-bonus { + color: #ffa53c; +} + +.reactor-cta { + margin-top: 20px; + display: grid; + gap: 10px; +} +.reactor-go, +.reactor-copy { + display: flex; + justify-content: center; + align-items: center; + text-align: center; + font-family: var(--mono); + text-transform: uppercase; + letter-spacing: 1.4px; + font-size: 0.78rem; + padding: 15px 16px; + border-radius: 4px; + text-decoration: none; + cursor: pointer; + transition: + transform 0.12s ease, + box-shadow 0.12s ease, + background 0.15s ease; +} +.reactor-go { + background: #3a2ff0; + color: #fff; + border: 2px solid #f4f5f1; + box-shadow: 4px 4px 0 #f4f5f1; +} +.reactor-go:active { + transform: translate(2px, 2px); + box-shadow: 2px 2px 0 #f4f5f1; +} +.reactor.is-full .reactor-go:not(.is-disabled) { + background: #eb7d00; + color: #15171b; +} +.reactor-go.is-disabled { + background: transparent; + color: rgba(244, 245, 241, 0.65); + border: 1.5px dashed rgba(244, 245, 241, 0.35); + box-shadow: none; + cursor: not-allowed; +} +.reactor-copy { + background: transparent; + color: #f4f5f1; + border: 1.5px solid rgba(244, 245, 241, 0.35); +} +.reactor-copy:hover { + border-color: #f4f5f1; +} +.reactor-fine { + margin: 4px 0 0; + font-size: 0.86rem; + line-height: 1.55; + color: rgba(244, 245, 241, 0.72); +} + +.rx-side { + padding: 26px 28px 30px; + display: flex; + flex-direction: column; + gap: 6px; +} +.rx-side-label { + font-family: var(--mono); + font-size: 0.68rem; + letter-spacing: 1.8px; + color: #a9a2ff; + margin: 0 0 6px; +} +.rx-goes { + list-style: none; + margin: 0 0 22px; + padding: 0; + display: grid; +} +.rx-goes li { + display: grid; + grid-template-columns: 34px 1fr; + gap: 10px; + padding: 12px 0; + border-top: 1px solid rgba(244, 245, 241, 0.14); +} +.rx-goes-num { + font-family: var(--mono); + font-size: 0.74rem; + color: #a9a2ff; + padding-top: 3px; +} +.rx-goes h3 { + font-size: 1.35rem; + color: #fff; +} +.rx-goes p { + margin: 3px 0 0; + font-size: 0.9rem; + line-height: 1.5; + color: rgba(244, 245, 241, 0.72); +} +.rx-tiers { + list-style: none; + margin: 0; + padding: 0; + border: 1px solid rgba(244, 245, 241, 0.16); + border-radius: 4px; +} +.rx-tier { + display: grid; + grid-template-columns: 1fr auto auto; + gap: 14px; + align-items: baseline; + padding: 11px 14px; + border-top: 1px solid rgba(244, 245, 241, 0.12); +} +.rx-tier:first-child { + border-top: none; +} +.rx-tier-name { + font-family: var(--display); + font-size: 1.35rem; + color: #fff; + text-transform: uppercase; +} +.rx-tier-price { + font-family: var(--mono); + font-size: 0.86rem; + color: #f4f5f1; +} +.rx-tier-coins { + font-family: var(--mono); + font-size: 0.68rem; + letter-spacing: 1.2px; + color: #a9a2ff; +} +.rx-tier-reactor .rx-tier-coins { + color: #ffa53c; +} +.rx-side-link { + align-self: flex-start; + margin: 10px 0 20px; + font-family: var(--mono); + font-size: 0.72rem; + letter-spacing: 1.4px; + text-transform: uppercase; + color: #fff; +} +.rx-promise { + margin-top: auto; + padding: 16px 18px; + border: 1.5px solid #3a2ff0; + border-radius: 4px; + background: rgba(58, 47, 240, 0.14); +} +.rx-promise p:not(.rx-side-label) { + margin: 0; + font-size: 0.92rem; + line-height: 1.55; + color: rgba(244, 245, 241, 0.86); +} + +/* membership cards */ +.tier-intro { + max-width: 60ch; + margin-bottom: 28px; +} +.tier-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 24px; + align-items: stretch; +} +.tier-card { + display: flex; + flex-direction: column; + border: 2px solid var(--ink); + border-radius: 6px; + background: #fff; + box-shadow: 6px 6px 0 var(--ink); + overflow: hidden; +} +.tier-catalyst { + box-shadow: 6px 6px 0 var(--signal); +} +.tier-reactor { + box-shadow: 6px 6px 0 var(--high); +} +.tier-cover { + display: block; + width: 100%; + height: auto; + aspect-ratio: 920 / 400; + object-fit: cover; + border-bottom: 2px solid var(--ink); + background: var(--ink); +} +.tier-body { + display: flex; + flex-direction: column; + flex: 1; + padding: 20px 22px 24px; +} +.tier-level { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 8px; + margin: 0; + font-family: var(--mono); + font-size: 0.66rem; + letter-spacing: 1.4px; + color: var(--slate); +} +.tier-badge { + padding: 3px 8px; + border-radius: 20px; + background: var(--signal); + color: #fff; + font-size: 0.6rem; +} +.tier-card h3 { + font-size: 2.2rem; + margin-top: 8px; +} +.tier-price { + margin: 6px 0 0; + font-family: var(--display); + font-size: 2.8rem; + line-height: 1; +} +.tier-price span { + font-family: var(--mono); + font-size: 0.72rem; + letter-spacing: 1.4px; + margin-left: 6px; + color: var(--slate); +} +.tier-coins { + margin: 8px 0 0; + font-family: var(--mono); + font-size: 0.7rem; + letter-spacing: 1.3px; + color: var(--signal); +} +.tier-reactor .tier-coins { + color: #a35400; +} +.tier-impact { + margin: 12px 0 0; + line-height: 1.55; + color: #2b2e34; +} +.tier-card .support-list { + flex: 1; + align-content: start; + margin-bottom: 20px; +} +.tier-card .btn-signal { + align-self: flex-start; +} +.tier-table-wrap { + margin-top: 36px; + overflow-x: auto; +} +.tier-table { + width: 100%; + border-collapse: collapse; + border: 1.5px solid var(--ink); + background: #fff; + font-size: 0.95rem; +} +.tier-table th, +.tier-table td { + text-align: left; + padding: 12px 14px; + border-top: 1px solid var(--line); + vertical-align: top; +} +.tier-table thead th { + font-family: var(--mono); + font-size: 0.66rem; + letter-spacing: 1.4px; + text-transform: uppercase; + font-weight: 500; + background: var(--surface); + border-top: none; +} +.tier-table tbody th { + font-family: var(--display); + font-weight: 400; + font-size: 1.25rem; + text-transform: uppercase; + white-space: nowrap; +} +.support-end { + margin-top: 28px; +} +.support-sign { + margin: 26px 0 0; + font-family: var(--mono); + letter-spacing: 2px; + font-size: 0.74rem; + color: var(--signal); +} + +@keyframes rx-spin { + to { + transform: rotate(360deg); + } +} +@keyframes rx-breathe { + 0%, + 100% { + transform: scale(1); + } + 50% { + transform: scale(1.05); + } +} +@keyframes rx-core-in { + 0% { + transform: scale(0.86); + opacity: 0.7; + } + 60% { + transform: scale(1.06); + opacity: 1; + } + 100% { + transform: scale(1); + } +} +@keyframes rx-spark { + 0% { + opacity: 1; + transform: rotate(var(--a)) translateY(-45.5cqw); + } + 85% { + opacity: 1; + } + 100% { + opacity: 0; + transform: rotate(var(--a)) translateY(0); + } +} +@keyframes rx-fade { + from { + opacity: 0; + transform: translateY(4px); + } + to { + opacity: 1; + transform: none; + } +} + +@media (max-width: 980px) { + .rx-grid { + grid-template-columns: minmax(0, 1fr); + } + .reactor { + border-right: none; + border-bottom: 1px solid rgba(244, 245, 241, 0.16); + } + .tier-grid { + grid-template-columns: minmax(0, 1fr); + max-width: 560px; + } +} +@media (max-width: 420px) { + .reactor, + .rx-side { + padding: 20px 16px 24px; + } + .reactor-data dd { + font-size: 1.9rem; + } + .reactor-presets button { + font-size: 0.72rem; + } +} +@media (prefers-reduced-motion: reduce) { + .rx-ring, + .rx-atom, + .rx-core, + .reactor-bonus { + animation: none; + } + .rx-spark { + display: none; + } + .rx-seg, + .reactor-presets button, + .reactor-mode button, + .reactor-go, + .reactor-copy { + transition: none; + } +} diff --git a/src/app/support-atomic-notes/page.tsx b/src/app/support-atomic-notes/page.tsx index eaa5b68..4215117 100644 --- a/src/app/support-atomic-notes/page.tsx +++ b/src/app/support-atomic-notes/page.tsx @@ -1,17 +1,26 @@ import type { Metadata } from "next"; import { SiteNav } from "@/components/SiteNav"; import { SiteFooter } from "@/components/SiteFooter"; +import { SupportReactor } from "@/components/SupportReactor"; import { KOFI_URL, PATREON_URL } from "@/lib/content"; +import { MEMBERSHIPS, formatUsd } from "@/lib/supportPricing"; import { pageMetadata } from "@/lib/seo"; export const metadata: Metadata = pageMetadata({ - title: "Support Atomic Notes, get Atomic Coins early", + title: "Support Atomic Notes: power the build, get Atomic Coins", description: - "Support Atomic Notes on Patreon or Ko-fi at the amount you choose. Send your Atomic Notes account email, and the developer sends you Atomic Coins as an early-supporter reward.", + "Help keep Atomic Notes independent. Support it once on Ko-fi or monthly on Patreon, and get Atomic Coins as a thank-you. Your notes stay yours either way.", path: "/support-atomic-notes", - socialTitle: "Support Atomic Notes, get Atomic Coins early", + socialTitle: "Support Atomic Notes: power the build", }); +const GOES_TO: { t: string; d: string }[] = [ + { t: "Sync infrastructure", d: "The server and database that keep your devices in step." }, + { t: "Testing and bug fixes", d: "Real phones, real networks, and the bugs they find." }, + { t: "Security and reliability", d: "The vault, sync safety, and the boring work that keeps them sound." }, + { t: "Future releases", d: "New features, more platforms, and wider distribution." }, +]; + const STEPS: { t: string; d: React.ReactNode }[] = [ { t: "Find your email", @@ -23,11 +32,11 @@ const STEPS: { t: string; d: React.ReactNode }[] = [ ), }, { - t: "Pick a platform", + t: "Support once or monthly", d: ( <> - Support the DevBehindYou page on Patreon or Ko-fi, at the amount you choose. Both reach the same - developer and earn the same reward. + One-time support goes through Ko-fi, where you enter the amount. Monthly support is a Patreon{" "} + membership. Both reach the same developer. ), }, @@ -35,8 +44,8 @@ const STEPS: { t: string; d: React.ReactNode }[] = [ t: "Send your email", d: ( <> - On Patreon, send the developer a message. On Ko-fi, write it in the message box when you pay and mark the - message private. Check it letter by letter: the coins go to exactly that account. + On Ko-fi, paste the message from the reactor, add your email, and mark it private. On Patreon, send the + developer a message. Never send a password, recovery phrase, or sign-in code. ), }, @@ -44,35 +53,45 @@ const STEPS: { t: string; d: React.ReactNode }[] = [ t: "Get your coins", d: ( <> - The developer adds your early-supporter Atomic Coins to that account by hand. They show up in Atomic Energy - after the next refresh. + The developer checks the payment and adds the coins to that account by hand, so it can take a little time. + They show up in Atomic Energy after the next refresh. ), }, ]; -const PLATFORMS: { name: string; tag: string; url: string; label: string; points: string[] }[] = [ +const FAQ: { q: string; a: React.ReactNode }[] = [ + { + q: "Do I need to support to use Atomic Notes?", + a: "No. Writing, editing, and keeping notes on your phone never depends on a payment or a membership.", + }, + { + q: "What do Atomic Coins do?", + a: "They're in-app credits. You can turn them into Atomic Energy for cloud sync, or use them to make room for more notes.", + }, + { + q: "Are coins added instantly?", + a: "Not yet. The developer adds them by hand after checking the payment and the account email, so they can take a little time. These steps will be updated if delivery becomes automatic.", + }, + { + q: "Which amounts go to Patreon and which to Ko-fi?", + a: "$2, $4, and $10 are the monthly memberships on Patreon: Atomic Spark, Atomic Catalyst, and Atomic Reactor. Any other amount from $1 to $10 is a one-time payment on Ko-fi, where you enter the amount yourself.", + }, { - name: "Patreon", - tag: "MEMBERSHIP", - url: PATREON_URL, - label: "Support on Patreon", - points: [ - "Usually a monthly membership", - "Send your account email in a Patreon message", - "Cancel on Patreon at any time", - ], + q: "What if I pay a different amount on Ko-fi?", + a: "Coins follow the amount you actually paid, using the reactor's table for $1 to $10. For more than $10, message the developer before paying.", }, { - name: "Ko-fi", - tag: "ONE-TIME OR MONTHLY", - url: KOFI_URL, - label: "Support on Ko-fi", - points: [ - "Good for a single payment", - "Put your account email in the message and mark it private", - "Monthly support is also available on Ko-fi", - ], + q: "Can I support without getting coins?", + a: "Yes. Choose Support only in the reactor, or just leave a tip on Ko-fi without an email.", + }, + { + q: "What if I sent the wrong account email?", + a: "Message the developer on the platform you used, with your payment reference. Never share your password, recovery phrase, or a one-time code.", + }, + { + q: "Can I cancel a Patreon membership?", + a: "Yes, at any time on Patreon. Monthly coins are tied to each month that's actually paid.", }, ]; @@ -80,54 +99,147 @@ export default function SupportPage() { return ( <> -

+
-

SUPPORT ATOMIC NOTES

+

ATOMIC NOTES / INDEPENDENT DEVELOPMENT

- Support the build. Get coins early. + Help keep Atomic Notes independent.

- Atomic Notes is built by one developer, with no ads and no trackers. Coins aren't sold in the app - yet. Support the project on Patreon or Ko-fi, and the developer sends Atomic Coins to your account as an - early-supporter reward. + Atomic Notes is a source-available, local-first notes app built by one developer, with no ads, no + trackers, and no AI. Your support funds sync infrastructure, security work, real-device testing, and + future releases. As a thank-you, supporters get Atomic Coins.

+

Your notes stay yours, whether or not you support.

-
+
-

TWO WAYS TO SUPPORT

+

ATOMIC NOTES / SUPPORT SYSTEM 01

- Pick the one that suits you. + Power the build.

-
- {PLATFORMS.map((p) => ( -
-

{p.tag}

-

{p.name}

-
    - {p.points.map((pt) => ( -
  • {pt}
  • - ))} -
- - {p.label} - +

+ Pick an amount and see your Atomic Coins. $2, $4, and $10 are the monthly memberships on Patreon. Any + other amount is a one-time payment on Ko-fi. +

+
+ + +
+
+
+ +
+
+

MONTHLY ON PATREON

+

+ Choose your orbit. +

+

+ Three memberships, each with Atomic Coins for every month that's paid. Cancel on Patreon at any time. +

+
+ {MEMBERSHIPS.map((m) => ( +
+ {/* eslint-disable-next-line @next/next/no-img-element */} + +
+

+ TIER {m.level} · {m.tagline.toUpperCase()} + {m.badge ? {m.badge.toUpperCase()} : null} +

+

{m.name}

+

+ {formatUsd(m.cents).replace(".00", "")} + / MONTH +

+

{m.coins} ATOMIC COINS EACH PAID MONTH

+

{m.impact}

+
    + {m.benefits.map((b) => ( +
  • {b}
  • + ))} +
+ + {m.cta} + +
+
))}
+ +
+ + + + + + + + + + + + {MEMBERSHIPS.map((m) => ( + + + + + + + ))} + +
Patreon memberships compared
MembershipPriceCoins each paid monthAlso included
{m.name}{formatUsd(m.cents)} a month{m.coins}{m.benefits.slice(1).join(", ")}
+
@@ -135,7 +247,7 @@ export default function SupportPage() {

FOUR STEPS

- How the reward reaches you. + How the coins reach you.

    {STEPS.map((s, i) => ( @@ -152,10 +264,9 @@ export default function SupportPage() {

    IMPORTANT

    Use the exact account email

    - The reward is sent to the email you write, not to your Patreon or Ko-fi name. A wrong or misspelled - email means the coins can't reach you. If you signed in with more than one Google account, use the - one that holds your notes. On Ko-fi, mark the message private so your email isn't shown on the - public page. + Coins go to the email you write, not to your Patreon or Ko-fi name. A wrong or misspelled email means + the coins can't reach you. If you signed in with more than one Google account, use the one that + holds your notes. On Ko-fi, mark the message private so your email isn't shown on the public page.

@@ -165,7 +276,7 @@ export default function SupportPage() { Patreon or Ko-fi handles the payment. Atomic Notes never sees your card, PayPal, or bank details.
  • Each platform charges its own fees, under its own terms.
  • -
  • The developer sends rewards by hand, so they can take a little time to arrive.
  • +
  • Coins are added by hand after the payment is checked, so they can take a little time.
  • Writing notes stays free. Coins only buy sync energy and room for more notes.
  • @@ -197,14 +308,40 @@ export default function SupportPage() {
    30 more coins, room for 100 notes
    - +
    + +
    +
    diff --git a/src/components/SupportReactor.tsx b/src/components/SupportReactor.tsx new file mode 100644 index 0000000..642cecd --- /dev/null +++ b/src/components/SupportReactor.tsx @@ -0,0 +1,294 @@ +"use client"; + +import { useEffect, useRef, useState } from "react"; +import { KOFI_URL, PATREON_URL } from "@/lib/content"; +import { + DEFAULT_CENTS, + MAX_CENTS, + MIN_CENTS, + PRESET_CENTS, + REWARD_STEPS, + STEP_CENTS, + formatUsd, + quote, + supportMessage, +} from "@/lib/supportPricing"; + +const CX = 200; +const CY = 200; +const SEG_R = 182; +const SEGMENTS = REWARD_STEPS.length; + +/** One arc of the outer dial, for dollar step [i]. */ +function segmentPath(i: number): string { + const span = 360 / SEGMENTS; + const gap = 5; + const a0 = ((i * span + gap / 2 - 90) * Math.PI) / 180; + const a1 = (((i + 1) * span - gap / 2 - 90) * Math.PI) / 180; + const x0 = CX + SEG_R * Math.cos(a0); + const y0 = CY + SEG_R * Math.sin(a0); + const x1 = CX + SEG_R * Math.cos(a1); + const y1 = CY + SEG_R * Math.sin(a1); + return `M ${x0.toFixed(2)} ${y0.toFixed(2)} A ${SEG_R} ${SEG_R} 0 0 1 ${x1.toFixed(2)} ${y1.toFixed(2)}`; +} + +function usePrefersReducedMotion(): boolean { + const [reduced, setReduced] = useState(false); + useEffect(() => { + const mq = window.matchMedia("(prefers-reduced-motion: reduce)"); + const update = () => setReduced(mq.matches); + update(); + mq.addEventListener("change", update); + return () => mq.removeEventListener("change", update); + }, []); + return reduced; +} + +/** Counts from the shown value to [target] in about 300 ms, or jumps when motion is reduced. */ +function useRollingNumber(target: number, reduced: boolean): number { + const [shown, setShown] = useState(target); + const from = useRef(target); + useEffect(() => { + if (reduced) { + from.current = target; + setShown(target); + return; + } + const start = performance.now(); + const begin = from.current; + let raf = 0; + const tick = (now: number) => { + const p = Math.min(1, (now - start) / 300); + const eased = 1 - Math.pow(1 - p, 3); + const v = Math.round(begin + (target - begin) * eased); + from.current = v; + setShown(v); + if (p < 1) raf = requestAnimationFrame(tick); + }; + raf = requestAnimationFrame(tick); + // requestAnimationFrame pauses in background tabs: make sure the final number still lands. + const settle = window.setTimeout(() => { + from.current = target; + setShown(target); + }, 360); + return () => { + cancelAnimationFrame(raf); + window.clearTimeout(settle); + }; + }, [target, reduced]); + return shown; +} + +export function SupportReactor() { + const [cents, setCents] = useState(DEFAULT_CENTS); + const [supportOnly, setSupportOnly] = useState(false); + const [pulse, setPulse] = useState(0); + const [copied, setCopied] = useState(false); + const reduced = usePrefersReducedMotion(); + + const q = quote(cents); + const steps = cents / STEP_CENTS; + const full = cents === MAX_CENTS; + const monthly = q.channel === "patreon" && !supportOnly; + const coinsShown = useRollingNumber(q.coins, reduced); + const usd = formatUsd(cents); + const where = monthly ? "Patreon" : "Ko-fi"; + + function choose(next: number) { + if (next === cents) return; + setCents(next); + setPulse((p) => p + 1); + setCopied(false); + } + + async function copyMessage() { + try { + await navigator.clipboard.writeText(supportMessage(q)); + setCopied(true); + window.setTimeout(() => setCopied(false), 2400); + } catch { + setCopied(false); + } + } + + const sparkAngle = ((steps - 0.5) * 360) / SEGMENTS; + + return ( +
    +
    +

    ATOMIC COIN REACTOR

    +

    {full ? "FULL POWER" : `STEP ${String(steps).padStart(2, "0")} / 10`}

    +
    + +
    + + + + + + + + + + + + + + + {REWARD_STEPS.map((s, i) => ( + + ))} + + + + + + + {[0, 60, 120].map((deg) => ( + + + + + ))} + + + + + +
    + +

    + {supportOnly + ? `${usd} one-time support on Ko-fi, no coins` + : monthly + ? `${usd} a month on Patreon, ${q.membership?.name}: ${q.coins} Atomic Coins each paid month` + : `${usd} one-time on Ko-fi: ${q.coins} Atomic Coins`} +

    + +
    + + choose(Number(e.target.value) * 100)} + aria-valuetext={`${usd}, ${q.coins} Atomic Coins`} + style={{ "--fill": `${((steps - 1) / 9) * 100}%` } as React.CSSProperties} + /> + +
    + +
    + {PRESET_CENTS.map((p) => { + const m = quote(p).membership; + return ( + + ); + })} +
    + +
    + + +
    + +
    +
    +
    {monthly ? "MONTHLY ON PATREON" : "ONE-TIME ON KO-FI"}
    +
    + {usd} + {monthly ? / MO : null} +
    + {monthly ?

    {q.membership?.name.toUpperCase()}

    : null} +
    +
    +
    {monthly ? "EACH PAID MONTH" : "YOU RECEIVE"}
    +
    {supportOnly ? "OUR THANKS" : `${q.coins} COINS`}
    + {!supportOnly && q.bonusCoins > 0 ? ( +

    + +{q.bonusCoins} BONUS COINS +

    + ) : null} +
    +
    + +
    + {supportOnly ? ( + <> + + Support {usd} on Ko-fi + +

    + No coins and no account email needed. Enter {usd} on Ko-fi, where the payment happens. +

    + + ) : monthly ? ( + <> + + Join {q.membership?.name} on Patreon + + +

    + A monthly membership: {usd} a month and {q.coins} Atomic Coins each paid month. Cancel any time on + Patreon. After joining, send the message with your Atomic Notes account email. Coins are added by hand + after the developer checks the payment. +

    + + ) : ( + <> + + Support {usd} on Ko-fi & get {q.coins} coins + + +

    + A one-time payment. On Ko-fi, enter {usd}, paste the message, add your Atomic Notes account email, and + mark it private. Coins are added by hand after the developer checks the payment. +

    + + )} +

    PAYMENT ON {where.toUpperCase()} · THIS PAGE ONLY PREVIEWS THE REWARD

    +
    +
    + ); +} diff --git a/src/lib/supportPricing.ts b/src/lib/supportPricing.ts new file mode 100644 index 0000000..3c4980f --- /dev/null +++ b/src/lib/supportPricing.ts @@ -0,0 +1,139 @@ +/** + * Support rewards: Atomic Coins for each whole-dollar amount from $1 to $10, and where to pay. + * + * This is a versioned table, not a formula. Amounts are in integer US cents. + * - $2, $4 and $10 are the Patreon memberships (Spark, Catalyst, Reactor): the same coins each paid month. + * - Every other amount is a one-time payment on Ko-fi, where the supporter enters the amount. + * + * The page only previews rewards. Coins are granted by hand on the Server, after the payment is + * checked, against the amount actually paid. Change a reward here and bump the version. + */ + +export const SUPPORT_PRICING_VERSION = "2026-10-11.v2"; + +/** Coins per dollar before any bonus. */ +export const BASE_COINS_PER_DOLLAR = 10; + +export type MembershipId = "spark" | "catalyst" | "reactor"; +export type Channel = "patreon" | "kofi"; + +export type RewardStep = { + cents: number; + coins: number; + /** Set when this amount is a Patreon membership; otherwise it's a one-time Ko-fi payment. */ + membership?: MembershipId; +}; + +export const REWARD_STEPS: readonly RewardStep[] = [ + { cents: 100, coins: 10 }, + { cents: 200, coins: 20, membership: "spark" }, + { cents: 300, coins: 30 }, + { cents: 400, coins: 50, membership: "catalyst" }, + { cents: 500, coins: 65 }, + { cents: 600, coins: 80 }, + { cents: 700, coins: 95 }, + { cents: 800, coins: 110 }, + { cents: 900, coins: 130 }, + { cents: 1000, coins: 150, membership: "reactor" }, +]; + +export const MIN_CENTS = REWARD_STEPS[0].cents; +export const MAX_CENTS = REWARD_STEPS[REWARD_STEPS.length - 1].cents; +export const STEP_CENTS = 100; +export const DEFAULT_CENTS = 400; +export const PRESET_CENTS: readonly number[] = [200, 400, 1000]; + +export type Quote = { + cents: number; + coins: number; + bonusCoins: number; + channel: Channel; + membership: Membership | null; + version: string; +}; + +export type Membership = { + id: MembershipId; + level: string; + name: string; + tagline: string; + cents: number; + coins: number; + impact: string; + benefits: string[]; + cta: string; + cover: string; + badge?: string; +}; + +export const MEMBERSHIPS: readonly Membership[] = [ + { + id: "spark", + level: "01", + name: "Atomic Spark", + tagline: "Ignite the build", + cents: 200, + coins: 20, + impact: "A small, steady push that keeps independent development moving.", + benefits: ["20 Atomic Coins each paid month", "Supporter development updates"], + cta: "Ignite the spark", + cover: "/support/atomic-spark-cover.webp", + }, + { + id: "catalyst", + level: "02", + name: "Atomic Catalyst", + tagline: "Keep the orbit moving", + cents: 400, + coins: 50, + impact: "Helps cover sync infrastructure, debugging, and real-device testing.", + benefits: ["50 Atomic Coins each paid month", "Supporter development updates"], + cta: "Become a catalyst", + cover: "/support/atomic-catalyst-cover.webp", + badge: "Good balance", + }, + { + id: "reactor", + level: "03", + name: "Atomic Reactor", + tagline: "Power the build", + cents: 1000, + coins: 150, + impact: "Backs the deep work: security, sync reliability, testing, and future releases.", + benefits: [ + "150 Atomic Coins each paid month", + "Supporter development updates", + "A personal thank-you from the developer when you join", + "Your feature ideas read when planning what comes next", + ], + cta: "Power the reactor", + cover: "/support/atomic-reactor-cover.webp", + }, +]; + +/** The reward and payment route for an exact amount. Throws for any amount not in the table. */ +export function quote(cents: number): Quote { + const step = REWARD_STEPS.find((s) => s.cents === cents); + if (!Number.isSafeInteger(cents) || !step) throw new Error(`Unsupported contribution amount: ${cents}`); + const membership = step.membership ? (MEMBERSHIPS.find((m) => m.id === step.membership) ?? null) : null; + return { + cents, + coins: step.coins, + bonusCoins: Math.max(0, step.coins - (step.cents / 100) * BASE_COINS_PER_DOLLAR), + channel: membership ? "patreon" : "kofi", + membership, + version: SUPPORT_PRICING_VERSION, + }; +} + +export function formatUsd(cents: number): string { + return `$${(cents / 100).toFixed(2)}`; +} + +/** The text a supporter sends with their payment, so the reward can be matched by hand. */ +export function supportMessage(q: Quote): string { + const what = q.membership + ? `${q.membership.name} membership (${formatUsd(q.cents)} a month, ${q.coins} Atomic Coins each paid month)` + : `${formatUsd(q.cents)} one-time support for ${q.coins} Atomic Coins`; + return `Atomic Notes: ${what}, rewards ${q.version}. My Atomic Notes account email: `; +} diff --git a/tests/support-pricing.test.mjs b/tests/support-pricing.test.mjs new file mode 100644 index 0000000..d4db240 --- /dev/null +++ b/tests/support-pricing.test.mjs @@ -0,0 +1,75 @@ +// Run with: npm run test:pricing (Node 22+, using --experimental-strip-types). +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { + DEFAULT_CENTS, + MEMBERSHIPS, + PRESET_CENTS, + REWARD_STEPS, + formatUsd, + quote, + supportMessage, +} from "../src/lib/supportPricing.ts"; + +// The table from 03_COIN_PRICING_IMPLEMENTATION.md, confirmed by the owner on 2026-10-11. +const TABLE = { 100: 10, 200: 20, 300: 30, 400: 50, 500: 65, 600: 80, 700: 95, 800: 110, 900: 130, 1000: 150 }; + +test("every whole-dollar amount from $1 to $10 gives the exact table reward", () => { + for (const [cents, coins] of Object.entries(TABLE)) assert.equal(quote(Number(cents)).coins, coins, `${cents} cents`); +}); + +test("bonus is measured against 10 coins per dollar", () => { + assert.deepEqual( + Object.keys(TABLE).map((c) => quote(Number(c)).bonusCoins), + [0, 0, 0, 10, 15, 20, 25, 30, 40, 50], + ); +}); + +test("$2, $4 and $10 route to the Patreon memberships", () => { + assert.deepEqual( + [200, 400, 1000].map((c) => [quote(c).channel, quote(c).membership?.name]), + [ + ["patreon", "Atomic Spark"], + ["patreon", "Atomic Catalyst"], + ["patreon", "Atomic Reactor"], + ], + ); +}); + +test("every other amount routes to a one-time Ko-fi payment", () => { + for (const cents of [100, 300, 500, 600, 700, 800, 900]) { + const q = quote(cents); + assert.equal(q.channel, "kofi"); + assert.equal(q.membership, null); + } +}); + +test("membership rewards equal the table rewards for the same price", () => { + for (const m of MEMBERSHIPS) assert.equal(m.coins, TABLE[m.cents], m.name); +}); + +test("amounts outside the table are rejected, never interpolated", () => { + for (const cents of [0, 50, 150, 450, 1100, -100, 400.5, Number.NaN]) { + assert.throws(() => quote(cents), /Unsupported/); + } +}); + +test("the table covers every dollar from $1 to $10, in order", () => { + assert.deepEqual(REWARD_STEPS.map((s) => s.cents), Object.keys(TABLE).map(Number)); +}); + +test("presets are the three memberships, and the default is Catalyst", () => { + assert.deepEqual(PRESET_CENTS, [200, 400, 1000]); + assert.equal(quote(DEFAULT_CENTS).membership?.id, "catalyst"); +}); + +test("the copied message names the route, amount, coins, and version", () => { + assert.match(supportMessage(quote(700)), /\$7\.00 one-time support for 95 Atomic Coins, rewards 2026-10-11\.v2/); + assert.match(supportMessage(quote(400)), /Atomic Catalyst membership \(\$4\.00 a month, 50 Atomic Coins each paid month\)/); + assert.match(supportMessage(quote(100)), /account email: $/); + assert.equal(formatUsd(1000), "$10.00"); +}); + +test("copy never calls Atomic Notes open source", () => { + assert.doesNotMatch(JSON.stringify(MEMBERSHIPS), /open[ -]source/i); +}); From 57db2a94948cb4a26fe02cf76cdc1086d609956c Mon Sep 17 00:00:00 2001 From: DevBehindYou Date: Sun, 11 Oct 2026 19:32:57 +0530 Subject: [PATCH 2/5] Support page: Patreon buttons open the membership join page Co-Authored-By: Claude Opus 5.5 --- src/app/support-atomic-notes/page.tsx | 6 +++--- src/components/SupportReactor.tsx | 4 ++-- src/lib/content.ts | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/support-atomic-notes/page.tsx b/src/app/support-atomic-notes/page.tsx index 4215117..4248863 100644 --- a/src/app/support-atomic-notes/page.tsx +++ b/src/app/support-atomic-notes/page.tsx @@ -2,7 +2,7 @@ import type { Metadata } from "next"; import { SiteNav } from "@/components/SiteNav"; import { SiteFooter } from "@/components/SiteFooter"; import { SupportReactor } from "@/components/SupportReactor"; -import { KOFI_URL, PATREON_URL } from "@/lib/content"; +import { KOFI_URL, PATREON_JOIN_URL } from "@/lib/content"; import { MEMBERSHIPS, formatUsd } from "@/lib/supportPricing"; import { pageMetadata } from "@/lib/seo"; @@ -209,7 +209,7 @@ export default function SupportPage() {
  • {b}
  • ))} - + {m.cta} @@ -334,7 +334,7 @@ export default function SupportPage() { Open the reactor - + Join on Patreon diff --git a/src/components/SupportReactor.tsx b/src/components/SupportReactor.tsx index 642cecd..9130ddf 100644 --- a/src/components/SupportReactor.tsx +++ b/src/components/SupportReactor.tsx @@ -1,7 +1,7 @@ "use client"; import { useEffect, useRef, useState } from "react"; -import { KOFI_URL, PATREON_URL } from "@/lib/content"; +import { KOFI_URL, PATREON_JOIN_URL } from "@/lib/content"; import { DEFAULT_CENTS, MAX_CENTS, @@ -261,7 +261,7 @@ export function SupportReactor() { ) : monthly ? ( <> - + Join {q.membership?.name} on Patreon + ); + })} + -
    - {PRESET_CENTS.map((p) => { - const m = quote(p).membership; - return ( - - ); - })} -
    + + -
    - - -
    +
    +
    +
    {monthly ? "MONTHLY ON PATREON" : "ONE-TIME ON KO-FI"}
    +
    + {usd} + {monthly ? / MO : null} +
    + {monthly ?

    {q.membership?.name.toUpperCase()}

    : null} +
    +
    +
    {monthly ? "EACH PAID MONTH" : "YOU RECEIVE"}
    +
    {supportOnly ? "OUR THANKS" : `${q.coins} COINS`}
    + {!supportOnly && q.bonusCoins > 0 ? ( +

    + +{q.bonusCoins} BONUS COINS +

    + ) : null} +
    +
    -
    -
    -
    {monthly ? "MONTHLY ON PATREON" : "ONE-TIME ON KO-FI"}
    -
    - {usd} - {monthly ? / MO : null} -
    - {monthly ?

    {q.membership?.name.toUpperCase()}

    : null} -
    -
    -
    {monthly ? "EACH PAID MONTH" : "YOU RECEIVE"}
    -
    {supportOnly ? "OUR THANKS" : `${q.coins} COINS`}
    - {!supportOnly && q.bonusCoins > 0 ? ( -

    - +{q.bonusCoins} BONUS COINS -

    - ) : null} +
    + {supportOnly ? ( + <> + + Support {usd} on Ko-fi + +

    + No coins and no account email needed. Enter {usd} on Ko-fi, where the payment happens. +

    + + ) : monthly ? ( + <> + + Join {q.membership?.name} on Patreon + + +

    + A monthly membership: {usd} a month and {q.coins} Atomic Coins each paid month. Cancel any time on + Patreon. After joining, send the message with your Atomic Notes account email. Coins are added by hand + after the developer checks the payment. +

    + + ) : ( + <> + + Support {usd} on Ko-fi & get {q.coins} coins + + +

    + A one-time payment. On Ko-fi, enter {usd}, paste the message, add your Atomic Notes account email, and + mark it private. Coins are added by hand after the developer checks the payment. +

    + + )} +

    PAYMENT ON {where.toUpperCase()} · THIS PAGE ONLY PREVIEWS THE REWARD

    +
    -
    - -
    - {supportOnly ? ( - <> - - Support {usd} on Ko-fi - -

    - No coins and no account email needed. Enter {usd} on Ko-fi, where the payment happens. -

    - - ) : monthly ? ( - <> - - Join {q.membership?.name} on Patreon - - -

    - A monthly membership: {usd} a month and {q.coins} Atomic Coins each paid month. Cancel any time on - Patreon. After joining, send the message with your Atomic Notes account email. Coins are added by hand - after the developer checks the payment. -

    - - ) : ( - <> - - Support {usd} on Ko-fi & get {q.coins} coins - - -

    - A one-time payment. On Ko-fi, enter {usd}, paste the message, add your Atomic Notes account email, and - mark it private. Coins are added by hand after the developer checks the payment. -

    - - )} -

    PAYMENT ON {where.toUpperCase()} · THIS PAGE ONLY PREVIEWS THE REWARD

    ); From 3e7d2336a87f2bc6457f50e590f1dae01f2e3160 Mon Sep 17 00:00:00 2001 From: DevBehindYou Date: Sun, 11 Oct 2026 23:26:39 +0530 Subject: [PATCH 5/5] Support: unpin the reactor dial on short landscape screens A phone held sideways is about 375px tall, so a pinned 266px dial under the 64px header would cover nearly the whole screen. Co-Authored-By: Claude Opus 5.5 --- src/app/globals.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/app/globals.css b/src/app/globals.css index 169d1a9..d6c6773 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -3679,3 +3679,9 @@ section h2 { } } +/* A phone on its side is too short to keep the dial pinned above the controls. */ +@media (max-width: 980px) and (max-height: 600px) { + .reactor-visual { + position: static; + } +}