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
@@ -0,0 +1,64 @@
---
title: "Such Moon Launch — Rebuilding My First Game, Years Later"
date: "2026-05-18"
excerpt: "The expanded re-release of the very first game I ever wrote. 11 levels, 4 weapons, an endless mode, and proper tilt-to-steer controls. Wownero-themed pixel-art rocket arcade."
draft: false
---
import { SuchMoonLaunchStoreButtons } from "@/components/store-buttons";
**Such Moon Launch** is now submitted to [Google Play](https://play.google.com/store/apps/details?id=com.suchsoftware.suchmoonlaunch) and the App Store, and live on [the web](https://moonlaunch.such.software). Apple and Play store listings will go live as the review queues clear.
<SuchMoonLaunchStoreButtons />
## The Backstory
This was **the very first game I ever wrote**. The original — *Wownero Moon Launch* — was a single-level rocket-landing prototype I shipped years ago as a fun side project. The we released a slightly upgraded version as a test app called "Meowlet Moon Launch" under our old **Tabby Labs** developer account. One level in the original and four levels in Tabby Labs version. Basic physics. No music. No juice. But it worked, and people played it.
It sat there, mostly forgotten, for a long time. Every once in a while I'd open the project and think *there's something here.* The core loop — gravity, fuel, an unforgiving landing, is one of the all-time classics, going back to the 1969 [Lunar Lander mainframe game](https://en.wikipedia.org/wiki/Lunar_Lander_(video_game_genre)). Done right, it never gets old.
So we rebuilt it. And really gave it some juice.
## What Changed
What started as a single-level prototype is now a full game:
- **11 hand-tuned story levels** across the solar system — Moon, Mars, Venus, Io, Jupiter, Saturn, Neptune, Pluto, an asteroid belt, a rotating space station, and a Martian mothership boss fight
- **Procedural endless mode** — escalating waves with random target planets, more enemies, tighter hazard timing
- **8 ship upgrades** — thrust, fuel capacity, fuel efficiency, shield, armor, landing gear, rotation speed, crypto magnet
- **4 weapons** — auto-aim cannon, homing missiles, continuous laser, area-effect EMP
- **13 ship skins** — 8 purchasable cosmetics plus 4 achievement unlocks
- **Tilt-to-steer controls** on mobile, calibrated properly (no baseline drift, no "wait, which way is up" problem on phones)
- **3D landing mini-game** on final approach, with cockpit HUD, altimeter, and tilt indicator
- **Warp tunnel** transitions between levels
- **Global leaderboards** powered by our own backend at `api.such.software`
- **Cloud save** — progress synced to our servers, restorable on any device
- **13 achievements** — Google Play Games on Android, Game Center on iOS
- **Crypto-themed collectibles** — WOW, XMR, BTC, and DOGE pickups as in-game currency (no real cryptocurrency, no blockchain, no wallets — just pixel-art coins)
- **Cross-platform** — Android, iOS, Web, Windows, macOS, Linux, all from a single Godot 4 codebase
Same rocket. Same Moon. Almost everything else is new.
## Tilt Controls Done Right
If you've ever played a mobile tilt game and thought *why does this fight me?*, you're not imagining it. The mistake (as we learned) is tracking a moving baseline so the rest position can "drift" — but that same logic eats slow, intentional tilts before they ever register. Doodle Jump, Crossy Road, and Asphalt all use **single-shot calibration plus a low-pass filter**, never continuous baseline drift. So that's what we did:
- Calibrate the player's neutral hold once at level start
- Low-pass filter the raw gravity vector to kill 60 Hz jitter without losing slow tilts
- Project onto a screen-relative axis (with the device locked to a single landscape orientation so the axis sign never flips)
- Tight deadzone (~2°), proportional steering with a sensitivity curve
Result: you can tilt 5° from neutral and the rocket responds immediately. Hold 20° and it turns at a constant rate without the input being eaten. Try it.
## Tech Stack
Built with [Godot 4](https://godotengine.org/) in pure GDScript. Leaderboards and cloud save run on our own backend at `api.such.software`. Ads use AdMob on mobile and AdSense on web. There's an optional **Remove Ads** in-app purchase ($1.99 once, ad-free forever), plus two optional Moonrock packs if you want to skip the grind. Every upgrade can still be earned by playing — there are no IAP-gated levels. Desktop builds are always ad-free.
## Get It
<SuchMoonLaunchStoreButtons />
- **Web (free)** — [moonlaunch.such.software](https://moonlaunch.such.software)
- **Mobile** — Google Play and App Store listings going live as reviews clear
*Such moon. Many crypto. Wow.*
@@ -31,4 +31,4 @@ The NebulaField component is lazy loaded with next/dynamic and requestIdleCallba
## Structure
The site now has Products, Services, Blog, and About sections. Products showcases our standalone offerings: Neroswap, Webshops, Custom Websites, Smirk Wallet, Bauhaus Echo, Suchoice, and Wownero Moon Launch. Services covers our partnership model and consulting work. Mobile users get a bottom navigation bar.
The site now has Products, Services, Blog, and About sections. Products showcases our standalone offerings: Neroswap, Webshops, Custom Websites, Smirk Wallet, Bauhaus Echo, Suchoice, and Such Moon Launch. Services covers our partnership model and consulting work. Mobile users get a bottom navigation bar.
@@ -1,51 +0,0 @@
---
title: "Wownero Moon Launch — From First Game to Full Release"
date: "2026-03-12"
excerpt: "A crypto-themed space landing game with 11 levels, 4 weapons, and an endless mode. The expanded re-release of my very first game."
draft: true
---
Wownero Moon Launch is now available on [Google Play](https://play.google.com/store/apps/details?id=com.suchsoftware.wowneromoonlaunch), [itch.io](https://suchsoftware.itch.io/wownero-moon-launch), and [the web](https://moonlaunch.such.software). iOS coming soon.
## The Backstory
This was the first game I ever wrote. The original version was released as **Meowlet Moon Launch** — a simple rocket landing game where you flew to the Moon and tried not to crash. It had one level, basic physics, and not much else. But it worked, and people played it.
Now we're releasing the greatly expanded version as **Wownero Moon Launch**. What started as a single-level prototype has grown into a full game with 11 story levels spanning the entire solar system, a procedural endless mode, four weapons, eight upgrades, 13 ship skins, and a crypto-themed collectible system.
## What's in the Game
You launch a rocket from Earth and navigate through space to land on increasingly difficult targets. The core mechanic is simple — thrust, rotate, land gently — but the game layers on hazards and systems that keep it interesting.
**11 story levels** take you from the Moon to Mars, Venus, Io, Jupiter, Saturn, Neptune, Pluto, an asteroid belt, a rotating space station, and finally a Martian mothership boss fight. Each level introduces new mechanics: wormhole portals, solar wind zones, nebula fog that drains your fuel, orbiting asteroids, and black holes with lethal event horizons.
**Endless mode** generates procedural waves after you finish the story. Each wave spawns a random target planet at increasing distance with more enemies, tighter hazard timing, and scaling difficulty. Your best wave is tracked on the leaderboard.
## Weapons and Upgrades
Between levels, you spend Moonrocks (earned by collecting crypto pickups) in the upgrade shop:
- **8 upgrades**: thrust power, fuel capacity, fuel efficiency, shield, armor plating, landing gear, rotation speed, and crypto magnet
- **4 weapons**: forward cannon with auto-aim, homing missiles, continuous laser beam, and area-of-effect EMP pulse
- **13 ship skins**: 8 purchasable cosmetics plus 4 achievement skins that unlock for mastering the game
## Features Worth Mentioning
- **3D landing mode** — final approach switches to a 3D view with cockpit HUD, altimeter, and tilt indicator
- **Warp tunnel** — hyperspace transition between levels with streaming star fields and cockpit overlay
- **Star ratings** — 1–3 stars per level based on completion time and remaining fuel
- **Global leaderboards** — per-level rankings powered by our own backend at api.such.software
- **Cloud save** — progress backed up to our servers, restorable on any device
- **Google Play Games achievements** — 13 achievements on Android
- **Cross-platform** — Android, iOS, Web, Windows, macOS, Linux from a single Godot 4 codebase
## Tech Stack
Built with [Godot 4](https://godotengine.org/) in pure GDScript. The backend (leaderboards, cloud save) runs on our own infrastructure at api.such.software. Ads use AdMob on mobile and AdSense on web, with a "Remove Ads" purchase option. Desktop builds are always ad-free.
## Get It
- **Android (free with ads)** — [Google Play](https://play.google.com/store/apps/details?id=com.suchsoftware.wowneromoonlaunch)
- **iOS (free with ads)** — Coming soon
- **Web (free)** — [moonlaunch.such.software](https://moonlaunch.such.software)
- **Desktop (pay-what-you-want)** — [itch.io](https://suchsoftware.itch.io/wownero-moon-launch)
+13
View File
@@ -19,6 +19,19 @@ export const metadata: Metadata = {
};
const apps = [
{
name: "Such Moon Launch",
tagline: "Vry rocket. Much landing. Wow!",
icon: "/images/products/such-moon-launch.png",
color: "text-amber-600 dark:text-amber-400",
borderColor: "border-amber-500/20",
href: "/products/such-moon-launch",
links: [
// null = render disabled "Coming Soon" button; flip to real URLs once live.
{ platform: "google" as const, href: null },
{ platform: "apple" as const, href: null },
],
},
{
name: "Vegan IQ",
tagline: "Plant-based trivia backed by real data",
+1 -1
View File
@@ -37,7 +37,7 @@ export default function PrivacyPage() {
<li><Link href="/products/vegan-iq/privacy" className="text-blue-600 dark:text-blue-400 hover:underline">Vegan IQ Privacy Policy</Link></li>
<li><Link href="/products/bauhaus-echo/privacy" className="text-blue-600 dark:text-blue-400 hover:underline">Bauhaus Echo Privacy Policy</Link></li>
<li><Link href="/products/suchoice/privacy" className="text-blue-600 dark:text-blue-400 hover:underline">Suchoice Privacy Policy</Link></li>
<li><Link href="/products/wownero-moon-launch/privacy" className="text-blue-600 dark:text-blue-400 hover:underline">Wownero Moon Launch Privacy Policy</Link></li>
<li><Link href="/products/such-moon-launch/privacy" className="text-blue-600 dark:text-blue-400 hover:underline">Such Moon Launch Privacy Policy</Link></li>
</ul>
</section>
+5 -5
View File
@@ -8,7 +8,7 @@ import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Products | Such Software",
description: "Tools and applications built by Such Software. Neroswap, Webshops, Custom Websites, Smirk Wallet, Bauhaus Echo, Suchoice, Vegan IQ, and Wownero Moon Launch.",
description: "Tools and applications built by Such Software. Neroswap, Webshops, Custom Websites, Smirk Wallet, Bauhaus Echo, Suchoice, Vegan IQ, and Such Moon Launch.",
alternates: { canonical: "/products" },
openGraph: {
title: "Products | Such Software",
@@ -68,10 +68,10 @@ const products = [
icon: "/images/products/vegan-iq.png",
},
{
slug: "wownero-moon-launch",
title: "Wownero Moon Launch",
description: "Crypto-themed space landing game. 11 levels, 4 weapons, endless mode. Android, iOS, Web, Desktop.",
color: "orange",
slug: "such-moon-launch",
title: "Such Moon Launch",
description: "Vry rocket. Much landing. Wow! Wownero-themed pixel rocket arcade. 11 levels, 4 weapons, tilt-to-steer, endless mode. Android, iOS, Web, Desktop.",
color: "amber",
icon: "/images/products/such-moon-launch.png",
},
];
@@ -1,17 +1,17 @@
import { Header } from "@/components/layout/header";
import { MobileNav } from "@/components/layout/mobile-nav";
import { Card } from "@repo/ui/components/card";
import { Button } from "@repo/ui/components/button";
import { SuchMoonLaunchStoreButtons } from "@/components/store-buttons";
import Link from "next/link";
import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Wownero Moon Launch | Such Software",
description: "Crypto-themed space landing game. Fly your rocket across the solar system, dodge hazards, collect crypto, upgrade your ship. Android, iOS, Web, Desktop.",
alternates: { canonical: "/products/wownero-moon-launch" },
title: "Such Moon Launch | Such Software",
description: "Vry rocket. Much landing. Wow! A pixel-art rocket-flying arcade with 11 levels, 4 weapons, and an endless mode. Wownero-themed. Android, iOS, Web, Desktop.",
alternates: { canonical: "/products/such-moon-launch" },
openGraph: {
title: "Wownero Moon Launch | Such Software",
description: "Crypto-themed space landing game. Fly your rocket across the solar system, dodge hazards, collect crypto, upgrade your ship. Android, iOS, Web, Desktop.",
title: "Such Moon Launch | Such Software",
description: "Vry rocket. Much landing. Wow! A pixel-art rocket-flying arcade with 11 levels, 4 weapons, and an endless mode. Wownero-themed.",
type: "website",
},
};
@@ -38,7 +38,7 @@ const weapons = [
{ name: "💥 EMP", description: "Area blast, destroys all nearby enemies" },
];
export default function WowneroMoonLaunchPage() {
export default function SuchMoonLaunchPage() {
return (
<main className="relative min-h-screen flex flex-col items-center bg-background text-foreground">
<Header />
@@ -47,34 +47,46 @@ export default function WowneroMoonLaunchPage() {
← Back to Products
</Link>
<h1 className="text-4xl md:text-5xl font-bold mb-6 text-orange-600 dark:text-orange-400">
Wownero Moon Launch
<h1 className="text-4xl md:text-5xl font-bold mb-2 text-amber-600 dark:text-amber-400">
Such Moon Launch
</h1>
<p className="text-base text-muted-foreground mb-6">Vry rocket. Much landing. Wow!</p>
<div className="prose dark:prose-invert max-w-none mb-12">
<div className="prose dark:prose-invert max-w-none mb-8">
<p className="text-xl text-muted-foreground leading-relaxed">
A crypto-themed space landing game. Fly your rocket across the solar system, dodge
Martians, asteroids, gamma rays, and black holes. Collect crypto, upgrade your ship,
and unlock 13 ship skins. 11 story levels plus a procedural endless mode.
A Wownero-themed pixel-art rocket arcade. Fly across the solar system, dodge Martians,
asteroids, gamma rays, and black holes. Collect crypto, upgrade your ship, and unlock
13 ship skins. 11 story levels plus a procedural endless mode — with tilt-to-steer
controls on mobile.
</p>
</div>
<div className="flex flex-wrap gap-4 mb-12">
<a href="https://moonlaunch.such.software" target="_blank" rel="noopener noreferrer">
<Button size="lg">Play on Web</Button>
</a>
<a href="https://suchsoftware.itch.io/wownero-moon-launch" target="_blank" rel="noopener noreferrer">
<Button variant="outline" size="lg">
Play on itch.io
</Button>
</a>
<p className="flex items-center text-sm text-muted-foreground">
Google Play &amp; App Store — Coming Soon
<div className="mb-12">
<SuchMoonLaunchStoreButtons />
</div>
<h2 className="text-2xl font-bold mb-6">The Story</h2>
<div className="section-container border-l-4 border-amber-500 mb-12 text-muted-foreground space-y-4">
<p>
Such Moon Launch is the greatly expanded re-release of <strong>the very first game I ever wrote</strong>.
The original — <em>Meowlet Moon Launch</em> — was a single-level rocket-landing prototype
published years ago as a test app under our old <strong>Tabby Labs</strong> developer account.
One level, simple physics, no music, no juice. But it shipped, and people played it.
</p>
<p>
This release is a near-complete rebuild. 11 hand-tuned story levels across the solar system,
a procedural endless mode, 4 weapons, 8 ship upgrades, 13 skins, achievements on Google Play
Games and Apple Game Center, cloud save, a global leaderboard backend, a 3D landing
mini-game on final approach, and proper <strong>tilt-to-steer</strong> controls calibrated
for phones — no drift, no fight. All wrapped in a Wownero-themed pixel-art aesthetic.
</p>
<p>
Same rocket, same Moon. Almost everything else is new.
</p>
</div>
<h2 className="text-2xl font-bold mb-6">How It Works</h2>
<div className="section-container border-l-4 border-orange-500 mb-12">
<div className="section-container border-l-4 border-amber-500 mb-12">
<ol className="space-y-4 text-muted-foreground">
<li><strong>1. Launch</strong> — Blast off from Earth with limited fuel.</li>
<li><strong>2. Navigate</strong> — Fly through space, dodging hazards and collecting crypto.</li>
@@ -86,7 +98,7 @@ export default function WowneroMoonLaunchPage() {
<h2 className="text-2xl font-bold mb-6">11 Levels + Endless Mode</h2>
<div className="grid md:grid-cols-3 gap-4 mb-12">
{levels.map((level) => (
<Card key={level.name} className="glass-card border-orange-500/20">
<Card key={level.name} className="glass-card border-amber-500/20">
<h3 className="font-bold mb-1">{level.name}</h3>
<p className="text-sm text-muted-foreground">{level.description}</p>
</Card>
@@ -96,7 +108,7 @@ export default function WowneroMoonLaunchPage() {
<h2 className="text-2xl font-bold mb-6">Weapons</h2>
<div className="grid md:grid-cols-2 gap-6 mb-12">
{weapons.map((weapon) => (
<Card key={weapon.name} className="glass-card border-orange-500/20">
<Card key={weapon.name} className="glass-card border-amber-500/20">
<h3 className="text-lg font-bold mb-2">{weapon.name}</h3>
<p className="text-muted-foreground">{weapon.description}</p>
</Card>
@@ -105,46 +117,46 @@ export default function WowneroMoonLaunchPage() {
<h2 className="text-2xl font-bold mb-6">Features</h2>
<div className="grid md:grid-cols-3 gap-6 mb-12">
<Card className="glass-card border-orange-500/20">
<Card className="glass-card border-amber-500/20">
<h3 className="font-bold mb-2">13 Ship Skins</h3>
<p className="text-sm text-muted-foreground">8 purchasable + 4 achievement unlocks + default</p>
</Card>
<Card className="glass-card border-orange-500/20">
<Card className="glass-card border-amber-500/20">
<h3 className="font-bold mb-2">8 Ship Upgrades</h3>
<p className="text-sm text-muted-foreground">Thrust, fuel, shield, armor, landing gear, magnet, and more</p>
</Card>
<Card className="glass-card border-orange-500/20">
<Card className="glass-card border-amber-500/20">
<h3 className="font-bold mb-2">Star Ratings</h3>
<p className="text-sm text-muted-foreground">1–3 stars per level based on time and fuel</p>
</Card>
<Card className="glass-card border-orange-500/20">
<Card className="glass-card border-amber-500/20">
<h3 className="font-bold mb-2">Global Leaderboards</h3>
<p className="text-sm text-muted-foreground">Per-level rankings across all platforms</p>
</Card>
<Card className="glass-card border-orange-500/20">
<Card className="glass-card border-amber-500/20">
<h3 className="font-bold mb-2">Cloud Save</h3>
<p className="text-sm text-muted-foreground">Progress synced to our backend, restore anytime</p>
</Card>
<Card className="glass-card border-orange-500/20">
<Card className="glass-card border-amber-500/20">
<h3 className="font-bold mb-2">Cross-Platform</h3>
<p className="text-sm text-muted-foreground">Android, iOS, Web, Windows, macOS, Linux</p>
</Card>
<Card className="glass-card border-orange-500/20">
<Card className="glass-card border-amber-500/20">
<h3 className="font-bold mb-2">3D Landing Mode</h3>
<p className="text-sm text-muted-foreground">Final approach in 3D with cockpit HUD</p>
</Card>
<Card className="glass-card border-orange-500/20">
<Card className="glass-card border-amber-500/20">
<h3 className="font-bold mb-2">Warp Tunnel</h3>
<p className="text-sm text-muted-foreground">Hyperspace transition between levels</p>
</Card>
<Card className="glass-card border-orange-500/20">
<Card className="glass-card border-amber-500/20">
<h3 className="font-bold mb-2">Crypto Theme</h3>
<p className="text-sm text-muted-foreground">WOW, XMR, BTC, DOGE collectibles as in-game currency</p>
</Card>
</div>
<h2 className="text-2xl font-bold mb-6">Space Hazards</h2>
<div className="section-container border-l-4 border-orange-500 mb-12">
<div className="section-container border-l-4 border-amber-500 mb-12">
<ul className="space-y-2 text-muted-foreground">
<li><strong>Martians</strong> — enemy ships that chase your rocket</li>
<li><strong>Gamma Rays</strong> — periodic lethal beams across the level</li>
@@ -156,11 +168,11 @@ export default function WowneroMoonLaunchPage() {
</div>
<div className="flex items-center gap-4 text-sm text-muted-foreground">
<Link href="/products/wownero-moon-launch/privacy" className="hover:text-foreground transition-colors">
<Link href="/products/such-moon-launch/privacy" className="hover:text-foreground transition-colors">
Privacy Policy
</Link>
<span>•</span>
<Link href="/products/wownero-moon-launch/terms" className="hover:text-foreground transition-colors">
<Link href="/products/such-moon-launch/terms" className="hover:text-foreground transition-colors">
Terms of Service
</Link>
<span>•</span>
@@ -4,29 +4,29 @@ import Link from "next/link";
import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Privacy Policy | Wownero Moon Launch | Such Software",
description: "Privacy policy for Wownero Moon Launch mobile game. GDPR and CPRA compliant.",
alternates: { canonical: "/products/wownero-moon-launch/privacy" },
title: "Privacy Policy | Such Moon Launch | Such Software",
description: "Privacy policy for Such Moon Launch mobile game. GDPR and CPRA compliant.",
alternates: { canonical: "/products/such-moon-launch/privacy" },
};
export default function WowneroMoonLaunchPrivacyPage() {
export default function SuchMoonLaunchPrivacyPage() {
return (
<main className="relative min-h-screen flex flex-col items-center bg-background text-foreground">
<Header />
<div id="main-content" className="z-10 w-full max-w-4xl mx-auto py-20 px-4 pb-24 md:pb-20">
<Link href="/products/wownero-moon-launch" className="text-sm text-muted-foreground hover:text-foreground mb-8 inline-flex items-center gap-2 transition-colors">
← Back to Wownero Moon Launch
<Link href="/products/such-moon-launch" className="text-sm text-muted-foreground hover:text-foreground mb-8 inline-flex items-center gap-2 transition-colors">
← Back to Such Moon Launch
</Link>
<div className="glass-card mt-6">
<header className="mb-8 pb-6 border-b border-border">
<h1 className="text-3xl md:text-4xl font-bold">Privacy Policy for Wownero Moon Launch</h1>
<p className="text-muted-foreground mt-2">Last Updated: March 12, 2026</p>
<h1 className="text-3xl md:text-4xl font-bold">Privacy Policy for Such Moon Launch</h1>
<p className="text-muted-foreground mt-2">Last Updated: May 18, 2026</p>
</header>
<div className="prose dark:prose-invert max-w-none">
<p>
<strong>Such Software LLC</strong> (&quot;we,&quot; &quot;us,&quot; or &quot;our&quot;) operates the Wownero Moon Launch
<strong>Such Software LLC</strong> (&quot;we,&quot; &quot;us,&quot; or &quot;our&quot;) operates the Such Moon Launch
application (the &quot;App&quot;). This page informs you of our policies regarding the collection,
use, and disclosure of personal data when you use our App.
</p>
@@ -197,7 +197,7 @@ export default function WowneroMoonLaunchPrivacyPage() {
<h2>Cryptocurrency</h2>
<p>
Wownero Moon Launch is a <strong>crypto-themed game</strong>. The in-game collectibles (WOW, XMR, BTC, DOGE)
Such Moon Launch is a <strong>crypto-themed game</strong>. The in-game collectibles (WOW, XMR, BTC, DOGE)
are purely virtual game items with no real-world monetary value. The App does not:
</p>
<ul>
@@ -236,7 +236,7 @@ export default function WowneroMoonLaunchPrivacyPage() {
<strong>Opt out of personalized ads</strong> via your device settings:
<ul>
<li>Android: Settings → Google → Ads → Opt out of Ads Personalization</li>
<li>iOS: Settings → Privacy → Tracking → Disable tracking for Wownero Moon Launch</li>
<li>iOS: Settings → Privacy → Tracking → Disable tracking for Such Moon Launch</li>
</ul>
</li>
<li><strong>Request deletion</strong> of your leaderboard or cloud save data by contacting us</li>
@@ -288,7 +288,7 @@ export default function WowneroMoonLaunchPrivacyPage() {
<hr />
<h2>Consent</h2>
<p>By using Wownero Moon Launch, you consent to this Privacy Policy.</p>
<p>By using Such Moon Launch, you consent to this Privacy Policy.</p>
</div>
</div>
</div>
@@ -4,29 +4,29 @@ import Link from "next/link";
import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Terms of Service | Wownero Moon Launch | Such Software",
description: "Terms of service for Wownero Moon Launch mobile game.",
alternates: { canonical: "/products/wownero-moon-launch/terms" },
title: "Terms of Service | Such Moon Launch | Such Software",
description: "Terms of service for Such Moon Launch mobile game.",
alternates: { canonical: "/products/such-moon-launch/terms" },
};
export default function WowneroMoonLaunchTermsPage() {
export default function SuchMoonLaunchTermsPage() {
return (
<main className="relative min-h-screen flex flex-col items-center bg-background text-foreground">
<Header />
<div id="main-content" className="z-10 w-full max-w-4xl mx-auto py-20 px-4 pb-24 md:pb-20">
<Link href="/products/wownero-moon-launch" className="text-sm text-muted-foreground hover:text-foreground mb-8 inline-flex items-center gap-2 transition-colors">
← Back to Wownero Moon Launch
<Link href="/products/such-moon-launch" className="text-sm text-muted-foreground hover:text-foreground mb-8 inline-flex items-center gap-2 transition-colors">
← Back to Such Moon Launch
</Link>
<div className="glass-card mt-6">
<header className="mb-8 pb-6 border-b border-border">
<h1 className="text-3xl md:text-4xl font-bold">Terms of Service for Wownero Moon Launch</h1>
<p className="text-muted-foreground mt-2">Last Updated: March 12, 2026</p>
<h1 className="text-3xl md:text-4xl font-bold">Terms of Service for Such Moon Launch</h1>
<p className="text-muted-foreground mt-2">Last Updated: May 18, 2026</p>
</header>
<div className="prose dark:prose-invert max-w-none">
<p>
These Terms of Service (&quot;Terms&quot;) govern your use of the Wownero Moon Launch application
These Terms of Service (&quot;Terms&quot;) govern your use of the Such Moon Launch application
(the &quot;App&quot;) operated by <strong>Such Software LLC</strong> (&quot;we,&quot; &quot;us,&quot; or &quot;our&quot;).
By downloading, installing, or using the App, you agree to be bound by these Terms.
</p>
@@ -35,7 +35,7 @@ export default function WowneroMoonLaunchTermsPage() {
<h2>1. Use of the App</h2>
<p>
Wownero Moon Launch is a video game provided for entertainment purposes. You may use the App
Such Moon Launch is a video game provided for entertainment purposes. You may use the App
on any supported device for personal, non-commercial use.
</p>
<p>You agree not to:</p>
@@ -100,7 +100,7 @@ export default function WowneroMoonLaunchTermsPage() {
<p>
You may remove ads by purchasing the &quot;Remove Ads&quot; upgrade within the App.
Ad display is subject to our{" "}
<Link href="/products/wownero-moon-launch/privacy">Privacy Policy</Link>.
<Link href="/products/such-moon-launch/privacy">Privacy Policy</Link>.
</p>
<hr />
+1 -1
View File
@@ -14,7 +14,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
{ url: `${base}/products/bauhaus-echo`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.8 },
{ url: `${base}/products/vegan-iq`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.8 },
{ url: `${base}/products/suchoice`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 },
{ url: `${base}/products/wownero-moon-launch`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 },
{ url: `${base}/products/such-moon-launch`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 },
{ url: `${base}/services`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.9 },
{ url: `${base}/about`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 },
{ url: `${base}/support`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.5 },
+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