chore(deck): rename Solunar to SolLunar throughout

Display text only — the internal 'solunar' entity id and SolunarSlide
component/filename are unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Patrick Mulligan 2026-07-28 19:51:25 +02:00
commit 85a42411de
18 changed files with 19 additions and 79 deletions

View file

@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Solunar Punk Society — Investment Prospectus</title>
<title>SolLunar Punk Society — Investment Prospectus</title>
</head>
<body>
<div id="app"></div>

View file

@ -29,7 +29,7 @@ const slides = [
{ id: 'tech', label: 'Core stack', component: TechSlide },
{ id: 'entities', label: 'Three entities', component: EntitiesSlide },
{ id: 'archipelago', label: 'Archipelago', component: ArchipelagoSlide },
{ id: 'solunar', label: 'Solunar Society', component: SolunarSlide },
{ id: 'solunar', label: 'SolLunar Society', component: SolunarSlide },
{ id: 'chateau', label: 'Chateau du Faune', component: ChateauSlide },
{ id: 'gallery', label: 'Gallery', component: GallerySlide },
{ id: 'ecosystem', label: 'One membership', component: EcosystemSlide },

View file

@ -6,7 +6,7 @@
* Unseen, always working, connects every entity.
* Flowers the three entities people actually experience:
* Archipelago (city center) a permanent bloom
* Solunar Society (pop-up fest.) ephemeral cluster
* SolLunar Society (pop-up fest.) ephemeral cluster
* Chateau du Faune (farm center) a permanent bloom
* Ghost flowers once the mycelium runs, new locations & festivals sprout
* cheaply, anywhere in the world.
@ -22,7 +22,7 @@ const GROUND = 300
// underground mycelium nodes (below the ground line)
const nodes: [number, number][] = [
[230, 340], // root · Archipelago
[500, 335], // root · Solunar
[500, 335], // root · SolLunar
[770, 340], // root · Chateau
[100, 340], // root · ghost
[900, 340], // root · ghost
@ -195,7 +195,7 @@ const festivalCaps = [
<circle :cx="f.x + 12" :cy="GROUND - 92" r="2.4" fill="hsl(0 0% 100% / 0.45)" />
</template>
<!-- ephemeral festival cluster (Solunar) -->
<!-- ephemeral festival cluster (SolLunar) -->
<template v-else-if="f.kind === 'festival'">
<path
:d="`M ${f.x} ${GROUND} C ${f.x - 6} ${GROUND - 20}, ${f.x + 6} ${GROUND - 34}, ${f.x} ${GROUND - 46}`"

View file

@ -1,5 +1,5 @@
/**
* SOLUNAR PUNK SOCIETY pitch deck content & figures.
* SOLLUNAR PUNK SOCIETY pitch deck content & figures.
*
* EVERYTHING IN THIS FILE IS A PLACEHOLDER.
* This is the single source of truth for the deck. To turn the deck into
@ -10,7 +10,7 @@
* The pitch is a collaboration between three entities, all running the same
* core stack + user ecosystem so members get the full experience anywhere:
* Archipelago hardware/software city center (the tech backbone)
* Solunar Society pop-up festivals (the ephemeral, travelling node)
* SolLunar Society pop-up festivals (the ephemeral, travelling node)
* Chateau du Faune regenerative farm center (the rural node)
*
* Currency: all figures are USD unless noted.
@ -19,13 +19,13 @@
export const PLACEHOLDER = true
export const brand = {
name: 'Solunar Punk Society',
short: 'Solunar Punk',
name: 'SolLunar Punk Society',
short: 'SolLunar Punk',
// solarpunk by day, lunarpunk by night — sovereign tech, regenerative culture.
tagline: 'One sovereign network. Three ways to experience it.',
subtagline:
'A collaboration between Archipelago, Solunar Society and Chateau du Faune — every location runs the full core stack, so the membership, the payments and the experience travel with you.',
contactEmail: 'invest@solunarpunk.example', // PLACEHOLDER
'A collaboration between Archipelago, SolLunar Society and Chateau du Faune — every location runs the full core stack, so the membership, the payments and the experience travel with you.',
contactEmail: 'invest@sollunarpunk.example', // PLACEHOLDER
// Seam for later: an LNbits instance + the founder's nostr npub power the
// "contribute" tiers. Left null until wired (see src/features/{lnbits,nostr}).
lnbitsBaseUrl: null as string | null,
@ -80,7 +80,7 @@ export const entities: Entity[] = [
},
{
id: 'solunar',
name: 'Solunar Society',
name: 'SolLunar Society',
role: 'Pop-up festivals',
kind: 'Travelling · ephemeral gatherings',
accent: 'indigo',
@ -137,7 +137,7 @@ export const userEcosystem = [
icon: 'Zap',
},
{
title: 'The Solunar app',
title: 'The SolLunar app',
body: 'Book spaces, buy tickets, find events and manage membership from one self-hosted app.',
icon: 'Sparkles',
},
@ -189,7 +189,7 @@ export const tech = [
/** Revenue streams across the collaboration. */
export const revenueStreams = [
{ title: 'Tickets & festivals', note: 'Solunar Society gatherings', icon: 'Ticket' },
{ title: 'Tickets & festivals', note: 'SolLunar Society gatherings', icon: 'Ticket' },
{ title: 'Room & lodging rentals', note: 'City & farm stays', icon: 'BedDouble' },
{ title: 'Retreats & residencies', note: 'Hosted programs at the farm', icon: 'Mountain' },
{ title: 'Experiences & workshops', note: 'Classes, tastings, tours', icon: 'Palette' },
@ -242,7 +242,7 @@ export const costCategories: CostCategory[] = [
},
{
id: 'solunar',
title: 'Solunar Society · festivals',
title: 'SolLunar Society · festivals',
subtitle: 'Mobile deployment kit + first-season production',
icon: 'Tent',
accent: 'indigo',
@ -368,7 +368,7 @@ export const roadmap = [
phase: 'Phase 1',
title: 'Launch the three entities',
when: '~69 mo',
body: 'Fit out Archipelago and Chateau du Faune; stage the first Solunar festival.',
body: 'Fit out Archipelago and Chateau du Faune; stage the first SolLunar festival.',
},
{
phase: 'Phase 2',

View file

@ -6,7 +6,7 @@
*
* src/deck/gallery/city/ City (Archipelago)
* src/deck/gallery/farm/ Farm (Chateau du Faune)
* src/deck/gallery/festival/ Festival (Solunar Society)
* src/deck/gallery/festival/ Festival (SolLunar Society)
*
* Supported: jpg jpeg png webp avif gif svg. Images show sorted by filename,
* so prefix with 01-, 02-, to control order. The seeded *-placeholder.svg

View file

@ -7,7 +7,7 @@ they appear automatically** — no code to touch.
| ----------- | -------- | ----------------- |
| `city/` | City | Archipelago |
| `farm/` | Farm | Chateau du Faune |
| `festival/` | Festival | Solunar Society |
| `festival/` | Festival | SolLunar Society |
- Supported formats: `jpg` `jpeg` `png` `webp` `avif` `gif` `svg`.
- Images display **sorted by filename** — prefix `01-`, `02-`, … to order them.

View file

@ -1,15 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 620" width="800" height="620" font-family="Georgia, serif">
<defs>
<linearGradient id="g" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="hsl(14 72% 62%)" stop-opacity="0.40"/>
<stop offset="1" stop-color="hsl(160 28% 6%)" stop-opacity="1"/>
</linearGradient>
</defs>
<rect width="800" height="620" fill="hsl(160 28% 6%)"/>
<rect width="800" height="620" fill="url(#g)"/>
<circle cx="740" cy="60" r="120" fill="hsl(14 72% 62%)" opacity="0.12"/>
<circle cx="70" cy="550" r="90" fill="hsl(14 72% 62%)" opacity="0.10"/>
<text x="400" y="270" text-anchor="middle" fill="hsl(14 72% 62%)" font-size="46" font-weight="bold">Farm</text>
<text x="400" y="316" text-anchor="middle" fill="hsl(44 30% 90%)" font-size="26" opacity="0.85">Photo 01</text>
<text x="400" y="354" text-anchor="middle" fill="hsl(150 8% 62%)" font-size="18" letter-spacing="3">PLACEHOLDER · 800×620</text>
</svg>

Before

Width:  |  Height:  |  Size: 984 B

View file

@ -1,15 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 900" width="800" height="900" font-family="Georgia, serif">
<defs>
<linearGradient id="g" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="hsl(14 72% 62%)" stop-opacity="0.40"/>
<stop offset="1" stop-color="hsl(160 28% 6%)" stop-opacity="1"/>
</linearGradient>
</defs>
<rect width="800" height="900" fill="hsl(160 28% 6%)"/>
<rect width="800" height="900" fill="url(#g)"/>
<circle cx="740" cy="60" r="120" fill="hsl(14 72% 62%)" opacity="0.12"/>
<circle cx="70" cy="830" r="90" fill="hsl(14 72% 62%)" opacity="0.10"/>
<text x="400" y="410" text-anchor="middle" fill="hsl(14 72% 62%)" font-size="46" font-weight="bold">Farm</text>
<text x="400" y="456" text-anchor="middle" fill="hsl(44 30% 90%)" font-size="26" opacity="0.85">Photo 02</text>
<text x="400" y="494" text-anchor="middle" fill="hsl(150 8% 62%)" font-size="18" letter-spacing="3">PLACEHOLDER · 800×900</text>
</svg>

Before

Width:  |  Height:  |  Size: 984 B

View file

@ -1,15 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 560" width="800" height="560" font-family="Georgia, serif">
<defs>
<linearGradient id="g" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="hsl(14 72% 62%)" stop-opacity="0.40"/>
<stop offset="1" stop-color="hsl(160 28% 6%)" stop-opacity="1"/>
</linearGradient>
</defs>
<rect width="800" height="560" fill="hsl(160 28% 6%)"/>
<rect width="800" height="560" fill="url(#g)"/>
<circle cx="740" cy="60" r="120" fill="hsl(14 72% 62%)" opacity="0.12"/>
<circle cx="70" cy="490" r="90" fill="hsl(14 72% 62%)" opacity="0.10"/>
<text x="400" y="240" text-anchor="middle" fill="hsl(14 72% 62%)" font-size="46" font-weight="bold">Farm</text>
<text x="400" y="286" text-anchor="middle" fill="hsl(44 30% 90%)" font-size="26" opacity="0.85">Photo 03</text>
<text x="400" y="324" text-anchor="middle" fill="hsl(150 8% 62%)" font-size="18" letter-spacing="3">PLACEHOLDER · 800×560</text>
</svg>

Before

Width:  |  Height:  |  Size: 984 B

View file

@ -1,15 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800" width="800" height="800" font-family="Georgia, serif">
<defs>
<linearGradient id="g" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="hsl(14 72% 62%)" stop-opacity="0.40"/>
<stop offset="1" stop-color="hsl(160 28% 6%)" stop-opacity="1"/>
</linearGradient>
</defs>
<rect width="800" height="800" fill="hsl(160 28% 6%)"/>
<rect width="800" height="800" fill="url(#g)"/>
<circle cx="740" cy="60" r="120" fill="hsl(14 72% 62%)" opacity="0.12"/>
<circle cx="70" cy="730" r="90" fill="hsl(14 72% 62%)" opacity="0.10"/>
<text x="400" y="360" text-anchor="middle" fill="hsl(14 72% 62%)" font-size="46" font-weight="bold">Farm</text>
<text x="400" y="406" text-anchor="middle" fill="hsl(44 30% 90%)" font-size="26" opacity="0.85">Photo 04</text>
<text x="400" y="444" text-anchor="middle" fill="hsl(150 8% 62%)" font-size="18" letter-spacing="3">PLACEHOLDER · 800×800</text>
</svg>

Before

Width:  |  Height:  |  Size: 984 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

View file

@ -93,7 +93,7 @@
--color-amber-400: hsl(36 95% 60%);
--color-amber-500: hsl(32 92% 52%);
/* lunarpunk / festival accent — Solunar Society (night) */
/* lunarpunk / festival accent — SolLunar Society (night) */
--color-indigo-300: hsl(255 85% 78%);
--color-indigo-400: hsl(256 78% 68%);
--color-indigo-500: hsl(258 70% 58%);