Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
81fbf65
feat(data): add canonical soveng alumni list
jodobear Jun 5, 2026
9af61f4
feat(data): add canonical media appearances
jodobear Jun 5, 2026
ebe447f
feat(media): add appearances page
jodobear Jun 5, 2026
c904e85
fix(media): refine appearances page styling
jodobear Jun 5, 2026
bb6225c
fix(media): correct appearance details
jodobear Jun 6, 2026
bf6aaaf
fix(media): add featured cover gradient
jodobear Jun 6, 2026
622555d
fix(media): soften featured cover gradient
jodobear Jun 6, 2026
0eda89a
fix(media): make cover wash red spray
jodobear Jun 6, 2026
df5adf8
fix(media): tune cover spray and archive metadata
jodobear Jun 6, 2026
be7c55b
fix(media): intensify archive image treatment
jodobear Jun 6, 2026
86c21b9
Revert "fix(media): intensify archive image treatment"
jodobear Jun 6, 2026
2c655d8
fix(media): restore archive metadata column
jodobear Jun 6, 2026
01e1fe0
Revert "fix(media): restore archive metadata column"
jodobear Jun 6, 2026
37c2ead
fix(media): restore archive date column
jodobear Jun 6, 2026
4ae65dd
fix(media): simplify hero lede
jodobear Jun 6, 2026
ef6ce09
fix(media): adjust hero punctuation
jodobear Jun 6, 2026
ccbf134
style(media): strip appearances page back to minimal row layout
dergigi Jun 11, 2026
e417635
style(media): merge sections into one list, larger type
dergigi Jun 11, 2026
d18f95f
fix(media): rewrite hero copy
dergigi Jun 11, 2026
f12834c
fix(media): show covers uncropped at natural aspect ratio
dergigi Jun 11, 2026
6000002
fix(media): rename page to External Dialogues, link internal dialogues
dergigi Jun 11, 2026
5fbfd55
fix(media): update lede copy, link alumni and No Solutions
dergigi Jun 11, 2026
9023ec6
fix(media): polish layout, headings, copy, and mobile readability
dergigi Jun 11, 2026
f526381
fix(data): rename FIPs project to FIPS
dergigi Jun 11, 2026
a88d9e7
style: fix prettier formatting
dergigi Jun 11, 2026
18ad3ea
fix(media): simplify Nodesignal heading, drop ship separator
dergigi Jun 11, 2026
6701686
fix(media): use flag emoji for Nodesignal language tag
dergigi Jun 11, 2026
68b5505
fix(nav): remove Media from footer to prevent wrapping
dergigi Jun 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .cursor/skills/frontend-design/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ The user provides frontend requirements: a component, page, application, or inte
## Design Thinking

Before coding, understand the context and commit to a BOLD aesthetic direction:

- **Purpose**: What problem does this interface solve? Who uses it?
- **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
- **Constraints**: Technical requirements (framework, performance, accessibility).
Expand All @@ -19,6 +20,7 @@ Before coding, understand the context and commit to a BOLD aesthetic direction:
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.

Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:

- Production-grade and functional
- Visually striking and memorable
- Cohesive with a clear aesthetic point-of-view
Expand All @@ -27,6 +29,7 @@ Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
## Frontend Aesthetics Guidelines

Focus on:

- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
Expand Down
4 changes: 4 additions & 0 deletions src/config/menu.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@
},
{
"name": "Media",
"url": "/media"
},
{
"name": "Gallery",
"url": "https://slidestr.net/p/npub1s0veng2gvfwr62acrxhnqexq76sj6ldg3a5t935jy8e6w3shr5vsnwrmq5"
},
{
Expand Down
5 changes: 5 additions & 0 deletions src/data/mediaAppearances.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import mediaAppearancesData from './mediaAppearances.json';

const mediaAppearances = mediaAppearancesData;

export default mediaAppearances;
92 changes: 92 additions & 0 deletions src/data/mediaAppearances.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
[
{
"id": "open-markets-7-yo-hoho-sovereign-engineering",
"title": "#7 Yo hoho 🏴‍☠️ Sovereign Engineering",
"source": "Open Markets Podcast",
"episodeNumber": 7,
"platform": "Fountain",
"url": "https://fountain.fm/episode/BGS8MezCVgY9Tb6xwkkn",
"imageUrl": "https://feeds.fountain.fm/iKaquCnTj0q5Bg2VfGRD/files/COVER_ART---DEFAULT---daa55dcc-fb94-4e52-9a89-fbc59e2cc32c.jpg",
"imageAlt": "Open Markets Podcast cover art",
"publishedAt": "2026-05-31T17:21:08.455Z",
"durationSeconds": 6850,
"featured": true,
"description": "Yo joins Open Markets to talk Nostr marketplace development, gamma markets, on-chain zaps, and the build culture around Sovereign Engineering.",
"alumniNpubs": ["npub16c9a45p5dr6l3jzmrvgdh9m7xy994tatxd6sm7kmxaygkq4lertsfnacfm", "npub1equrmqway3qxw3dkssymusxkwgwrqypfgeqx0lx9pgjam7gnj4ysaqhkj6"],
"projectNames": ["Shopstr", "Plebeian Market"],
"tags": ["Nostr marketplaces", "Sovereign Engineering", "Open Markets", "Zaps"]
},
{
"id": "nodesignal-e280-sovereign-engineering-show-talk-build",
"title": "Nodesignal-Talk - E280 - Sovereign Engineering – Show-Talk-Build",
"source": "Nodesignal",
"episodeNumber": 280,
"language": "🇩🇪",
"platform": "Fountain",
"url": "https://fountain.fm/episode/R2ewR5SPX2LjAzU5uESs",
"imageUrl": "https://assets.podhome.fm/24263e26-0aa8-432a-467a-08dc1370a35c/639135932038097050_episode_d6b6f344-ea22-4cc0-8b97-4e1392475e7d.jpg",
"imageAlt": "Nodesignal episode cover art",
"publishedAt": "2026-05-08T12:15:39.000Z",
"durationSeconds": 4708,
"featured": false,
"description": "Max, Egge, and Thomas discuss six weeks of building on Madeira, demo-day pressure, AI-assisted project work, and how Friday demos became real Bitcoin and Nostr tools.",
"alumniNpubs": [
"npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt",
"npub1mhcr4j594hsrnen594d7700n2t03n8gdx83zhxzculk6sh9nhwlq7uc226",
"npub175aemydge5thld9peuyp5xmdtp6e5wq77ys203dp3s88pjhgpxpsvgkemm"
],
"projectNames": ["FIPS"],
"tags": ["Sovereign Engineering", "Madeira", "Bitcoin", "Nostr", "FIPS"]
},
{
"id": "open-markets-5-what-the-fips",
"title": "#5 What The Fips",
"source": "Open Markets Podcast",
"episodeNumber": 5,
"platform": "Fountain",
"url": "https://fountain.fm/episode/eaQOAVu8jhFQUhqu3XTu",
"imageUrl": "https://feeds.fountain.fm/iKaquCnTj0q5Bg2VfGRD/files/COVER_ART---DEFAULT---daa55dcc-fb94-4e52-9a89-fbc59e2cc32c.jpg",
"imageAlt": "Open Markets Podcast cover art",
"publishedAt": "2026-05-05T16:38:55.496Z",
"durationSeconds": 5204,
"featured": false,
"description": "Arjen and Sync join Open Markets to talk FIPS: mesh networking for decentralized connectivity, local community resilience, and protocol-first markets.",
"alumniNpubs": ["npub1hw6amg8p24ne08c9gdq8hhpqx0t0pwanpae9z25crn7m9uy7yarse465gr", "npub1equrmqway3qxw3dkssymusxkwgwrqypfgeqx0lx9pgjam7gnj4ysaqhkj6"],
"projectNames": ["FIPS", "Learn FIPS"],
"tags": ["FIPS", "Mesh networking", "Open Markets", "Local resilience"]
},
{
"id": "citadel-dispatch-cd193-fips-fixing-the-internet",
"title": "CD193: FIPS - FIXING THE INTERNET",
"source": "Citadel Dispatch",
"episodeNumber": 193,
"platform": "Fountain",
"url": "https://fountain.fm/episode/2luFagFMSN3J2IX7m4wj",
"imageUrl": "https://assets.podhome.fm/8029725b-0319-44b9-4793-08dc404e83a4/638475670208679180CITADELDISPATCH.jpeg",
"imageAlt": "Citadel Dispatch cover art",
"publishedAt": "2026-03-06T23:46:50.000Z",
"durationSeconds": 3468,
"featured": true,
"description": "Arjen joins Citadel Dispatch to talk FIPS, an open-source mesh networking project for middleman-free internet: node identity, encrypted traffic, peer discovery, and sats-aware routing.",
"alumniNpubs": ["npub1hw6amg8p24ne08c9gdq8hhpqx0t0pwanpae9z25crn7m9uy7yarse465gr"],
"projectNames": ["FIPS", "Learn FIPS", "Tollgate"],
"tags": ["FIPS", "Mesh networking", "Infrastructure", "Nostr", "Tollgate"]
},
{
"id": "good-stuff-22-bitcoin-nostr-sovereign-engineering-gigi",
"title": "Good Stuff 22 - Bitcoin, Nostr & Sovereign Engineering with Gigi",
"source": "The Good Stuff",
"episodeNumber": 22,
"platform": "YouTube",
"url": "https://www.youtube.com/watch?v=aKN1y7SxnJg",
"imageUrl": "https://i.ytimg.com/vi/aKN1y7SxnJg/maxresdefault.jpg",
"imageAlt": "The Good Stuff video thumbnail",
"publishedAt": "2025-09-11T10:10:50-07:00",
"durationSeconds": 5798,
"featured": false,
"description": "Gigi and Pete walk through Bitcoin circular economies, eCash payment systems, Nostr's permissionless internet vision, AI, and the Sovereign Engineering context in Madeira.",
"alumniNpubs": ["npub1dergggklka99wwrs92yz8wdjs952h2ux2ha2ed598ngwu9w7a6fsh9xzpc", "npub1jss47s4fvv6usl7tn6yp5zamv2u60923ncgfea0e6thkza5p7c3q0afmzy"],
"projectNames": [],
"tags": ["Bitcoin", "Nostr", "eCash", "AI", "Madeira"]
}
]
2 changes: 1 addition & 1 deletion src/data/projectHighlights.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const wikifreedia = requireProject('NIP-54: Wiki / Wikifreedia');
const nsite = requireProject('Nsite');
const tollgate = requireProject('Tollgate');
const castrMe = requireProject('castr.me');
const fipsPrototype = requireProject('FIPs');
const fipsPrototype = requireProject('FIPS');
const nip60 = requireProject('NIP-60');
const nip61 = requireProject('NIP-61');

Expand Down
2 changes: 1 addition & 1 deletion src/data/showcaseProjects.json
Original file line number Diff line number Diff line change
Expand Up @@ -884,7 +884,7 @@
"highlight": false
},
{
"name": "FIPs",
"name": "FIPS",
"description": "Fuck IPs using bloom filters",
"cohort": "SEC-05",
"link": "https://fips.network/",
Expand Down
5 changes: 5 additions & 0 deletions src/data/sovengAlumni.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import sovEngAlumniData from './sovengAlumni.json';

const sovEngAlumni = sovEngAlumniData;

export default sovEngAlumni;
Loading
Loading