diff --git a/README.md b/README.md
index 11768f4..bb5cb05 100644
--- a/README.md
+++ b/README.md
@@ -450,7 +450,7 @@ aitherboard/
| Category | Relays | Purpose |
|----------|--------|---------|
-| **Default Relays** | `wss://theforest.nostr1.com`
`wss://nostr21.com`
`wss://nostr.land`
`wss://nostr.wine`
`wss://nostr.sovbit.host` | Base relays for all operations |
+| **Default Relays** | `wss://theforest.nostr1.com`
`wss://nostr21.com`
`wss://nostr.land`
`wss://nostr.sovbit.host`
`wss://orly-relay.imwald.eu`
`wss://nostr.wine` | Base relays for all operations |
| **Profile Relays** | `wss://relay.damus.io`
`wss://aggr.nostr.land`
`wss://profiles.nostr1.com` | Additional relays for profile/kind 1 content |
### Relay Selection by Operation
@@ -857,7 +857,7 @@ aitherboard/
| Variable | Type | Default | Validation |
|----------|------|---------|------------|
-| `VITE_DEFAULT_RELAYS` | Comma-separated URLs | `wss://theforest.nostr1.com,wss://nostr21.com,wss://nostr.land,wss://nostr.wine,wss://nostr.sovbit.host` | Empty/invalid falls back to defaults |
+| `VITE_DEFAULT_RELAYS` | Comma-separated URLs | `wss://theforest.nostr1.com,wss://nostr21.com,wss://nostr.land,wss://nostr.sovbit.host,wss://orly-relay.imwald.eu` | Empty/invalid falls back to defaults |
| `VITE_ZAP_THRESHOLD` | Integer | `1` | Must be 0 or positive, invalid defaults to 1 |
| `VITE_THREAD_TIMEOUT_DAYS` | Integer | `30` | - |
| `VITE_PWA_ENABLED` | Boolean | `true` | - |
diff --git a/public/healthz.json b/public/healthz.json
index ee82a9c..2b71ff3 100644
--- a/public/healthz.json
+++ b/public/healthz.json
@@ -2,7 +2,7 @@
"status": "ok",
"service": "aitherboard",
"version": "0.1.0",
- "buildTime": "2026-02-04T09:46:20.554Z",
+ "buildTime": "2026-02-04T11:12:13.164Z",
"gitCommit": "unknown",
- "timestamp": 1770198380554
+ "timestamp": 1770203533165
}
\ No newline at end of file
diff --git a/src/lib/components/content/EmbeddedEvent.svelte b/src/lib/components/content/EmbeddedEvent.svelte
index 0bd8653..6587b84 100644
--- a/src/lib/components/content/EmbeddedEvent.svelte
+++ b/src/lib/components/content/EmbeddedEvent.svelte
@@ -6,6 +6,7 @@
import type { NostrEvent } from '../../types/nostr.js';
import { stripMarkdown } from '../../services/text-utils.js';
import ProfileBadge from '../layout/ProfileBadge.svelte';
+ import { KIND } from '../../types/kind-lookup.js';
interface Props {
eventId: string; // Can be hex, note, nevent, naddr
diff --git a/src/lib/components/content/QuotedContext.svelte b/src/lib/components/content/QuotedContext.svelte
index 970f31a..b4afa22 100644
--- a/src/lib/components/content/QuotedContext.svelte
+++ b/src/lib/components/content/QuotedContext.svelte
@@ -3,6 +3,7 @@
import { nostrClient } from '../../services/nostr/nostr-client.js';
import { relayManager } from '../../services/nostr/relay-manager.js';
import { stripMarkdown } from '../../services/text-utils.js';
+ import { KIND } from '../../types/kind-lookup.js';
interface Props {
quotedEvent?: NostrEvent; // Optional - if not provided, will load by quotedEventId
diff --git a/src/lib/components/content/ReplyContext.svelte b/src/lib/components/content/ReplyContext.svelte
index 8240fce..57a20f8 100644
--- a/src/lib/components/content/ReplyContext.svelte
+++ b/src/lib/components/content/ReplyContext.svelte
@@ -3,6 +3,7 @@
import { nostrClient } from '../../services/nostr/nostr-client.js';
import { relayManager } from '../../services/nostr/relay-manager.js';
import { stripMarkdown } from '../../services/text-utils.js';
+ import { KIND } from '../../types/kind-lookup.js';
interface Props {
parentEvent?: NostrEvent; // Optional - if not provided, will load by parentEventId
diff --git a/src/lib/components/relay/RelayInfo.svelte b/src/lib/components/relay/RelayInfo.svelte
index 00fca93..cd60a3b 100644
--- a/src/lib/components/relay/RelayInfo.svelte
+++ b/src/lib/components/relay/RelayInfo.svelte
@@ -2,6 +2,11 @@
import { nostrClient } from '../../services/nostr/nostr-client.js';
import { Relay } from 'nostr-tools';
import { onMount } from 'svelte';
+ import ProfileBadge from '../layout/ProfileBadge.svelte';
+ import { KIND } from '../../types/kind-lookup.js';
+ import { relayManager } from '../../services/nostr/relay-manager.js';
+ import type { NostrEvent } from '../../types/nostr.js';
+ import { fetchProfiles } from '../../services/user-data.js';
interface Props {
relayUrl: string;
@@ -17,6 +22,7 @@
supported_nips?: number[];
software?: string;
version?: string;
+ icon?: string;
limitation?: {
max_message_length?: number;
max_subscriptions?: number;
@@ -38,53 +44,122 @@
let error = $state(null);
let connectionStatus = $state<'connecting' | 'connected' | 'disconnected'>('connecting');
let eventCount = $state(null);
+ let relayIcon = $state(null);
+ let favoritedBy = $state([]); // Array of pubkeys who favorited this relay
+ let favoritedByProfiles = $state