White Noise

Zero-JS Hypermedia Browser

avatar
White Noise
npub1whtn...r3ec
The chat with no phone number. Powered by Bitcoin and Nostr. github.com/parres-hq/whitenoise_flutter

Notes (20)

📱 White Noise & Marmot Protocol 📄 Monthly Recap - November 2025 November was a month of shipping, learning, and connecting with the global freedom tech community. - Conference stages in Costa Rica - Podcast conversations about - decentralized identity - We kept pushing forward on our mission to build communication infrastructure owned by no one. 🚀 What we shipped This month we released two versions of White Noise, continuing our rapid iteration cycle: - White Noise v0.2.0 - Our first major update since launch, featuring notification improvements and picture sharing capabilities - White Noise v0.2.1 - A follow-up release addressing battery optimization and notification refinements - Picture sharing- Users can now share images in their encrypted chats - Notification fine-tuning - Better control over how and when you receive message alerts 📕 What we learned Version 0.2.0 shipped with a bug: background notification polling was set to 1-second intervals, which caused excessive battery drain on mobile devices. This was a valuable lesson in the tradeoffs between real-time responsiveness and power efficiency. We quickly addressed this in v0.2.1 by implementing smarter polling intervals that respect your battery while still delivering timely notifications. 💪 What we're working on The team is heads-down on several improvements: - Smart notifications - Click any notification to jump directly to that specific chat - Image zoom - Pinch-to-zoom on shared pictures for a better viewing experience - Major UI redesign - A comprehensive visual refresh is in progress - Key rotation NIP - Continued work on the Nostr Implementation Possibility for secure key rotation 🫶 Community & Ecosystem Shoutout to Danny for creating language bindings for the Marmot Development Kit (MDK) across Swift, Kotlin, and WASM. This cross-platform foundation makes it easier for developers to integrate Marmot's privacy primitives into their applications, regardless of the platform they're building for. We're also excited that Tubestr has integrated Marmot for private video sharing. This is exactly the kind of ecosystem growth we envisioned - other Nostr projects adopting Marmot's protocol to add privacy features to their platforms. 🚙 On the Road November took the team to Costa Rica for the Nostrxxx Conference, where we hosted a White Noise House - a dedicated space for privacy-focused builders to connect, collaborate, and demo their work. We shipped a release at the event and spent focused time advancing the key rotation NIP with fellow Nostr developers. 🎙️ Podcast Appearances - nostr:nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqpzamhxue69uhhyetvv9ujuct60fsk6mewdejhgtcppemhxue69uhkummn9ekx7mp0gf8npz on Bitcoin Takeover Podcast - A deep 4-hour conversation covering White Noise, Marmot, Bitcoin layer 2s, and the philosophy of building freedom tech - nostr:nprofile1qqspwwwexlwgcrrnwz4zwkze8rq3ncjug8mvgsd96dxx6wzs8ccndmcpzamhxue69uhkummnw3ezu6rpwd5xyctwvuhxumqpzpmhxue69uhkummnw3ezuamfdejstcdkcv on You're The Voice (Ep. 107) - Discussing decentralized digital identity and encrypted messaging with nostr:nprofile1qqsx5dvc2g3cmjgz4mgelwlk5p2ln2ljrsw23y2ar38z0agd7tefpkgpz4mhxue69uhk2er9dchxummnw3ezumrpdejqzyrhwden5te0dehhxarj9emkjmn9v4lz04 📆 What's Next December is shaping up to be just as eventful: - Africa Bitcoin Conference (December 3-5) - We're heading to Mauritius for Africa's premier Bitcoin gathering. The conference brings together innovators, builders, and changemakers shaping the future of technology and financial sovereignty across the continent. - White Noise House Mauritius - Another gathering space for privacy builders and freedom tech enthusiasts 💡 As always, White Noise and Marmot Protocol remain open-source, community-driven, and focused on building communication infrastructure that belongs to everyone and no one. Thank you for being part of this journey. Try White Noise: [(whitenoise.chat) image
2025-12-03 12:35:39 from 1 relay(s) View Thread →
Moving to a different server, this is the actual link meet.fulmo.org/marmot nostr:nevent1qqspykttzxvtg2w4wdeyd546y8t6enf79rgq5e5y8p8dgjgr7493wsgppemhxue69uhkummn9ekx7mp0qgs8t4ehcdrjgugzn3zgw6enp53gg2y2gfmekkg69m2d4gwxcpl04acrqsqqqqqp8knw5g
2025-12-02 16:06:50 from 1 relay(s) View Thread →
Join us for the monthly Marmot community call! **When:** December 2nd, 1600 UTC **Where:** meet.angor.io/marmot This month's agenda: - Latest progress on White Noise development - MIP5: Anonymous notifications - Tubestr integrates Marmot for private video sharing - Demo time: Come show off what you've been building! Whether you're actively developing on Marmot or just curious about privacy-first communication, we'd love to see you there. Bring your questions, your projects, and your ideas. See you soon 🦫
2025-12-02 12:34:00 from 1 relay(s) View Thread →
When you see these two... you know privacy is under construction. 😎 nostr:nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqppemhxue69uhkummn9ekx7mp0qys8wumn8ghj7mn0wd68ytn9d9h82mny0fmkzmn6d9njuumsv93k2tct43vxq nostr:npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc image
2025-11-24 17:46:20 from 1 relay(s) View Thread →
White Noise v0.2.1 is out! Notifications behave better, images are smoother, and the app gets out of your way a bit more. SO. What’s new? ✨New Features Notifications & navigation - Deep linking for notifications: tapping a notification now takes you directly to the correct chat or invite screen - Automatic notification clearing: notifications for messages and invites disappear when you open the related chat - Unread counts: added unread message counts for both DMs and groups. - Notification translations: added proper localization support in notifications. 🖼 Images & Media - Automatic image downloads: images in messages now download automatically. - Image zoom: added zoom functionality for images in messages. - Media icons in previews: message previews in the chat list now show a media icon when images are present. 👣 User Experience - Identicons: replaced single-letter avatars with unique identicons for better visual identification. - Unsaved changes dialog: added protection against accidental back navigation on the edit profile screen. 🐛 Bug Fixes Chat Experience - Scroll behavior improvements: chat now jumps instantly to the bottom when opened, does not auto-scroll for incoming messages, and only scrolls when you send a message. - Fixed disappearing messages: messages no longer temporarily disappear after being sent - Better hit-box: the chat bubble hit-box now spans the entire width for easier interaction - Scrollable group details: chat details during the creation flow are now properly scrollable 🔔 Notifications - Missing notifications fix: fixed an issue where multiple messages arriving in the same polling window could miss notifications. - Inactive account navigation: fixed notification navigation for inactive accounts. 💅 UI Polish - Developer settings: fixed content going under the three-button bottom navigation on GrapheneOS and some Android devices. - Keypackage buttons: fixed the loading state displaying incorrectly on keypackage operation buttons. - Chat screen padding: reduced unnecessary bottom padding in the chat screen. - Avatar colors: refactored avatar color handling for consistency. 💪 Performance Improvements - Optimized group metadata: improved group metadata loading and caching. Non-blocking user fetch: switched several areas to use non-blocking user fetch for better responsiveness. - Smarter data loading: added digests and improvements to avoid reloading everything on every update. - Notification efficiency: avoided fetching all groups unnecessarily for notification details. - Background sync optimization: increased the foreground task repeat interval from 1 second to 60 seconds for better battery life. 🛠 Technical Improvements - Better error messages: improved error messaging throughout the app. - Updated Rust crate: updated the underlying Rust crate with various improvements. - Added get_group method : new bridge method for better group data access. This release sharpens notifications, makes images easier to work with, and cleans up a bunch of UI/UX issues reported by the community. The performance work under the hood should make White Noise feel smoother and more responsive in everyday use. Thank you for the support 🖤 image
2025-11-23 21:47:59 from 1 relay(s) View Thread →
White Noise team building week in Costa Rica. Cause building censorship-resistant tools under palm trees hits different. 🖤 image
2025-11-20 14:16:16 from 1 relay(s) View Thread →
The right chat doesn’t ask. It encrypts. image
2025-11-17 18:49:29 from 1 relay(s) View Thread →
An Encrypted Picture is Worth A Thousand Notes 🖼️ We're excited to announce the release of White Noise v0.2.0! 

This update brings a host of new features, improvements, and bug fixes to enhance your experience. 

Here's a comprehensive summary of the changes since the latest tagged release **v0.1.4** (released on September 22, 2025): 🚀 Major New Features 🖼️ Media Support & File Sharing
 - Complete media upload system: Added ability to upload and send images through chat messages.
 - Blossom server integration: Implemented optimistic media uploads to Blossom servers for decentralized file storage.
 - Media preview & thumbnails: Added image previews, thumbnails, and media galleries within chat messages.
 - Media reply functionality: Users can now reply to messages containing media with preview support.
 - Image modal viewer: Full-screen image viewing with scroll support.
 - Media file management: Complete media file upload model with upload states (uploading, uploaded, failed). 🔔 Background Sync & Notifications
 - Background sync service: Added WorkManager-based background synchronization for messages and invites.
 - Foreground task service: Implemented foreground service for real-time message syncing (currently 1-second polling).
 - Push notifications: Added notification system for new messages and group invites when the app is in the background.
 - Notification permissions: Added proper notification permission requests on the contact list screen.
 - Android notification icons: Added proper notification icons for different screen densities. 🌎 Internationalization (i18n)
 - Multi-language support: Added comprehensive localization system supporting 8 languages: - English (en) - German (de) - Spanish (es) - French (fr) - Italian (it) - Portuguese (pt) - Russian (ru) - Turkish (tr) - Language selection: Added language picker in settings with system default option. 👥 Group Management Enhancements
 - Add members to existing groups: Users can now add new members to existing group chats.
 - Group image management: Added ability to upload and update group profile images from group settings.
 - Group avatars in messages: Added user avatars display in group chat messages for better identification. 🔧 Improvements & Fixes 📱 UI/UX Enhancements
 - Chat input improvements: Enhanced message draft logic and chat input functionality.
 - Message positioning fixes: Fixed message bubble jumping and positioning issues in reaction context menus.
 - Haptic feedback: Improved haptic feedback for chat context menus.
 - Keyboard handling: Fixed keyboard covering text fields and improved keyboard-aware scrolling.
 - Header pinning: Pinned navigation headers in auth flow screens when the keyboard is open.
 - Bottom sheet improvements: Fixed start chat button cut-off and other bottom sheet UI issues.
 - Status bar visibility: Fixed status bar icons invisibility on auth screens (iOS and Android). 💪 Performance & Stability
 - Chat loading optimizations: Improved chat loading performance and reduced delays.
 - Group image path optimization: Optimized group image path loading and DM header rendering.
 - Message sync improvements: Enhanced message synchronization and reduced duplicate processing.
 - Draft message system: Improved message draft saving and restoration logic. 🐛 Bug Fixes
 - Group updates: Fixed group name and description updates not reflecting in real-time for other group members.
 - DM creation: Fixed 2-user group creation when DM already exists.
 - Profile image upload: Fixed broken profile image upload functionality.
 - Double rendering: Fixed double rendering issue for some messages.
 - Notification polling: Optimized notification polling intervals for better battery life. 🕸️ Code Quality & Architecture
 - Metadata cache removal: Removed metadata cache provider for simplified architecture.
 - Contact → User Profile: Renamed "contact" terminology to "user profile" throughout the app.
 - Rust crate updates: Updated whitenoise and mdk crates with latest improvements.
 - Edition 2024: Updated Rust code to use Rust Edition 2024.
 - Test improvements: Enhanced test coverage for draft message service and other components. 🛠️ Development & Build System
 - Android build improvements: Added justfile commands for building test APKs for android-arm64.
 - Kotlin plugin update: Updated Kotlin Android plugin from 1.8.22 to 2.2.20.
 - Zapstore configuration: Updated zapstore publishing configuration. 📊 Statistics
 - 60+ commits since v0.1.4. - Major contributors: @codeswot, @josefinalliende, @untreu2, @Quwaysim, @jgmontoya, @erskingardner, @vladimir-krstic
 - Timeframe: September 22, 2025 to November 5, 2025 
(approximately 6 weeks of development). image
2025-11-10 10:15:17 from 1 relay(s) View Thread →
Hey there 👋 The last two months? Busy. Productive. A little intense (in the best way). We shipped major updates, refactored deep under the hood, and launched a protocol that’s been in the works for a while. Plus, we got a wave of real-world feedback. some of it stung, all of it helped. Exactly what we needed. Let’s break it down. 📦 Two big releases: built on real feedback - v0.1.4 (The Punch-In-The-Face Update) We dropped 0.1.4 at the end of September: a release that marked a turning point. After 0.1.3 hit the wild, users gave us real, raw feedback. And we listened. Hard. At the heart of this release was a major overhaul of the core Rust crate. We refactored big chunks of the backend to align with a new API, which yes, meant rewriting a lot of stuff. But the result? Smoother, faster, and a lot more solid. v0.1.4 Highlights: 🔧 Stability upgrades: reworked relay connections, event processing, and group logic. 🚀 Performance boosts: reduced lag, faster responses. ✨ UX polish: drafts now save securely. Chats scroll like they’re supposed to. “Start New Chat” got a facelift. 🧼 Visual tweaks: cleaner UI, skeleton loaders, bottom sheets with silky animations. 📱 Better support: Android v7a builds for older devices. Versioned binaries + SHA-256 hashes for the careful types. Prepping for v0.2.0 ( We're Not Slowing Down) After 0.1.4, we kept the momentum. A bunch of exciting things are landing: 🖼️ Image support: encrypted media sharing via the brand new MIP-04 spec. 🔔 Local notifications (Android-first): fully private, device-side alerts. No servers involved. You get notified, your privacy stays intact. 🙋‍♂️ UX enhancements: avatars in group chats. Smarter notifications. 🌍 Global ready: Multi-language support: English, German, Spanish, French, Italian, Portuguese, Russian, Turkish. 🧑‍🤝‍🧑 Group Power-Ups: add people to existing groups without losing encryption guarantees. - 🦫 Say Hi to MARMOT PROTOCOL Now, here’s the big one: Marmot. Yeah, we launched a protocol. It’s native to Nostr, built from scratch, and (not to brag) it’s a game-changer for secure group messaging. What makes Marmot different? Marmot combines MLS (Messaging Layer Security) with Nostr’s decentralized architecture. That means: 🔒 True End-to-End encryption: only you and your people can read your messages. 🌐 No central servers: no single point of failure. Or censorship. 🕵️‍♂️ Metadata protection: not just the message, it hides who you’re talking to. 🧢 Identity flexibility: No phone numbers. No emails. Just your keys. 🔥 Censorship resistance: if one relay goes down, another steps in. MIP-04 (Secure Media, Done Right). It lets you share images and files securely in Marmot groups. Here’s what’s under the hood: 🔐 ChaCha20-Poly1305 AEAD encryption 🗂️ Content stored via content-addressed systems like Blossom 🔁 Forward secrecy & post-compromise security ✅ Integrity checks to make sure no one’s tampering ❤️ We don’t just slap features together… we design them to last. 🎤 On the Global Stage In case you missed it: nostr:nprofile1qqspwwwexlwgcrrnwz4zwkze8rq3ncjug8mvgsd96dxx6wzs8ccndmcpzamhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuegpzamhxue69uhkummnw3ezu6rpwd5xyctwvuhxumq47j9et and nostr:nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqpypmhxue69uhkummnw3ezuetfde6kuer6wasku7nfvuh8xurpvdjj7qghwaehxw309aex2mrp0yhxz7n6v9kk7tnwv46z7pxxtmh hit the stage at the Lugano Plan B Forum, talking about privacy, Bitcoin, and how to build messaging that actually respects you. (Spoiler: people listened.) 🚧 What’s next Marmot is still in development( experimental but promising). The cryptography is solid, and we’re iterating fast. New release in COMING SOON, and real-world testing is shaping every release. Follow us for new updates! image
2025-11-06 15:26:45 from 1 relay(s) View Thread →
We’re in Lugano! if you see us, come to say hi and talk about privacy 🚀 nostr:nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqpzamhxue69uhhyetvv9ujuct60fsk6mewdejhgtcppemhxue69uhkummn9ekx7mp0gf8npz nostr:nprofile1qqspwwwexlwgcrrnwz4zwkze8rq3ncjug8mvgsd96dxx6wzs8ccndmcprpmhxue69uhhqun9d45h2mfwwpexjmtpdshxuet5qy2hwumn8ghj7un9d3shjtn2v4nxveewveukjl0gsqa image
2025-10-24 11:54:00 from 1 relay(s) View Thread →
The ones calling you paranoid… are often the ones watching. image
2025-10-21 09:20:58 from 1 relay(s) View Thread →
Unpopular opinion: no one should have to prove who they are to send a message. image
2025-10-13 12:19:50 from 1 relay(s) View Thread →
In the digital age, we’re more connected than ever and less free than we’ve ever been. We’ve grown used to it. Used to being watched. Used to being tracked, profiled, manipulated. We hand over our phone numbers, our metadata, our lives... not because we want to, but because we think we have no other choice. Surveillance has become the default. Vulnerability is now expected. Privacy is treated like a luxury. Or worse, a threat. Big tech sells us “secure” apps while mining our behavior. Governments speak of “safety” while expanding their power to listen in. Even the platforms once built to protect us have been co-opted, regulated, or compromised. We celebrate financial freedom while our conversations are still wide open. We trust tools that require phone numbers and cloud backups then act surprised when they leak. We encrypt our money, but not our voices. But privacy is not a side quest. It’s not optional. It’s the foundation. True digital freedom means having control over what you say, who you are, and who gets to listen. It means resisting the normalization of constant surveillance. It means building and using tools that don’t compromise. That’s why we built White Noise. A messenger with no numbers, no emails, no identities forced on you. Just encrypted, censorship-resistant communication on a decentralized network. No ads. No gatekeepers. No backdoors. Because in a world where surveillance is the norm, privacy is resistance. And without privacy, there is no freedom. image
2025-10-06 17:45:44 from 1 relay(s) View Thread →
Metadata builds a profile of you (your habits, your contacts, your movements) without ever reading a word of what you said. image
2025-09-29 14:12:43 from 1 relay(s) View Thread →
🚀 White Noise v1.0.4 is out now. Faster, Stronger, Cleaner. Thank you to everyone who tested v0.1.3 and gave us feedback. As the saying goes, everyone has a plan until they get punched in the face. Well, we got punched in the face on the last release.Being able to see the real-world usage and issues that cropped up was invaluable, however. You should see significant improvements across the board. For v1.0.4 we took on a major refactor of the underlying rust crate that does most of the heavy lifting in the app. These "backend" changes required significant updates here in the app to align to the new rust API and includes numerous bug fixes, refactors many internal components for better maintainability, and improves the overall responsiveness of the application. Finally, we did a lot of UI/UX polish along the way. 💪 Stability and Performance - Improved backend: The backend that manages relay connects, event processing, and group operations has been significantly overhauled resulting in a more stable and performant app. - Improved Relay Handling: Relay connection checks have been refactored to provide better error handling and a more stable experience Pull-to-refresh for relays has been removed to simplify the user experience - Performance Fixes: Several performance improvements have been made to reduce lag and improve the overall responsiveness of the app - Bug Fixes: Numerous bugs have been fixed, including issues with account switching, metadata handling, and chat message display - Android Specific Fixes: Addressed a bug with sensitive clipboard handling for private key copying on Android 🔧 Features and Functionality - Group Management: Users can now edit group names and descriptions from the group info page - Message Drafts: Message drafts are now stored securely, so users won't lose their messages if they navigate away from a chat - Improved Navigation: Added back buttons in the authentication flow and improved navigation within the app - Key Package Admin: Added a new screen for managing key packages 📱 UI/UX Enhancements - Improved Chat Experience: The chat auto-scroll behavior has been enhanced to work better with the keyboard, preventing messages from being hidden. The swipe-to-reply widget has also been refactored - Redesigned "Start New Chat" Sheet: The "Start New Chat" sheet has been redesigned for better performance and usability, reducing load times and improving scrolling - Skeleton Loaders: Skeleton loaders have been added to provide a better user experience while content is loading - Emoji Picker and Reactions: The emoji picker and reaction dialogs are now more responsive and visually appealing - Consistent UI Components: Various UI components, such as buttons, icons, and headers, have been unified and made consistent across the application - Custom Bottom Sheet: A new custom bottom sheet with fade-in/out animations has been implemented for a smoother user experience - Visual Polish: Numerous small visual improvements have been made, such as adjusting padding, fixing alignments, and updating icon colors 👤 Contributors The following contributors had code included in this release: - [@erskingardner](https://github.com/erskingardner) - [@josefinalliende](https://github.com/josefinalliende) - [@codeswot](https://github.com/codeswot) - [@quwaysim](https://github.com/Quwaysim) - [@untreu2](https://github.com/untreu2) - [@jgmontoya](https://github.com/jgmontoya) - [@delcin-raj](https://github.com/delcin-raj) image
2025-09-23 15:11:34 from 1 relay(s) View Thread →
Privacy isn’t a crime fighting strategy. It’s a human right. On Oct 14, EU governments are slated to vote on ‘Chat Control.’ The pitch is child protection. The reality is scanning everyone’s private messages and weakening end-to-end encryption. 679 scientists from 36 countries have signed an open letter explaining why this won’t work and will make us less safe. Their bottom line: - Large-scale CSAM (Child Sexual Abuse Material) detection cannot reach acceptable accuracy. It’s easy to evade and floods systems with false positives. - On-device scanning breaks E2EE by design, creating single points of failure and new targets for abuse. - Expanding “mitigations” (AI filters, age checks) adds complexity and risk, not security. (Find the full letter in the comments) Why mass scanning is the wrong tool: 1. It flips the presumption of innocence. Treating every citizen like a suspect is not “safety”. It’s surveillance. 2. It’s the bedroom-camera problem. Putting spyware on every phone to catch a few criminals is like installing cameras in every bedroom to prevent murders. We all want to stop harm. Violating the privacy of millions of innocents isn’t the way. 3. Function creep is inevitable. Once the scanning pipeline exists, it can be re-tuned for politics, speech, and power. Borders shift, laws change. What’s legal here may be criminal elsewhere. Who draws the line next year? 4. You can’t “re-secure” leaked data. Privacy is protective armor, not a PR setting. Once stripped, it’s gone. 👁️ The cypherpunk lesson: As Eric Hughes wrote, “Privacy is necessary for an open society in the electronic age.” Cypherpunks didn’t ask for permission. they wrote code so ordinary people could have the same defensive tech that institutions take for granted. That’s not a niche hobby. It’s democratic hygiene. 🫶 Better ways to protect children (and everyone) : Real protection doesn’t require blanket surveillance. It needs education, prevention, faster takedowns, resourced investigators (with warrants and due process), targeted operations (against offenders, not dragnet scans of the innocent). These are exactly the pathways experts (and the UN) recommend: effective, proportionate, and rights-preserving. 💪 Build the free, private stack: We already have tools that defend both safety and liberty without backdoors: - Bitcoin for open, borderless payments. - Nostr to own your identity and content. - White Noise for truly private messaging: no phone numbers, no emails, end-to-end encryption with forward secrecy and post-compromise security. This isn’t about ‘nothing to hide.’ It’s about the power to live, speak, organize, report, and dissent without pre-approval. A controlled population is not a free population. And a free society is the best long-term defense against abuse and corruption alike.
2025-09-17 07:09:54 from 1 relay(s) View Thread →
nostr:nprofile1qqs2jplfeem0ta4m0k7hnkv3t3hvezh4rp7ka4ed703dkvylff5fe6spzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcp6gamy speaking with nostr:nprofile1qqsyvyjl47u724y643483g7ktwc86ku30ngew7xsgwwrlyxdmararwcpz9mhxue69uhkummnw3ezuamfdejj7qgwwaehxw309ahx7uewd3hkctcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsu72eqt on the Free Cities Podcast about the power of encrypted messages on Nostr. Free Cities Podcast: 147 - Jeff G: Privacy and the Architecture of Freedom https://feeds.fountain.fm/0Mh804AKI3yaq86kDWTp/items/Ovjio7js1gnOBJBAhTde/files/AUDIO---DEFAULT---cc7209e5-d1b5-485d-8694-1d4b916ef7d2.mp3 Episode webpage: https://free-cities.org/
2025-09-12 05:04:01 from 1 relay(s) View Thread →