Rebrand Wownero Moon Launch → Such Moon Launch

Visible-name rebrand for the game ahead of Play Store + App Store launch.
The Wownero theme stays in the game itself; this is purely about the
product name.

- Rename slug: /products/wownero-moon-launch → /products/such-moon-launch
- Rename blog post file + flip from draft → published with rewritten
  origin story (first game ever → Tabby Labs test app → full rebuild
  with tilt-to-steer controls + 11 levels)
- New "The Story" section on the product page
- StoreButtons: accept null href to render disabled "Coming Soon"
  buttons; add SuchMoonLaunchStoreButtons preset (Google + Apple null
  pending review, web link present, itch removed — no itch page exists)
- Add Such Moon Launch entry to /apps with coming-soon store buttons
- Bump privacy + terms last-updated dates to May 18, 2026
- Theme color: orange → amber to match the new brand palette
- Sweep all remaining "Wownero Moon Launch" / "wownero-moon-launch"
  references in product listing, sitemap, top-level privacy index, and
  website-relaunch blog post
This commit is contained in:
jwinterm
2026-05-18 09:59:23 -04:00
parent a6dc211ef6
commit d2ee3ffb55
11 changed files with 186 additions and 122 deletions
+27 -1
View File
@@ -5,7 +5,8 @@ import { Button } from "@repo/ui/components/button";
type StoreLink = {
platform: "apple" | "google";
href: string;
/** Live store URL, or `null` to render a disabled "Coming Soon" button. */
href: string | null;
};
type StoreButtonsProps = {
@@ -23,6 +24,14 @@ export function StoreButtons({ links, extraLinks }: StoreButtonsProps) {
<div className="flex flex-wrap gap-4 not-prose">
{links.map(({ platform, href }) => {
const { icon: Icon, label } = platformConfig[platform];
if (href === null) {
return (
<Button key={platform} variant="outline" size="lg" disabled>
<Icon className="h-5 w-5 mr-2" aria-hidden="true" />
{label} — Coming Soon
</Button>
);
}
return (
<a key={platform} href={href} target="_blank" rel="noopener noreferrer">
<Button variant="outline" size="lg">
@@ -62,6 +71,23 @@ export function SuchoiceStoreButtons() {
);
}
export function SuchMoonLaunchStoreButtons() {
// Both stores submitted 2026-05-18; pending review. Flip null → real URLs
// once the app is live (Apple assigns the appstore.com /id<NUM> at first
// approval; Google URL is predictable as id=com.suchsoftware.suchmoonlaunch).
return (
<StoreButtons
links={[
{ platform: "google", href: null },
{ platform: "apple", href: null },
]}
extraLinks={[
{ href: "https://moonlaunch.such.software", label: "Play on Web" },
]}
/>
);
}
export function BauhausEchoStoreButtons() {
return (
<StoreButtons