Four things happened in sequence:
geometryblast.com. The domain has been live and serving the game since launch. The product name and the domain name should agree.geometryblast.com (mismatch)void-artillerygeometryblast.com (match)geometry-blasterWe have ~0 audience. Rebrand cost is zero. Every day we wait, the cost goes up. The window is now.
This document is for Connor. It covers the full scope of the rebrand — name, brand, positioning, implementation, infrastructure — so we’re aligned before touching code.
Every syllable earns its place:
| Dimension | Void Artillery | Geometry Blaster |
|---|---|---|
| Describes | One mechanic (the void) | The whole game (shapes + explosions) |
| SEO potential | “Void” competes with Void Linux, void pointers | “Geometry” rides Geometry Dash traffic |
| Abbreviation | VA (means nothing) | Geo Blast (fun, memorable) |
| Sound / energy | Dark, military, serious | Fun, electric, arcade |
| Domain | geometryblast.com (mismatch) | geometryblast.com (match) |
| Normie comprehension | “What’s a void?” | “Oh, shapes that shoot each other” |
| Context | Use |
|---|---|
| Formal (press, store listing, title screen) | Geometry Blaster |
| UI, casual, social media | Geo Blast |
| Internal / repo | geometry-blaster |
| Domain | geometryblast.com |
This is the positioning statement. Five words that communicate what the game is to anyone who’s heard of either franchise. Here’s why it works:
| Game | Genre | Kill Model | Status | Platform |
|---|---|---|---|---|
| ShellShock Live | Artillery | HP drain | ~400 CCU, stagnant | Steam |
| Worms WMD | Artillery | HP + water ring-outs | Mixed reviews, declining | Steam / Console |
| Gunbound | Artillery | HP drain | Dead / P2W nostalgia | PC / Mobile |
| Brawlhalla | Platform fighter | Knockback % | 50M+ players, healthy | All platforms |
| Geometry Blaster | Artillery × Platform fighter | Knockback % + rising void | Building | Browser (free) |
What we have that nobody else does — all at once:
No artillery game has ever combined knockback percentage with a shrinking arena. Worms proved ring-outs are the best part of artillery. Smash proved knockback % creates the best escalation. We’re the first to put them together.
The brand feeling is electric — arcade cabinet glow. Not dark and brooding (that was Void Artillery). Not cute and casual (that’s Brawlhalla). Electric. Neon lines on black. Shapes that pulse. An aesthetic that says “this came from a dimension where Tron met Geometry Wars and they had a baby in an arcade.”
Formalizing what already exists in the codebase. These are the game’s actual colors, promoted to brand-level status:
The logo is text, not a graphic. Two words, stacked, each a different color. The geometric sans-serif font does the heavy lifting. Glow does the rest.
This replaces the current title screen rendering at src/ui/menus.ts:396, which draws “VOID” in magenta and “ARTILLERY” in cyan. We keep the two-line split treatment but swap the words and the colors: GEOMETRY in cyan (top), BLASTER in magenta (bottom).
The game currently uses system fonts for canvas text. For the brand lockup (title screen, social images, docs), we need a geometric sans-serif that feels electric. Four candidates:
Not in scope for the rebrand itself, but the rebrand establishes the language for a future polish pass:
Under the old name, the loop was: aim, shoot, drain HP, void rises, last alive wins. Under the new name and the new damage model:
This is the unique selling proposition that no competitor can match:
Double Pressure: Your damage % is rising AND the void floor is rising. Every round, you’re more vulnerable to knockback AND there’s less safe space to land. Two escalation curves, compounding. Smash has one. Geometry Blaster has two.
Old frame: “8 tanks with different shapes and colors.” New frame:
8 shapes. 8 playstyles. Your geometry IS your identity.
Volt’s triangle cuts through the air. Titan’s octagon holds the ground. Your shape isn’t cosmetic — it’s your survival profile.
The tagline sits under the logo on the title screen, in social previews, and anywhere the brand needs a one-liner. It should feel chaotic, fun, and slightly unhinged. Candidates:
Everything that says “Void Artillery” needs to say “Geometry Blaster.” Here’s the complete list, organized by audience.
| Item | File & Location | Change |
|---|---|---|
| Title screen — “VOID” | src/ui/menus.ts:396 |
“VOID” → “GEOMETRY” (stays magenta, or swap to cyan) |
| Title screen — “ARTILLERY” | src/ui/menus.ts:397 |
“ARTILLERY” → “BLASTER” (stays cyan, or swap to magenta) |
| Title screen — tagline | src/ui/menus.ts:400 |
“One Button Away From Victory” → “Knock them off. Last shape standing.” |
| Title screen — credits | src/ui/menus.ts:415 |
“Game Off 2026 Jam Entry” → “Born in Game Off 2026” |
| Mode select header | src/ui/menus.ts:487 |
“VOID ARTILLERY” → “GEOMETRY BLASTER” |
| Tank select header | src/ui/menus.ts:552 |
“VOID ARTILLERY” → “GEOMETRY BLASTER” |
| Online lobby header | src/ui/menus.ts:1092 |
“VOID ARTILLERY” → “GEOMETRY BLASTER” |
| HTML <title> | index.html:7 |
“VOID ARTILLERY” → “Geometry Blaster” |
| Item | File & Location | Change |
|---|---|---|
| Package name | package.json:2 |
"void-artillery" → "geometry-blaster" |
| Electron appId | package.json:30 |
"com.voidartillery.game" → "com.geometryblaster.game" |
| Electron productName | package.json:31 |
"Void Artillery" → "Geometry Blaster" |
| PartyKit project name | partykit.json:3 |
"void-artillery" → "geometry-blaster" |
| Server class name | party/index.ts:54 |
VoidArtilleryServer → GeometryBlasterServer |
| Server console.log prefix | party/index.ts:76,161,175,213,275,294,300,344,350 |
[VoidArtillery] → [GeometryBlaster] |
| Server comment header | party/index.ts:2 |
“Void Artillery Multiplayer” → “Geometry Blaster Multiplayer” |
| File comment headers (30+ files) | src/**/*.ts (line 2 in each) |
“Void Artillery” → “Geometry Blaster” (global find-replace) |
| Item | Location | Change | Risk |
|---|---|---|---|
| GitHub repo name | github.com/clokk/void-artillery |
→ clokk/geometry-blaster |
GitHub auto-redirects old URLs |
| PartyKit project | void-artillery.clokk.partykit.dev |
→ geometry-blaster.clokk.partykit.dev |
Requires server URL update + deploy coordination |
| Server URL constant | src/constants/index.ts:166 |
wss://void-artillery.clokk.partykit.dev → wss://geometry-blaster.clokk.partykit.dev |
Must deploy in sync with PartyKit rename |
| Vercel project | Vercel dashboard | Update project name (domain unchanged) | Low — domain stays geometryblast.com |
| GitHub Actions | .github/workflows/deploy-partykit.yml |
Verify project name reference | Low |
PartyKit URL coordination: The PartyKit rename and the constants/index.ts server URL update MUST happen in the same deploy. If the client points to the new URL before PartyKit is redeployed (or vice versa), multiplayer breaks. Connor should handle both in a single PR.
| File | Change | Owner |
|---|---|---|
CLAUDE.md | Replace all “VOID ARTILLERY” / “Void Artillery” / “VA” references | Ben |
README.md | Rewrite header, description, screenshots | Connor |
Ben's Rules.md | Update game name references | Ben |
docs/ARCHITECTURE.md | Update game name, module descriptions | Connor |
REFACTOR.md | Keep as-is (historical document, references old name by design) | No change |
We currently have zero brand assets. No favicon, no og:image, no social preview card. Sharing geometryblast.com on Discord shows a blank embed. This is the lowest-hanging fruit in the entire rebrand.
| Asset | Spec | Priority |
|---|---|---|
| Favicon | 32×32 + 16×16 ICO, or SVG. Geometric shape (triangle/hexagon) in cyan. | High — shows in browser tab |
| og:image | 1200×630 PNG. Split-color title, tagline, dark background with subtle glow. | High — link preview on Discord/Twitter/Slack |
| Social preview | Same as og:image but optimized for Twitter card (2:1 ratio) | Medium |
The rebrand is a name change and brand alignment. It is not a redesign, not a feature cut, and not a rewrite. Everything that makes the game the game stays identical:
Three phases. Phases 1 and 2 run in parallel (different owners, different files). Phase 3 is polish that can happen any time after.
Repo rename: void-artillery → geometry-blaster on GitHub. Auto-redirect handles old URLs.
package.json: Update name, appId, productName.
PartyKit: Rename project, redeploy to geometry-blaster.clokk.partykit.dev.
Server URL: Update src/constants/index.ts:166 to new PartyKit URL.
Vercel: Rename project in dashboard (domain unchanged).
GitHub Actions: Verify .github/workflows/deploy-partykit.yml.
Critical: PartyKit rename + server URL constant MUST ship in same deploy.
Title screen: “VOID / ARTILLERY” → “GEOMETRY / BLASTER” + new tagline + updated credits.
Menu headers: Mode select, tank select, online lobby — 3 string changes.
index.html: Update <title> tag, add og:tags, add favicon link.
Documentation: Update CLAUDE.md, Ben’s Rules.md with new name.
~8 string changes across 2 files + HTML meta tags.
Logo lockup: Finalize split-color treatment with chosen font (Exo 2).
og:image: Create 1200×630 social preview image.
Favicon: Design and export 32×32 geometric icon.
File headers: Global find-replace “Void Artillery” → “Geometry Blaster” across 30+ TypeScript files.
No rush. This can land incrementally after Phases 1+2.
PartyKit coordination: Connor’s Phase 1 must deploy the PartyKit rename and the server URL constant together. If the front-end ships with the old URL and PartyKit is already renamed (or vice versa), online multiplayer breaks until both are in sync. Coordinate with Ben before deploying — both forks need to be updated.
Phase 1 (Connor) touches: package.json, partykit.json, party/index.ts, src/constants/index.ts, infrastructure dashboards.
Phase 2 (Ben) touches: src/ui/menus.ts, index.html, CLAUDE.md, Ben's Rules.md.
Zero file overlap. Both phases can execute simultaneously on separate branches.
“Geometry” is one of the highest-traffic gaming keywords on the internet, thanks to Geometry Dash. We’re not competing with Geometry Dash (completely different genre), but we benefit from players who search “geometry game” or “geometry browser game.”
Long-tail keywords we naturally match:
geometry game online freeartillery game browserworms like game onlinesmash bros browser gameknockback game onlinephysics party game free<title>VOID ARTILLERY</title><title>Geometry Blaster — Physics Party Artillery | Play Free</title>This description hits: free, browser, artillery, launch, bounce, knock, friends, map, weapons, knockback, shape. All high-intent gaming search terms.
| Risk | Severity | Assessment |
|---|---|---|
| Trademark: “Geometry” | Low | “Geometry” is common English. “Geometry Blaster” is distinct from “Geometry Dash.” Different genre, different developer, different everything. No trademark conflict. |
| Player confusion | Low | We have near-zero public audience. Nobody will be confused because nobody knows the old name. The handful of jam playtesters will figure it out from the domain. |
| PartyKit URL cutover | Medium | The server URL in constants/index.ts:166 and the PartyKit project name in partykit.json:3 must change simultaneously. If they’re out of sync, multiplayer breaks. Connor should deploy both in a single coordinated PR. |
| GitHub remote update | Low | One command per person: git remote set-url origin <new-url>. GitHub auto-redirects the old URL anyway. Ben’s fork name (bnnichol-blip/geometryblast) already matches. |
| SEO reindexing | Low | The domain (geometryblast.com) doesn’t change. Only the page title and meta tags improve. This is strictly better for SEO — no reindexing penalty. |
| Scope creep | Medium | The rebrand is a name change. It is NOT a visual redesign, not a UI overhaul, not a font migration. “Rename, don’t redesign. Visual polish is a separate project.” Hold the line. |
Scope discipline: This document intentionally separates the rebrand (name + brand identity + meta tags) from a visual polish pass (fonts, HUD redesign, menu animations). The rebrand is Phase 1. Visual polish is a future project. Don’t let one bleed into the other.
Social & Meta Presence
Current State: Nothing
Sharing geometryblast.com on Discord right now shows nothing. No title, no description, no image. Just a bare URL. This is the lowest-hanging fruit in the entire rebrand.
og:tags to Add
Add these to
index.htmlinside the<head>tag:<meta property="og:title" content="Geometry Blaster">
<meta property="og:description" content="Smash Bros meets Worms. Launch projectiles, bounce shots off walls, knock your friends off the map. Free in your browser.">
<meta property="og:image" content="https://geometryblast.com/og-image.png">
<meta property="og:url" content="https://geometryblast.com">
<meta property="og:type" content="website">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Geometry Blaster">
<meta name="twitter:description" content="Physics party artillery. 41 weapons. Knockback %. Last shape standing wins.">
<meta name="twitter:image" content="https://geometryblast.com/og-image.png">
<!-- Meta description -->
<meta name="description" content="Free browser artillery game. Launch projectiles, bounce shots off walls, and knock your friends off the map. 41 weapons. Knockback percentage system. Last shape standing wins.">
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
Favicon Spec
Simple geometric shape on transparent background. The shape should be identifiable at 16×16:
Social Preview Image Concept
1200×630 PNG. Dark background (#0a0a0f). Split-color title centered. Tagline below. Subtle geometric shapes (the 8 tank shapes) scattered around the edges with low opacity glow. Not a screenshot — a brand card.
Discord/Twitter Link Preview: Before vs After