Apply founder slide-by-slide feedback
- Preserve "SolLunar" camel-case inside uppercase kickers/breadcrumb (new brandCaseParts helper; was rendering "SOLLUNAR") - Slide 2: "work began" (not begun); clarify tenants = resident businesses (retailers, food co-ops, makers) - Slide 3: bigger/bolder mycelium labels & zone captions - Slide 4: spell out near-field communication (NFC); "we" -> "the user" - Slide 9: membership prices $48/$148/$348; amenity examples (cold plunge, sauna, gym); Bitcoin ATM -> Bitcoin terminal - Slide 10: Yellow Houses -> Cypherpunk Commons A & B; describe Outdoor/Office; VIP guest room -> Long-term guest housing - Slide 13: P&L clearly labelled estimated/projected (recomputed from new prices: $65k rev / $31k profit / ~$372k yr) - Slide 15: "Prove the model in Austin. Prove the replicability in France. Achieve decentralization." - Sync PITCH-CONTENT.md to match Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
3d0ee2f5c7
commit
1c68b5b1b7
9 changed files with 110 additions and 68 deletions
|
|
@ -36,8 +36,9 @@ summit gathering and the farm are next.
|
||||||
- Peak experiences don't compound without ongoing relationships, education, and a place to practice.
|
- Peak experiences don't compound without ongoing relationships, education, and a place to practice.
|
||||||
|
|
||||||
**Thesis:** SolLunar Society is the missing infrastructure — a community hub
|
**Thesis:** SolLunar Society is the missing infrastructure — a community hub
|
||||||
where the work begun at transformational events continues through membership,
|
where the work began at transformational events continues through membership,
|
||||||
tenants, events and regenerative living.
|
resident businesses (retailers, food co-ops and makers), events and
|
||||||
|
regenerative living.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -65,8 +66,8 @@ Summit Gatherings** (travelling), **Château du Faune** (farm) — plus faint
|
||||||
place plugs in.
|
place plugs in.
|
||||||
|
|
||||||
- **Decentralized mesh network** — Community-owned routers and mesh kits blanket each location; connectivity no single provider can switch off.
|
- **Decentralized mesh network** — Community-owned routers and mesh kits blanket each location; connectivity no single provider can switch off.
|
||||||
- **Open hardware** — Servers, routers, exchange kiosks and NFC hardware from a documented, replicable bill of materials.
|
- **Open hardware** — Servers, routers, exchange kiosks and near-field communication (NFC) hardware from a documented, replicable bill of materials.
|
||||||
- **Sovereign software** — Self-hosted services on a stack we control; no platform lock-in, forkable by any future node.
|
- **Sovereign software** — Self-hosted services on a stack the user controls; no platform lock-in, forkable by any future node.
|
||||||
- **Bitcoin & Lightning** — Instant, low-fee settlement at kiosks and NFC points. Value stays in the network, not the middleman.
|
- **Bitcoin & Lightning** — Instant, low-fee settlement at kiosks and NFC points. Value stays in the network, not the middleman.
|
||||||
- **Nostr identity & comms** — Portable identity, messaging and social layer that travels with members across every node.
|
- **Nostr identity & comms** — Portable identity, messaging and social layer that travels with members across every node.
|
||||||
- **Replicable blueprint** — Every node ships its build docs. Proven once, the whole stack redeploys anywhere in the world.
|
- **Replicable blueprint** — Every node ships its build docs. Proven once, the whole stack redeploys anywhere in the world.
|
||||||
|
|
@ -96,9 +97,9 @@ we're raising for.
|
||||||
**What makes it unique**
|
**What makes it unique**
|
||||||
- Live, financially-modeled first node (real P&L)
|
- Live, financially-modeled first node (real P&L)
|
||||||
- Five founding tenants + a three-tier membership
|
- Five founding tenants + a three-tier membership
|
||||||
- Bitcoin ATM, vending & the full member ecosystem on site
|
- Bitcoin terminal, vending & the full member ecosystem on site
|
||||||
|
|
||||||
**Spaces:** Retail space · Event space · Private lounge · Co-working · Yellow House hostel & data center
|
**Spaces:** Retail space · Event space · Private lounge · Co-working · Cypherpunk Commons hostel & data center
|
||||||
**How it earns:** Memberships · Tenants · Events & venue buyouts
|
**How it earns:** Memberships · Tenants · Events & venue buyouts
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -145,9 +146,9 @@ Recurring membership is the core of the model — priced right for the Austin ma
|
||||||
|
|
||||||
| Tier | Price / mo | Target members | Includes |
|
| Tier | Price / mo | Target members | Includes |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| **Solarpunk Society** | $50 | 150 | Member events; amenities, vending & Bitcoin ATM; access to tenants |
|
| **Solarpunk Society** | $48 | 150 | Member events; amenities (cold plunge, sauna & gym); vending & Bitcoin terminal; access to tenants |
|
||||||
| **Lunarpunk Locals** | $150 | 100 | Coworking days at SolLunar; access to tenants; amenities, vending & Bitcoin ATM |
|
| **Lunarpunk Locals** | $148 | 100 | Coworking days at SolLunar; amenities (cold plunge, sauna & gym); vending & Bitcoin terminal; access to tenants |
|
||||||
| **Cypherpunk Commons** *(flagship)* | $350 | 50 | Coworking with the Lab 484 team; all locations · tech support; Bitcoin ATM, vending, coffee & tea; full tenant & amenity access |
|
| **Cypherpunk Commons** *(flagship)* | $348 | 50 | Coworking with the Lab 484 team; all locations · tech support; cold plunge, sauna, gym & coworking; vending, coffee, tea & Bitcoin terminal; full tenant & amenity access |
|
||||||
|
|
||||||
**Austin comparables:** Soho House $350 · Bond Collective $300 · Bathe $200 · Stardust Garage $155 · Submersive $41
|
**Austin comparables:** Soho House $350 · Bond Collective $300 · Bathe $200 · Stardust Garage $155 · Submersive $41
|
||||||
|
|
||||||
|
|
@ -155,13 +156,13 @@ Recurring membership is the core of the model — priced right for the Austin ma
|
||||||
|
|
||||||
## 10 · The building — one address, three buildings
|
## 10 · The building — one address, three buildings
|
||||||
|
|
||||||
A members' society up front, two Yellow Houses behind — lodging, coworking and
|
A members' society up front, Cypherpunk Commons A & B behind — lodging, coworking
|
||||||
the data center that runs it all. *The Yellow House data center makes SolLunar
|
and the data center that runs it all. *The Cypherpunk Commons data center makes
|
||||||
self-hosting — the Lab 484 stack runs on-site, not in someone else's cloud.*
|
SolLunar self-hosting — the Lab 484 stack runs on-site, not in someone else's cloud.*
|
||||||
|
|
||||||
- **SolLunar Society** — Retail space · Event space · Private office · Private lounge
|
- **SolLunar Society** — Retail space · Event space · Private office · Private lounge
|
||||||
- **Lab 484 · Yellow House 1** — Hostel room ($40/night) · Healer room · Coworking · Meeting room · Outdoor
|
- **Cypherpunk Commons A** — Hostel room ($40/night) · Healer room · Coworking · Meeting room · Outdoor (activity space, food truck & café)
|
||||||
- **Lab 484 · Yellow House 2** — VIP guest room · Office · Data center · Outdoor
|
- **Cypherpunk Commons B** — Long-term guest housing · Office (coworking with amenities) · Data center · Outdoor (activity space, food truck & café)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -190,22 +191,22 @@ money, your identity travel with you.
|
||||||
|
|
||||||
## 13 · The numbers — SolLunar Society unit economics
|
## 13 · The numbers — SolLunar Society unit economics
|
||||||
|
|
||||||
Real **monthly** P&L for the Austin node. *(Figures recomputed from the source
|
**Estimated monthly** P&L for the Austin node — projections, not audited results.
|
||||||
plan's line items; the source summary table stated $71.4k rev / $38.5k exp,
|
*(Figures recomputed from the source plan's line items; the source summary table
|
||||||
which didn't reconcile — see the caveat below.)*
|
stated $71.4k rev / $38.5k exp, which didn't reconcile — see the caveat below.)*
|
||||||
|
|
||||||
**Summary (recomputed):**
|
**Summary (recomputed):**
|
||||||
|
|
||||||
| | Monthly | Yearly |
|
| | Monthly | Yearly |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| **Revenue** | **$65,400** | $784,800 |
|
| **Revenue** | **$65,000** | $780,000 |
|
||||||
| **Expenses** | **$34,000** | $408,000 |
|
| **Expenses** | **$34,000** | $408,000 |
|
||||||
| **Net profit** | **$31,400** | **~$376,800** |
|
| **Net profit** | **$31,000** | **~$372,000** |
|
||||||
|
|
||||||
**Revenue — Memberships ($36,500/mo)**
|
**Revenue — Memberships ($36,100/mo)**
|
||||||
- Cypherpunk Commons — $17,500 (50 × $350)
|
- Cypherpunk Commons — $17,400 (50 × $348)
|
||||||
- Solarpunk Society — $7,500 (150 × $50)
|
- Solarpunk Society — $7,200 (150 × $48)
|
||||||
- Lunarpunk Locals — $1,500 ($150/mo · count TBD)
|
- Lunarpunk Locals — $1,500 ($148/mo · count TBD)
|
||||||
- Vending machine sales — $5,000
|
- Vending machine sales — $5,000
|
||||||
- Promo / B2B network sales — $5,000
|
- Promo / B2B network sales — $5,000
|
||||||
|
|
||||||
|
|
@ -227,11 +228,12 @@ which didn't reconcile — see the caveat below.)*
|
||||||
- Overhead — $3,000
|
- Overhead — $3,000
|
||||||
- Utilities — $2,000 (electric, water, trash)
|
- Utilities — $2,000 (electric, water, trash)
|
||||||
|
|
||||||
> ⚠️ **Caveats to reconcile:** the source doc's summary table stated
|
> ⚠️ **These are estimated figures — projections, not audited results.** The
|
||||||
> $71,400 revenue / $38,500 expenses / $32,900 profit / $394,800/yr, which does
|
> source doc's summary table stated $71,400 revenue / $38,500 expenses / $32,900
|
||||||
> **not** match the line items above (line items give $65,400 / $34,000 /
|
> profit / $394,800/yr, which does **not** match the line items above (line items
|
||||||
> $31,400 / $376,800). Also, **Lunarpunk Locals** income ($1,500) doesn't match
|
> give $65,000 / $34,000 / $31,000 / $372,000). Also, **Lunarpunk Locals** income
|
||||||
> its "100 × $150" annotation. Numbers here use the line-item recomputation.
|
> ($1,500) doesn't match its "100 × $148" annotation. Numbers here use the
|
||||||
|
> line-item recomputation.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -255,12 +257,12 @@ Invest in SolLunar Society — the first node, opening in Austin.
|
||||||
|
|
||||||
| Option | Amount | Equity | Annual profit share¹ | What it funds |
|
| Option | Amount | Equity | Annual profit share¹ | What it funds |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| **Get started** | $400k | 10% | ~$37,680 / yr | Seeds the launch — sign the lease, fit out the space and open the doors. |
|
| **Get started** | $400k | 10% | ~$37,200 / yr | Seeds the launch — sign the lease, fit out the space and open the doors. |
|
||||||
| **Full execution** *(full build)* | $900k | 25% | ~$94,200 / yr | Funds the full build-out and the first operating year end to end. |
|
| **Full execution** *(full build)* | $900k | 25% | ~$93,000 / yr | Funds the full build-out and the first operating year end to end. |
|
||||||
|
|
||||||
¹ On SolLunar Society's recomputed ~$376,800/yr node profit.
|
¹ On SolLunar Society's estimated ~$372,000/yr node profit.
|
||||||
|
|
||||||
- **Prove the model in Austin, then replicate it on Lab 484 — the summit gathering and the farm are next.**
|
- **Prove the model in Austin. Prove the replicability in France. Achieve decentralization.**
|
||||||
- **Contact:** team@l484.com · Book an investor call
|
- **Contact:** team@l484.com · Book an investor call
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
import { computed, ref, watch } from 'vue'
|
import { computed, ref, watch } from 'vue'
|
||||||
import { ChevronLeft, ChevronRight, Sun, Moon } from '@lucide/vue'
|
import { ChevronLeft, ChevronRight, Sun, Moon } from '@lucide/vue'
|
||||||
import { useDeck } from './useDeck'
|
import { useDeck } from './useDeck'
|
||||||
import { brand } from './data'
|
import { brand, brandCaseParts } from './data'
|
||||||
import markUrl from '@/deck/assets/mark.png'
|
import markUrl from '@/deck/assets/mark.png'
|
||||||
|
|
||||||
// theme: dark by default, persisted; a single `.dark` class flips every token
|
// theme: dark by default, persisted; a single `.dark` class flips every token
|
||||||
|
|
@ -79,7 +79,9 @@ function onTouchEnd(e: TouchEvent) {
|
||||||
<span class="font-display text-sm font-semibold tracking-wide text-fg">SolLunar</span>
|
<span class="font-display text-sm font-semibold tracking-wide text-fg">SolLunar</span>
|
||||||
</span>
|
</span>
|
||||||
<div class="flex items-center gap-3">
|
<div class="flex items-center gap-3">
|
||||||
<span class="text-xs uppercase tracking-[0.2em]">{{ current.label }}</span>
|
<span class="text-xs uppercase tracking-[0.2em]">
|
||||||
|
<span v-for="p in brandCaseParts(current.label)" :key="p.id" :class="{ 'normal-case': p.keep }">{{ p.text }}</span>
|
||||||
|
</span>
|
||||||
<button
|
<button
|
||||||
class="pointer-events-auto grid size-8 place-items-center rounded-full border border-line bg-surface-2 text-fg transition hover:bg-surface-3"
|
class="pointer-events-auto grid size-8 place-items-center rounded-full border border-line bg-surface-2 text-fg transition hover:bg-surface-3"
|
||||||
:aria-label="dark ? 'Switch to light mode' : 'Switch to dark mode'"
|
:aria-label="dark ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
|
|
||||||
|
|
@ -300,19 +300,22 @@ const festivalCaps = [
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.myc-label-name {
|
.myc-label-name {
|
||||||
font-family: var(--font-display);
|
font-family: var(--font-display);
|
||||||
font-size: 17px;
|
font-size: 19px;
|
||||||
font-weight: 600;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
.myc-label-tag {
|
.myc-label-tag {
|
||||||
font-size: 10px;
|
font-size: 12.5px;
|
||||||
letter-spacing: 0.22em;
|
font-weight: 600;
|
||||||
fill: var(--color-fg-muted);
|
letter-spacing: 0.16em;
|
||||||
|
fill: var(--color-fg);
|
||||||
|
opacity: 0.85;
|
||||||
}
|
}
|
||||||
.myc-zone {
|
.myc-zone {
|
||||||
font-size: 11px;
|
font-size: 13px;
|
||||||
letter-spacing: 0.24em;
|
font-weight: 600;
|
||||||
fill: var(--color-fg-muted);
|
letter-spacing: 0.18em;
|
||||||
opacity: 0.7;
|
fill: var(--color-fg);
|
||||||
|
opacity: 0.8;
|
||||||
}
|
}
|
||||||
|
|
||||||
.myc-pulse {
|
.myc-pulse {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
/** Shared slide chrome: consistent padding, kicker, title, subtitle + body slot. */
|
/** Shared slide chrome: consistent padding, kicker, title, subtitle + body slot. */
|
||||||
|
import { brandCaseParts } from '../data'
|
||||||
|
|
||||||
defineProps<{
|
defineProps<{
|
||||||
kicker?: string
|
kicker?: string
|
||||||
title?: string
|
title?: string
|
||||||
|
|
@ -17,7 +19,7 @@ defineProps<{
|
||||||
v-if="kicker"
|
v-if="kicker"
|
||||||
class="mb-3 text-xs font-semibold uppercase tracking-[0.25em] text-amber"
|
class="mb-3 text-xs font-semibold uppercase tracking-[0.25em] text-amber"
|
||||||
>
|
>
|
||||||
{{ kicker }}
|
<span v-for="p in brandCaseParts(kicker)" :key="p.id" :class="{ 'normal-case': p.keep }">{{ p.text }}</span>
|
||||||
</p>
|
</p>
|
||||||
<h2
|
<h2
|
||||||
v-if="title"
|
v-if="title"
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ export const problem = {
|
||||||
'Peak experiences don’t compound without ongoing relationships, education, and a place to practice.',
|
'Peak experiences don’t compound without ongoing relationships, education, and a place to practice.',
|
||||||
],
|
],
|
||||||
thesis:
|
thesis:
|
||||||
'SolLunar Society is the missing infrastructure — a community hub where the work begun at transformational events continues through membership, tenants, events and regenerative living.',
|
'SolLunar Society is the missing infrastructure — a community hub where the work began at transformational events continues through membership, resident businesses (retailers, food co-ops and makers), events and regenerative living.',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Accent = 'pine' | 'indigo' | 'rose' | 'clay'
|
export type Accent = 'pine' | 'indigo' | 'rose' | 'clay'
|
||||||
|
|
@ -81,9 +81,9 @@ export const entities: Entity[] = [
|
||||||
traits: [
|
traits: [
|
||||||
'Live, financially-modeled first node (real P&L)',
|
'Live, financially-modeled first node (real P&L)',
|
||||||
'Five founding tenants + a three-tier membership',
|
'Five founding tenants + a three-tier membership',
|
||||||
'Bitcoin ATM, vending & the full member ecosystem on site',
|
'Bitcoin terminal, vending & the full member ecosystem on site',
|
||||||
],
|
],
|
||||||
spaces: ['Retail space', 'Event space', 'Private lounge', 'Co-working', 'Yellow House hostel & data center'],
|
spaces: ['Retail space', 'Event space', 'Private lounge', 'Co-working', 'Cypherpunk Commons hostel & data center'],
|
||||||
revenue: ['Memberships', 'Tenants', 'Events & venue buyouts'],
|
revenue: ['Memberships', 'Tenants', 'Events & venue buyouts'],
|
||||||
icon: 'Building2',
|
icon: 'Building2',
|
||||||
},
|
},
|
||||||
|
|
@ -194,12 +194,12 @@ export const tech = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Open hardware',
|
title: 'Open hardware',
|
||||||
body: 'Servers, routers, exchange kiosks and NFC hardware from a documented, replicable bill of materials.',
|
body: 'Servers, routers, exchange kiosks and near-field communication (NFC) hardware from a documented, replicable bill of materials.',
|
||||||
icon: 'Cpu',
|
icon: 'Cpu',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Sovereign software',
|
title: 'Sovereign software',
|
||||||
body: 'Self-hosted services on a stack we control — no platform lock-in, forkable by any future node.',
|
body: 'Self-hosted services on a stack the user controls — no platform lock-in, forkable by any future node.',
|
||||||
icon: 'Code',
|
icon: 'Code',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -324,30 +324,41 @@ export type Membership = {
|
||||||
export const memberships: Membership[] = [
|
export const memberships: Membership[] = [
|
||||||
{
|
{
|
||||||
name: 'Solarpunk Society',
|
name: 'Solarpunk Society',
|
||||||
price: 50,
|
price: 48,
|
||||||
target: 150,
|
target: 150,
|
||||||
blurb: 'Events access.',
|
blurb: 'Events access.',
|
||||||
perks: ['Member events', 'Amenities, vending & Bitcoin ATM', 'Access to tenants'],
|
perks: [
|
||||||
|
'Member events',
|
||||||
|
'Amenities: cold plunge, sauna & gym',
|
||||||
|
'Vending & Bitcoin terminal',
|
||||||
|
'Access to tenants',
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Cypherpunk Commons',
|
name: 'Cypherpunk Commons',
|
||||||
price: 350,
|
price: 348,
|
||||||
target: 50,
|
target: 50,
|
||||||
featured: true,
|
featured: true,
|
||||||
blurb: 'Full access, all locations.',
|
blurb: 'Full access, all locations.',
|
||||||
perks: [
|
perks: [
|
||||||
'Coworking with the Lab 484 team',
|
'Coworking with the Lab 484 team',
|
||||||
'All locations · tech support',
|
'All locations · tech support',
|
||||||
'Bitcoin ATM, vending, coffee & tea',
|
'Cold plunge, sauna, gym & coworking',
|
||||||
|
'Vending, coffee, tea & Bitcoin terminal',
|
||||||
'Full tenant & amenity access',
|
'Full tenant & amenity access',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Lunarpunk Locals',
|
name: 'Lunarpunk Locals',
|
||||||
price: 150,
|
price: 148,
|
||||||
target: 100,
|
target: 100,
|
||||||
blurb: 'Coworking days.',
|
blurb: 'Coworking days.',
|
||||||
perks: ['Coworking days at SolLunar', 'Access to tenants', 'Amenities, vending & Bitcoin ATM'],
|
perks: [
|
||||||
|
'Coworking days at SolLunar',
|
||||||
|
'Amenities: cold plunge, sauna & gym',
|
||||||
|
'Vending & Bitcoin terminal',
|
||||||
|
'Access to tenants',
|
||||||
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -384,9 +395,9 @@ export const pnlGroups: PnlGroup[] = [
|
||||||
accent: 'indigo',
|
accent: 'indigo',
|
||||||
kind: 'revenue',
|
kind: 'revenue',
|
||||||
items: [
|
items: [
|
||||||
{ label: 'Cypherpunk Commons', amount: 17_500, note: '50 × $350' },
|
{ label: 'Cypherpunk Commons', amount: 17_400, note: '50 × $348' },
|
||||||
{ label: 'Solarpunk Society', amount: 7_500, note: '150 × $50' },
|
{ label: 'Solarpunk Society', amount: 7_200, note: '150 × $48' },
|
||||||
{ label: 'Lunarpunk Locals', amount: 1_500, note: '$150/mo · count TBD' },
|
{ label: 'Lunarpunk Locals', amount: 1_500, note: '$148/mo · count TBD' },
|
||||||
{ label: 'Vending machine sales', amount: 5_000 },
|
{ label: 'Vending machine sales', amount: 5_000 },
|
||||||
{ label: 'Promo / B2B network sales', amount: 5_000 },
|
{ label: 'Promo / B2B network sales', amount: 5_000 },
|
||||||
],
|
],
|
||||||
|
|
@ -453,12 +464,23 @@ export const buildings = [
|
||||||
rooms: ['Retail space', 'Event space', 'Private office', 'Private lounge'],
|
rooms: ['Retail space', 'Event space', 'Private office', 'Private lounge'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Lab 484 · Yellow House 1',
|
name: 'Cypherpunk Commons A',
|
||||||
rooms: ['Hostel room · $40/night', 'Healer room', 'Coworking', 'Meeting room', 'Outdoor'],
|
rooms: [
|
||||||
|
'Hostel room · $40/night',
|
||||||
|
'Healer room',
|
||||||
|
'Coworking',
|
||||||
|
'Meeting room',
|
||||||
|
'Outdoor · activity space, food truck & café',
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Lab 484 · Yellow House 2',
|
name: 'Cypherpunk Commons B',
|
||||||
rooms: ['VIP guest room', 'Office', 'Data center', 'Outdoor'],
|
rooms: [
|
||||||
|
'Long-term guest housing',
|
||||||
|
'Office · coworking with amenities',
|
||||||
|
'Data center',
|
||||||
|
'Outdoor · activity space, food truck & café',
|
||||||
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -520,6 +542,16 @@ export const fmtUsd = (n: number) => {
|
||||||
|
|
||||||
export const fmtUsdFull = (n: number) => `$${n.toLocaleString('en-US')}`
|
export const fmtUsdFull = (n: number) => `$${n.toLocaleString('en-US')}`
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Split a label so the "SolLunar" brand keeps its camel-case even inside a
|
||||||
|
* CSS `uppercase` eyebrow — the `keep` parts get `normal-case`.
|
||||||
|
*/
|
||||||
|
export const brandCaseParts = (text: string) =>
|
||||||
|
text
|
||||||
|
.split(/(SolLunar)/)
|
||||||
|
.filter(Boolean)
|
||||||
|
.map((t, i) => ({ id: i, text: t, keep: t === 'SolLunar' }))
|
||||||
|
|
||||||
/** Tailwind class helpers keyed by entity accent — keeps slides declarative. */
|
/** Tailwind class helpers keyed by entity accent — keeps slides declarative. */
|
||||||
export const accentText: Record<Accent, string> = {
|
export const accentText: Record<Accent, string> = {
|
||||||
pine: 'text-pine-300',
|
pine: 'text-pine-300',
|
||||||
|
|
|
||||||
BIN
src/deck/gallery/city/1ac3edae-ff85-4977-9025-d44abb0e5722.png
Normal file
BIN
src/deck/gallery/city/1ac3edae-ff85-4977-9025-d44abb0e5722.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.5 MiB |
|
|
@ -67,7 +67,7 @@ const options = investorAsk.options.map((o) => ({ ...o, annual: Math.round(pnl.y
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="mt-8 max-w-xl text-sm text-fg-muted">
|
<p class="mt-8 max-w-xl text-sm text-fg-muted">
|
||||||
Prove the model in Austin, then replicate it on Lab 484 — the summit gathering and the farm are next.
|
Prove the model in Austin. Prove the replicability in France. Achieve decentralization.
|
||||||
</p>
|
</p>
|
||||||
</SlideFrame>
|
</SlideFrame>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ const revPct = (id: string) =>
|
||||||
<SlideFrame
|
<SlideFrame
|
||||||
kicker="SolLunar Society · unit economics"
|
kicker="SolLunar Society · unit economics"
|
||||||
title="The numbers"
|
title="The numbers"
|
||||||
subtitle="Real monthly P&L for the Austin node. Tap any category to break it down."
|
subtitle="Estimated monthly P&L for the Austin node. Tap any category to break it down."
|
||||||
>
|
>
|
||||||
<!-- headline stats -->
|
<!-- headline stats -->
|
||||||
<div class="grid grid-cols-2 gap-3 sm:grid-cols-4">
|
<div class="grid grid-cols-2 gap-3 sm:grid-cols-4">
|
||||||
|
|
@ -144,8 +144,9 @@ const revPct = (id: string) =>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="mt-4 text-[11px] text-fg-muted/70">
|
<p class="mt-4 text-[11px] text-fg-muted/70">
|
||||||
Figures recomputed from the plan's line items. The source summary stated
|
<span class="font-semibold text-amber">Estimated figures — projections, not audited results.</span>
|
||||||
{{ fmtUsd(pnlDocSummary.revenue) }} rev / {{ fmtUsd(pnlDocSummary.expenses) }} exp —
|
Recomputed from the plan's line items; the source summary stated
|
||||||
|
{{ fmtUsd(pnlDocSummary.revenue) }} rev / {{ fmtUsd(pnlDocSummary.expenses) }} exp and is
|
||||||
being reconciled. Lunarpunk Locals count is TBD.
|
being reconciled. Lunarpunk Locals count is TBD.
|
||||||
</p>
|
</p>
|
||||||
</SlideFrame>
|
</SlideFrame>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ const icons = ['Building2', 'BedDouble', 'Cpu']
|
||||||
<SlideFrame
|
<SlideFrame
|
||||||
kicker="SolLunar Society · the building"
|
kicker="SolLunar Society · the building"
|
||||||
title="One address, three buildings"
|
title="One address, three buildings"
|
||||||
subtitle="A members' society up front, two Yellow Houses behind — lodging, coworking and the data center that runs it all."
|
subtitle="A members' society up front, Cypherpunk Commons A & B behind — lodging, coworking and the data center that runs it all."
|
||||||
>
|
>
|
||||||
<div class="grid gap-4 md:grid-cols-3">
|
<div class="grid gap-4 md:grid-cols-3">
|
||||||
<div
|
<div
|
||||||
|
|
@ -34,7 +34,7 @@ const icons = ['Building2', 'BedDouble', 'Cpu']
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="mt-6 text-sm text-fg-muted">
|
<p class="mt-6 text-sm text-fg-muted">
|
||||||
The Yellow House data center makes SolLunar self-hosting — the Lab 484 stack runs on-site,
|
The Cypherpunk Commons data center makes SolLunar self-hosting — the Lab 484 stack runs on-site,
|
||||||
not in someone else's cloud.
|
not in someone else's cloud.
|
||||||
</p>
|
</p>
|
||||||
</SlideFrame>
|
</SlideFrame>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue