Repository navigation
Galactic Math 2.0 is everything that landed between the March launch and today: a second game, a new setup flow, a real feedback pipeline, and a long list of fixes to make it easier and more fun to use.
Highlights
👾 Alien Invasion — a second game
A full arcade mode alongside the quiz: steer a ship with keyboard, touch or trackpad, dock into question rings, dodge comets and obstacles, and clear the aliens before they reach Earth. Along the way it picked up a radar view, a low-fuel warning, docking and gate-entry sounds, ten rotating facts per planet, a neon Earth with real continent geography, mobile support, and a Sneak Attack / Invasion / Chaos difficulty pick (5 / 10 / 25 aliens). (#74, #79, #81, #82, #89, #91–#95, #99, #101, #113, #119, #121, #122)
🚀 The Flight Deck setup
The single long setup card is now a five-step deck — Numbers → Math → Game → Options → Launch — with a flight-path stepper, Back / Next in fixed slots, and a Mission Briefing that lists every choice before Begin Mission. Galactic Math and Alien Invasion are equal game cards. (#135)
🎉 Celebrations and sound
Ring shockwave celebration in Standard and Hyperspace, comet streaks in Kessel Run, a launch sound and Begin Mission fill animation, an abort-mission sound, distinct sounds for enabling timed modes, and a sound on the feedback transmit button. (#50, #64, #67, #68, #69, #102)
🧮 Quiz interaction design improved
Multi-operation sessions are now composed correctly; unanswered questions show Skipped instead of null; input is blocked once the Hyperspace timer ends; Hyperspace and Kessel Run timers run on the wall clock so switching tabs no longer pauses them; an Abort Mission button on the quiz screen; operation modes can be reset or fully deselected with validation on start; clicking the banner returns to setup. (#33, #34, #36, #62, #70, #77, #78, #129)
💬 Feedback pipeline optimized and secured
The feedback page POSTs to a Cloudflare Worker that validates, rate-limits by IP, generates a title with Workers AI, and opens a GitHub issue in this repo. Since then: observability logging, automatic detection when Cloudflare retires a model, enforced allowed origins, a shared rate limiter, an AI prompt hardened against injection, and the Your Name field removed. (#37, #42, #43, #53, #55, #61, #123, #127, #130, #133)
🔒 Security and performance
Per-resource Content-Security-Policy directives plus X-Frame-Options, nosniff, Referrer-Policy and Permissions-Policy; a security.txt; two hardening passes; the starfield rewritten to stop draining tablet batteries and to honor prefers-reduced-motion; ~2.8 MB of unreferenced images removed and the OG image resized. (#83, #96, #100, #128, #131, #132)
📱 Mobile
Number grid overflow, the off-screen theme button, spacing and layout passes for small screens. (#30, #31, #32, #56, #110)
🪐 A legit website domain
The site moved to galacticmath.app, with a new planet logo for favicons and the share image, Open Graph / Twitter Card tags, and LinkedIn preview fixes. (#29, #80, #97, #106, #107, #109)
📚 Docs and workflow
A docs/ folder describing every part of the app, a docs audit, CLAUDE.md brought back in line with the codebase, hover explainers on the How It Works page, a GitHub link in the footer, and a written release process. (#51, #71, #73, #108, #134, #136)
What's Changed
-
IDT-22 Add meta description, OG tags, and version footer by @bmschimmel in #29
-
IDT-24 Reduce excess spacing below game mode tiles and begin button by @bmschimmel in #30
-
IDT-28 Updates for respecting mobile design by @bmschimmel in #31
-
IDT-30 Add Reset button to operation mode selector by @bmschimmel in #33
-
IDT-29 Fix theme button off-screen on mobile by @bmschimmel in #32
-
IDT-31 Allow deselecting all operation modes with validation on start by @bmschimmel in #34
-
IDT-32 Code quality & accessibility improvements from audit by @bmschimmel in #35
-
IDT-33 Add abort mission button to quiz screen by @bmschimmel in #36
-
IDT-34 Wire up feedback form to GitHub Issues via Cloudflare Worker by @bmschimmel in #37
-
IDT-39 Add observability logging to feedback Cloudflare Worker by @bmschimmel in #42
-
IDT-40 Enable observability logging config in wrangler.toml by @bmschimmel in #43
-
IDT-46 Change sound effects for enabling timed modes by @bmschimmel in #50
-
IDT-49 Add hover explainer panels to workflow page by @bmschimmel in #51
-
IDT-48 Correct feedback submission format by @bmschimmel in #53
-
IDT-50 feedback page view existing link by @bmschimmel in #55
-
IDT-43 Fix mobile number grid overflow by @bmschimmel in #56
-
IDT-56 Switch feedback title generation to Cloudflare Workers AI by @bmschimmel in #61
-
IDT-57 Clicking the Galactic Math banner returns to setup by @bmschimmel in #62
-
IDT-58 Add favicon to feedback and workflow pages by @bmschimmel in #63
-
IDT-59 Ring shockwave celebration, launch sound, and Begin Mission fill animation by @bmschimmel in #64
-
IDT-60 add ?debug=1 mode for 1-question sessions by @bmschimmel in #65
-
IDT-64 Differentiate Kessel Run and Standard mode celebrations by @bmschimmel in #67
-
IDT-63 Add abort mission sound effect by @bmschimmel in #68
-
IDT-63 Scope abort sound to quit button only by @bmschimmel in #69
-
IDT-65 Fix test composition for multiple operations by @bmschimmel in #70
-
IDT-67 Create docs/ folder with architecture documentation by @bmschimmel in #71
-
IDT-100 Add GitHub repo link to footer and developer docs TOC to README by @bmschimmel in #73
-
IDT-101 Add Race to Earth game mode by @bmschimmel in #74
-
IDT-103 Show Skipped instead of null for unanswered questions by @bmschimmel in #78
-
IDT-102 Block input after hyperspace timer completes by @bmschimmel in #77
-
IDT-105 Low fuel warning sound at 10% in Race to Earth by @bmschimmel in #79
-
IDT-106 Fix LinkedIn OG preview — replace SVG with PNG by @bmschimmel in #80
-
IDT-104 R2E UI/UX improvements by @bmschimmel in #81
-
IDT-108 Add mobile support for Race to Earth mode by @bmschimmel in #82
-
IDT-111 Security & performance fixes by @bmschimmel in #83
-
IDT-112 Browser compatibility check and changelog fixes by @bmschimmel in #88
-
IDT-112 Repremise Race To Earth mod by @bmschimmel in #89
-
IDT-122 Minor UX tweaks to Alien Invasion mode by @bmschimmel in #90
-
IDT-110 Add 10 planet facts per planet, randomly rotated by @bmschimmel in #91
-
IDT-120 Add docking sound when advancing between question rings by @bmschimmel in #92
-
IDT-123 Add gate entry sound when ship docks into a ring by @bmschimmel in #93
-
Idt 124 create radar view of where the alien ships are by @bmschimmel in #94
-
IDT-125 Reduce comet and obstacle speed by 33% by @bmschimmel in #95
-
IDT-127 Hardening and optimizations by @bmschimmel in #96
-
IDT-130 Update domain references to galacticmath.app by @bmschimmel in #97
-
IDT-132 Fix planet order in alien invasion world by @bmschimmel in #99
-
Add security.txt by @bmschimmel in #100
-
IDT-131 Make all alien ships red by @bmschimmel in #101
-
IDT-134 Add sound effect to transmit feedback button by @bmschimmel in #102
-
IDT-109 Replace favicons and OG image with new branded logo by @bmschimmel in #106
-
IDT-141 Fix OG image letterboxing and og:title length by @bmschimmel in #107
-
IDT-142 Docs audit: remove Academy branding, sync docs with recent features by @bmschimmel in #108
-
Update OG image to v2 by @bmschimmel in #109
-
IDT-148 UX cleanup pass by @bmschimmel in #110
-
IDT-137 Redesign Earth — neon style with real continent geography by @bmschimmel in #113
-
IDT-212 Add trackpad steering by @bmschimmel in #119
-
IDT-216 Stop the flying mode badge and gate questions from overlapping by @bmschimmel in #121
-
IDT-215 Fix dead launch buttons after returning from Alien Invasion by @bmschimmel in #122
-
IDT-217 Replace retired feedback title model and detect the next retirement by @bmschimmel in #123
-
IDT-218 Ignore worker/node_modules and local claude settings by @bmschimmel in #124
-
IDT-271 Remove the Your Name field from the feedback page by @bmschimmel in #127
-
IDT-272 Delete unreferenced images and resize the OG image by @bmschimmel in #128
-
IDT-274 Base Hyperspace and Kessel Run timers on wall clock by @bmschimmel in #129
-
IDT-270 Enforce allowed origins and fix the rate limiter in feedback worker by @bmschimmel in #130
-
IDT-276 Harden the AI title prompt against injection by @bmschimmel in #133
-
IDT-273 Add missing security headers and split the CSP directives by @bmschimmel in #131
-
IDT-275 Cut starfield battery drain and honor prefers-reduced-motion by @bmschimmel in #132
-
IDT-277 Bring CLAUDE.md back in line with the feedback worker and pages/ by @bmschimmel in #134
-
IDT-279 Build the Flight Deck setup flow by @bmschimmel in #135
-
IDT-283 Bump version to 2.0.0 and document the release process by @bmschimmel in #136
Full Changelog: v1.0.0...v2.0.0