@ Plain Text Nostr
+------------------------------------------------------------------------------+

Nostr Feed

Showing notes from your follow list.

+------------------------------------------------------------------------------+
+- 82341f882b6e -- 23d -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| same                                                                                                                 |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 23d -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| yes, odd                                                                                                             |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 23d -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| bitchat pulled from china app store                                                                                  |
| https://blossom.primal.net/6d1f5304a85f6ccd6af01a7db43da50688636822df7a38af31ef5f66457c6b77.png                      |
|                                                                                                                      |
+-- reply ------------------------------------------------------------------------------------------------ [1 reply] ---+
+- 82341f882b6e -- 3mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| bitchat now has:                                                                                                     |
| - photos/audio notes in bluetooth mesh                                                                               |
| - better routing algorithm for stabler and longer range meshes                                                       |
| - uses @torproject's arti framework for speed and reliability                                                        |
| - audited by 3rd party security group and addressed all findings                                                     |
|                                                                                                                      |
| bitchat.free                                                                                                         |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 3mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| gm                                                                                                                   |
| note:00b0c20b…8475                                                                                                   |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------- [50 replies] ---+
+- 82341f882b6e -- 5mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| nostr wins if it stops trying to be a twitter clone and starts being the invisible layer underneath apps you         |
| actually want to use. like bitchat for location-based messaging, diVine for entertainment, whitenoise for private    |
| messaging, zap.stream for streaming, shakespeare for vibe coding, etc.                                               |
|                                                                                                                      |
| it wins by unbundling into 50 different apps that all talk to each other, rather than one giant app/corp that traps  |
| you. it's all about the ecosystem.                                                                                   |
|                                                                                                                      |
+-- reply -------------------------------------------------------------------------------------------- [214 replies] ---+
+- 82341f882b6e -- 5mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| yes                                                                                                                  |
| note:ba9a8a6f…f6bf                                                                                                   |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------- [27 replies] ---+
+- 82341f882b6e -- 9mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| live on test flight now. next stop: app store.                                                                       |
|                                                                                                                      |
| note:a732fc1d…b55f                                                                                                   |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------- [33 replies] ---+
+- 82341f882b6e -- 9mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| submit a PR                                                                                                          |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 9mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| bitchat 1.2.0 (purple) shipping to testflight tonight.                                                               |
|                                                                                                                      |
| this enables mutual favorites to automatically switch to a nostr-based transport when one of them leaves the mesh.   |
| only for private messages for now using NIP-17.                                                                      |
|                                                                                                                      |
| basically people can bitchat in person, favorite each other at that time, and then can continue the conversation if  |
| internet is available through nostr, from any distance. no need to input a npub or know anything about nostr. it     |
| just works.                                                                                                          |
|                                                                                                                      |
| https://github.com/permissionlesstech/bitchat/pull/358                                                               |
| https://blossom.primal.net/dc9f60a514289adc00d9dcb14e64be382317ee50f1749ea2a9cc73758da7af6a.jpg                      |
|                                                                                                                      |
+-- reply -------------------------------------------------------------------------------------------- [155 replies] ---+
+- 82341f882b6e -- 9mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| not the point.                                                                                                       |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 9mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| no                                                                                                                   |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 9mo -------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| where's my bitchat?                                                                                                  |
|                                                                                                                      |
| app store: https://apps.apple.com/us/app/bitchat-mesh/id6748219622                                                   |
|                                                                                                                      |
+-- reply ------------------------------------------------------------------------------------------------ [1 reply] ---+
+- 82341f882b6e -- 11mo ------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| sats is definitely the wrong term and is stopping everyday people from holding and spending bitcoin.                 |
|                                                                                                                      |
| i agree with steve’s points in this video.                                                                           |
|                                                                                                                      |
| https://youtu.be/F6X03efgJww                                                                                         |
|                                                                                                                      |
+-- reply -------------------------------------------------------------------------------------------- [141 replies] ---+
+- 82341f882b6e -- 11mo ------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| nope                                                                                                                 |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 11mo ------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| now at https://nostream.pub                                                                                          |
|                                                                                                                      |
| note:d37b030b…80d4                                                                                                   |
|                                                                                                                      |
+-- reply ---------------------------------------------------------------------------------------------- [2 replies] ---+
+- 82341f882b6e -- 11mo ------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| ¯\_(ツ)_/¯                                                                                                           |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 11mo ------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| source:                                                                                                              |
|                                                                                                                      |
| <!DOCTYPE html>                                                                                                      |
| <html lang="en">                                                                                                     |
| <head>                                                                                                               |
| <meta charset="UTF-8">                                                                                               |
| <meta name="viewport" content="width=device-width, initial-scale=1.0">                                               |
| <title>Nostr Media Feed</title>                                                                                      |
| <style>                                                                                                              |
| :root {                                                                                                              |
| --bg-color: #ffffff;                                                                                                 |
| --text-color: #333333;                                                                                               |
| }                                                                                                                    |
|                                                                                                                      |
| [data-theme="dark"] {                                                                                                |
| --bg-color: #1a1a1a;                                                                                                 |
| --text-color: #ffffff;                                                                                               |
| }                                                                                                                    |
|                                                                                                                      |
| body {                                                                                                               |
| font-family: -apple-system, system-ui, sans-serif;                                                                   |
| margin: 0;                                                                                                           |
| padding: 0;                                                                                                          |
| background: var(--bg-color);                                                                                         |
| color: var(--text-color);                                                                                            |
| }                                                                                                                    |
|                                                                                                                      |
| #header {                                                                                                            |
| position: fixed;                                                                                                     |
| top: 0;                                                                                                              |
| left: 0;                                                                                                             |
| right: 0;                                                                                                            |
| padding: 15px 20px;                                                                                                  |
| background: var(--bg-color);                                                                                         |
| display: flex;                                                                                                       |
| justify-content: space-between;                                                                                      |
| align-items: center;                                                                                                 |
| z-index: 1000;                                                                                                       |
| font-size: 14px;                                                                                                     |
| }                                                                                                                    |
|                                                                                                                      |
| #feed {                                                                                                              |
| margin-top: 52px;                                                                                                    |
| }                                                                                                                    |
|                                                                                                                      |
| .note {                                                                                                              |
| margin-bottom: 0;                                                                                                    |
| }                                                                                                                    |
|                                                                                                                      |
| .media-container {                                                                                                   |
| background: #000;                                                                                                    |
| line-height: 0;                                                                                                      |
| width: 100%;                                                                                                         |
| }                                                                                                                    |
|                                                                                                                      |
| .media-container a {                                                                                                 |
| display: block;                                                                                                      |
| line-height: 0;                                                                                                      |
| }                                                                                                                    |
|                                                                                                                      |
| .media-container img,                                                                                                |
| .media-container video {                                                                                             |
| width: 100%;                                                                                                         |
| height: auto;                                                                                                        |
| object-fit: contain;                                                                                                 |
| opacity: 0;                                                                                                          |
| transition: opacity 0.5s ease-in;                                                                                    |
| }                                                                                                                    |
|                                                                                                                      |
| .media-container img.loaded,                                                                                         |
| .media-container video.loaded {                                                                                      |
| opacity: 1;                                                                                                          |
| }                                                                                                                    |
|                                                                                                                      |
| #status {                                                                                                            |
| display: flex;                                                                                                       |
| align-items: center;                                                                                                 |
| gap: 6px;                                                                                                            |
| opacity: 0.7;                                                                                                        |
| }                                                                                                                    |
|                                                                                                                      |
| .status-dot {                                                                                                        |
| width: 6px;                                                                                                          |
| height: 6px;                                                                                                         |
| border-radius: 50%;                                                                                                  |
| }                                                                                                                    |
|                                                                                                                      |
| .status-live .status-dot {                                                                                           |
| background: #4CAF50;                                                                                                 |
| }                                                                                                                    |
|                                                                                                                      |
| .status-paused .status-dot {                                                                                         |
| background: #ff9800;                                                                                                 |
| }                                                                                                                    |
|                                                                                                                      |
| @media (min-width: 800px) {                                                                                          |
| .media-container img,                                                                                                |
| .media-container video {                                                                                             |
| max-height: 100vh;                                                                                                   |
| }                                                                                                                    |
| }                                                                                                                    |
|                                                                                                                      |
| @media (max-width: 799px) {                                                                                          |
| .media-container img,                                                                                                |
| .media-container video {                                                                                             |
| max-height: none;                                                                                                    |
| }                                                                                                                    |
| }                                                                                                                    |
| </style>                                                                                                             |
| </head>                                                                                                              |
| <body>                                                                                                               |
| <div id="header">                                                                                                    |
| <div id="status" class="status-live">                                                                                |
| <div class="status-dot"></div>                                                                                       |
| <span>Live</span>                                                                                                    |
| </div>                                                                                                               |
| </div>                                                                                                               |
| <div id="feed"></div>                                                                                                |
|                                                                                                                      |
| <script>                                                                                                             |
| // Auto dark mode                                                                                                    |
| if (window.matchMedia('(prefers-color-scheme: dark)').matches) {                                                     |
| document.body.setAttribute('data-theme', 'dark');                                                                    |
| }                                                                                                                    |
| window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', e => {                                  |
| document.body.setAttribute('data-theme', e.matches ? 'dark' : 'light');                                              |
| });                                                                                                                  |
|                                                                                                                      |
| // Initialize                                                                                                        |
| const feed = document.getElementById('feed');                                                                        |
| const status = document.getElementById('status');                                                                    |
| const seenNotes = new Set();                                                                                         |
| const seenMedia = new Set();                                                                                         |
| let isPaused = false;                                                                                                |
|                                                                                                                      |
| // Relays                                                                                                            |
| const RELAYS = [                                                                                                     |
| 'wss://relay.damus.io',                                                                                              |
| 'wss://relay.nostr.band',                                                                                            |
| 'wss://nos.lol',                                                                                                     |
| 'wss://relay.nostr.info'                                                                                             |
| ];                                                                                                                   |
|                                                                                                                      |
| const relayPool = new Map();                                                                                         |
|                                                                                                                      |
| // Function to update status display                                                                                 |
| function updateStatus(paused) {                                                                                      |
| status.className = paused ? 'status-paused' : 'status-live';                                                         |
| status.querySelector('span').textContent = paused ? 'Paused' : 'Live';                                               |
| }                                                                                                                    |
|                                                                                                                      |
| // Pause/Resume based on scroll position                                                                             |
| let lastScrollTop = 0;                                                                                               |
| window.addEventListener('scroll', () => {                                                                            |
| const st = window.pageYOffset || document.documentElement.scrollTop;                                                 |
| if (st > lastScrollTop && st > 100) {                                                                                |
| // Scrolling down                                                                                                    |
| if (!isPaused) {                                                                                                     |
| isPaused = true;                                                                                                     |
| updateStatus(true);                                                                                                  |
| }                                                                                                                    |
| } else if (st === 0) {                                                                                               |
| // At top                                                                                                            |
| if (isPaused) {                                                                                                      |
| isPaused = false;                                                                                                    |
| updateStatus(false);                                                                                                 |
| }                                                                                                                    |
| }                                                                                                                    |
| lastScrollTop = st;                                                                                                  |
| });                                                                                                                  |
|                                                                                                                      |
| // Connect to relays                                                                                                 |
| function connect() {                                                                                                 |
| let connectedRelays = 0;                                                                                             |
|                                                                                                                      |
| RELAYS.forEach(relayUrl => {                                                                                         |
| const socket = new WebSocket(relayUrl);                                                                              |
| relayPool.set(relayUrl, socket);                                                                                     |
|                                                                                                                      |
| socket.onopen = () => {                                                                                              |
| connectedRelays++;                                                                                                   |
| if (connectedRelays === 1) {                                                                                         |
| updateStatus(false);                                                                                                 |
| }                                                                                                                    |
|                                                                                                                      |
| // Subscribe to notes with media                                                                                     |
| const recentSub = JSON.stringify([                                                                                   |
| "REQ",                                                                                                               |
| "recent_" + relayUrl,                                                                                                |
| {                                                                                                                    |
| "kinds": [1],                                                                                                        |
| "limit": 500                                                                                                         |
| }                                                                                                                    |
| ]);                                                                                                                  |
| socket.send(recentSub);                                                                                              |
| };                                                                                                                   |
|                                                                                                                      |
| socket.onclose = () => {                                                                                             |
| relayPool.delete(relayUrl);                                                                                          |
| connectedRelays--;                                                                                                   |
| if (connectedRelays === 0) {                                                                                         |
| setTimeout(() => connect(), 2000);                                                                                   |
| }                                                                                                                    |
| };                                                                                                                   |
|                                                                                                                      |
| socket.onerror = (error) => {                                                                                        |
| console.error('WebSocket error:', error);                                                                            |
| };                                                                                                                   |
|                                                                                                                      |
| // Handle incoming messages                                                                                          |
| socket.onmessage = async (event) => {                                                                                |
| if (isPaused) return;                                                                                                |
|                                                                                                                      |
| const data = JSON.parse(event.data);                                                                                 |
| if (data[0] !== 'EVENT') return;                                                                                     |
|                                                                                                                      |
| const msg = data[2];                                                                                                 |
|                                                                                                                      |
| // Handle notes                                                                                                      |
| if (msg.kind !== 1) return;                                                                                          |
| if (seenNotes.has(msg.id)) return;                                                                                   |
| seenNotes.add(msg.id);                                                                                               |
|                                                                                                                      |
| // Look for media URLs                                                                                               |
| const mediaUrls = [];                                                                                                |
| const urlRegex = /(https?:\/\/[^\s<]+\.(jpg|jpeg|png|gif|mp4|webm))/gi;                                              |
| let match;                                                                                                           |
| while ((match = urlRegex.exec(msg.content)) !== null) {                                                              |
| mediaUrls.push(match[0]);                                                                                            |
| }                                                                                                                    |
| if (mediaUrls.length === 0) return;                                                                                  |
|                                                                                                                      |
| // Check for duplicate media                                                                                         |
| const mediaKey = mediaUrls.sort().join(',');                                                                         |
| if (seenMedia.has(mediaKey)) return;                                                                                 |
| seenMedia.add(mediaKey);                                                                                             |
|                                                                                                                      |
| try {                                                                                                                |
| // Create note element                                                                                               |
| const noteEl = document.createElement('div');                                                                        |
| noteEl.className = 'note';                                                                                           |
|                                                                                                                      |
| // Add media                                                                                                         |
| const mediaContainer = document.createElement('div');                                                                |
| mediaContainer.className = 'media-container';                                                                        |
|                                                                                                                      |
| // Make media container clickable                                                                                    |
| const mediaLink = document.createElement('a');                                                                       |
| mediaLink.href = `https://njump.me/${msg.id}`;                                                                       |
| mediaLink.target = '_blank';                                                                                         |
| mediaLink.style.cursor = 'pointer';                                                                                  |
| mediaContainer.appendChild(mediaLink);                                                                               |
|                                                                                                                      |
| for (const url of mediaUrls) {                                                                                       |
| if (url.match(/\.(jpg|jpeg|png|gif)$/i)) {                                                                           |
| try {                                                                                                                |
| // Create and preload image                                                                                          |
| const img = document.createElement('img');                                                                           |
| img.style.opacity = '0';                                                                                             |
| img.src = url;                                                                                                       |
| img.loading = 'lazy';                                                                                                |
|                                                                                                                      |
| // Wait for image to load                                                                                            |
| await new Promise((resolve, reject) => {                                                                             |
| img.onload = resolve;                                                                                                |
| img.onerror = reject;                                                                                                |
| });                                                                                                                  |
|                                                                                                                      |
| // Add to container and fade in                                                                                      |
| mediaLink.appendChild(img);                                                                                          |
| requestAnimationFrame(() => {                                                                                        |
| img.style.opacity = '1';                                                                                             |
| });                                                                                                                  |
| } catch (e) {                                                                                                        |
| console.error('Failed to load image:', url);                                                                         |
| }                                                                                                                    |
| } else {                                                                                                             |
| const video = document.createElement('video');                                                                       |
| video.src = url;                                                                                                     |
| video.controls = true;                                                                                               |
| video.autoplay = true;                                                                                               |
| video.muted = true;                                                                                                  |
| video.loop = true;                                                                                                   |
| video.playsInline = true;                                                                                            |
| video.style.opacity = '0';                                                                                           |
|                                                                                                                      |
| // Fade in once video starts playing                                                                                 |
| video.addEventListener('playing', () => {                                                                            |
| requestAnimationFrame(() => {                                                                                        |
| video.style.opacity = '1';                                                                                           |
| });                                                                                                                  |
| }, { once: true });                                                                                                  |
|                                                                                                                      |
| video.onerror = () => {                                                                                              |
| video.remove();                                                                                                      |
| };                                                                                                                   |
| mediaLink.appendChild(video);                                                                                        |
| // Try to start playing                                                                                              |
| video.play().catch(e => console.log('Auto-play prevented:', e));                                                     |
| }                                                                                                                    |
| }                                                                                                                    |
|                                                                                                                      |
| noteEl.appendChild(mediaContainer);                                                                                  |
| feed.insertBefore(noteEl, feed.firstChild);                                                                          |
| } catch (e) {                                                                                                        |
| console.error('Error creating note element:', e);                                                                    |
| }                                                                                                                    |
| };                                                                                                                   |
| });                                                                                                                  |
| }                                                                                                                    |
|                                                                                                                      |
| // Initial connection                                                                                                |
| connect();                                                                                                           |
| </script>                                                                                                            |
| </body>                                                                                                              |
| </html>                                                                                                              |
|                                                                                                                      |
+-- reply ---------------------------------------------------------------------------------------------- [4 replies] ---+
+- 82341f882b6e -- 11mo ------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| just scroll and it pauses                                                                                            |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 11mo ------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| vibe coded this. nostr firehose stream, media only, scroll to pause, tap media to get to profile                     |
|                                                                                                                      |
| https://nostrstream.replit.app                                                                                       |
|                                                                                                                      |
| nice in full screen.                                                                                                 |
|                                                                                                                      |
| (you may see things you don't want to see)                                                                           |
|                                                                                                                      |
+-- reply ------------------------------------------------------------------------------------------------ [1 reply] ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| https://m.primal.net/QapS.jpg                                                                                        |
|                                                                                                                      |
+-- reply ------------------------------------------------------------------------------------------------ [1 reply] ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| entirely                                                                                                             |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| {"id":"f141fe20ddc2f4c31124e5fffc761baf0d683cb8dcf919f7f249b989803ecb95","sig":"e6c25fbe95461c063e60371542ebe864c3ba |
| 56b8215a0432a34f73265af93b3ed884ef275ea2e9f333c5f1d81083bc052c2aa29e4c7bb6094c9e98af76d8fe78","kind":1,"tags":[],"pu |
| bkey":"25a2192dcf34c3be326988b5c9f942aa96789899d15b59412602854a8723e9e8","content":"We're building Bitkey to         |
| eliminate the trade-offs in self-custody. And not just to bring new people into self-custody, but to make an         |
| incredible wallet for bitcoiners, too. \n\nAnd we're sharing what's next on our roadmap. We want to know what you're |
| excited about and what you want to see next, so take a look                                                          |
| here:\n\nhttps://bitkey.build/building-better-bitcoin-self-custody/","created_at":1745334479}                        |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| transaction verification, fingerprint reset, private wallet balances, private purchasing, and buy with bitcoin. a    |
| lot coming to @5db24d2f09b3 starting in may: https://bitkey.build/building-better-bitcoin-self-custody/              |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| {"id":"f141fe20ddc2f4c31124e5fffc761baf0d683cb8dcf919f7f249b989803ecb95","sig":"e6c25fbe95461c063e60371542ebe864c3ba |
| 56b8215a0432a34f73265af93b3ed884ef275ea2e9f333c5f1d81083bc052c2aa29e4c7bb6094c9e98af76d8fe78","kind":1,"tags":[],"pu |
| bkey":"25a2192dcf34c3be326988b5c9f942aa96789899d15b59412602854a8723e9e8","content":"We're building Bitkey to         |
| eliminate the trade-offs in self-custody. And not just to bring new people into self-custody, but to make an         |
| incredible wallet for bitcoiners, too. \n\nAnd we're sharing what's next on our roadmap. We want to know what you're |
| excited about and what you want to see next, so take a look                                                          |
| here:\n\nhttps://bitkey.build/building-better-bitcoin-self-custody/","created_at":1745334479}                        |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| interesting https://x.com/TheIshanGoswami/status/1914226695118168331                                                 |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| you can just understand things you don't read                                                                        |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| yes it did                                                                                                           |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| and...you can just say things you don't understand                                                                   |
|                                                                                                                      |
| note:707423ee…9015                                                                                                   |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+
+- 82341f882b6e -- 1y --------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| {"id":"12ee599b76cea348ffe89c49023fef9f70faa9ad08f03bfa789d580449dd2659","sig":"88780bb717ce6d359675b3899c8ac29a5748 |
| a6a1af97b815cc107e2e04c887f2864b88c94d7ddb0178c3708a19cae6f677b54b0e9d68c1e08a675e7f944de654","kind":1,"tags":[["e", |
| "40834df558fe887537358c96ada5f6c2a5a229bc609c55f6bc05ada17e857899","","root"],["e","c1e55b2b7e1400a0c19b38a81404b65b |
| a4d406e3848cdde8ac07275fa8d58efb","","mention"],["p","82341f882b6eabcd2ba7f1ef90aad961cf074af15b9ef44a09f9d2a8fbfbe6 |
| a2"],["p","deab79dafa1c2be4b4a6d3aca1357b6caa0b744bf46ad529a5ae464288579e68","","mention"],["q","c1e55b2b7e1400a0c19 |
| b38a81404b65ba4d406e3848cdde8ac07275fa8d58efb"]],"pubkey":"deab79dafa1c2be4b4a6d3aca1357b6caa0b744bf46ad529a5ae46428 |
| 8579e68","content":"If you don't have Apple TV, here you go.\nnote:c1e55b2b…8efb","created_at":1745238027}           |
|                                                                                                                      |
+-- reply --------------------------------------------------------------------------------------------------------- ---+

Write a post

Sign in with a signing-capable method to publish.