LWB's avatar
LWB
bmaxi89@iris.to
npub1vjxq...hh7v
Est. block 780641
LWB's avatar
LWB 1 month ago
GM nostriches. Astraea v0.1.0 โ€” First Public Release ๐ŸŒ™ Astraea is a private, offline-first calendar with optional end-to-end encrypted synchronization over Nostr. Your calendar works locally without an account, an Internet connection, or a central Astraea server. Network synchronization is entirely optional and remains under your control. โœจ Highlights Offline-first calendar โ€” create, edit and manage events entirely on your device. Multiple calendar views โ€” month, week, day and upcoming events. Recurring events โ€” daily, weekly, monthly and yearly recurrence. Local reminders โ€” notifications scheduled directly by the operating system. Timezone-aware events โ€” UTC storage with device or custom timezone display. Light and dark themes โ€” including a privacy-oriented dark default. โšก Encrypted Nostr Sync Optional multi-device synchronization over Nostr. Calendar contents encrypted using NIP-44 before leaving the device. Support for Nostr kind 30078 parameterized replaceable events. Encrypted tombstones and NIP-09 deletion requests. Local key generation or existing nsec/hex key import. Support for the Amber NIP-55 external signer on Android. Configurable personal relay for additional backup redundancy. [!NOTE] Relay operators cannot read event titles, descriptions, locations or reminder details. As with all network services, they may still observe metadata such as IP addresses, public keys, timestamps and event sizes. ๐ŸŒ Relay Onboarding The new first-launch onboarding lets you choose exactly which Nostr relays Astraea should use. Astraea suggests: wss://nos.lol wss://relay.damus.io These are only suggestions. You can enable, disable or replace them with your preferred relays at any time. ๐Ÿ“ฆ Import, Export and Backup Password-protected encrypted exports. PBKDF2-HMAC-SHA256 key derivation. AES-256-GCM authenticated encryption. Standard iCalendar .ics import and export. Local-first storage using Hive. ๐Ÿ“ฑ Android Widgets Add your calendar directly to the Android home screen with: Daily agenda widget Weekly agenda widget Monthly agenda widget ๐Ÿ” Privacy by Design No Astraea account required. No central Astraea backend. No analytics or advertising SDKs. No mandatory network connection. Private Nostr keys stored through Android secure storage. Release builds use a dedicated signing key and never fall back to debug signing. ๐Ÿ“ฒ Platform Support Platform Status Android โœ… Supported iOS Not configured yet Desktop Not configured yet Installation Download the APK from the assets below and install it on your Android device. Android may ask you to authorize installations from your browser or file manager. Always verify that the APK was downloaded from the official Astraea repository. Link to github Download from Zapstore, have fun and always #FuckGoogle #Astraea #Echoes #GrowNostr #otherstuff
LWB's avatar
LWB 1 month ago
๐Ÿค– start #chess against the bot โ€” I'll be White. The bot will DM me the board; I'll play my moves privately. #chess #nostr #gamestr
LWB's avatar
LWB 1 month ago
you didn't know it yet, but you'll need this
LWB's avatar
LWB 1 month ago
Echoes v0.4.2 You can now share a note with another nostrich, by simply adding his pubkey or his nip05 in the share button. Echoes v0.4.0 โ€” Shared Notes The headline feature: share a note with other Nostr users, end-to-end encrypted, with live collaboration โ€” plus a security-hardening pass on everything the new feature touches. Multi-user note sharing Share any note with other Nostr users straight from the editor โ€” each recipient gets their own NIP-44-encrypted copy, so "stop sharing with X" actually cuts X off from future updates (and retracts their copy via NIP-09) Recipients can edit a shared note: edits sync back to the owner, who merges them (last-write-wins, same rule as multi-device sync) and re-publishes to everyone Leaving a shared note is permanent โ€” it's removed locally and can't silently reappear Attachments in shared notes stay encrypted and are fetched https-only, hash-checked; local file paths never travel in either direction Recipient picker Add recipients by npub, hex pubkey, or NIP-05 identifier (name@domain) Contact autocomplete: type a few letters and pick from the people you already follow โ€” matched entirely on-device, nothing you type is sent to any search service Live identity preview (avatar + name + npub) while typing, and an explicit confirmation dialog showing exactly who you're about to share with before anything is published Recipient lists and "shared by" rows show real names and avatars instead of bare npubs Fixes Profile metadata (name/avatar) could silently fail to load: the fetch resolved as soon as the fastest relay answered, discarding whatever the relay that actually had the profile was still sending. Now waits for every relay, same as note fetching The share sheet no longer overflows when the keyboard is open Smoother sheet animations (content resizes and keyboard insets now ease instead of jumping) Security hardening Profile and contact-list events are now signature-verified and author-checked before anything trusts them โ€” a malicious relay can no longer attach an arbitrary name/avatar to a pubkey, swap identities between your contacts, or inject strangers into the autocomplete Display names are sanitized before display (invisible/bidirectional control characters stripped, length capped) so a crafted profile name can't spoof the confirmation dialog All third-party HTTP fetches (NIP-05 lookups, avatars) are now size-capped, streamed, and follow redirects only to https targets โ€” no silent downgrade to cleartext, no unbounded downloads NIP-05 typing is debounced conservatively so partially-typed domains are (almost) never contacted while you're still writing Notes 3 new translated strings across all 27 supported languages As always: your notes never leave your device unencrypted, and nothing is published without an explicit action Fixes a serious regression in v0.4.0's share sheet: recipient search and identifier parsing could stop responding while typing, eventually freezing the app until Android killed it. What was wrong The contact list powering the autocomplete was being torn down and re-fetched from relays on virtually every keystroke, so suggestions never had a chance to appear Profile/contact signature verification (introduced in v0.4.0's hardening pass) ran on the UI thread โ€” with a whole follow list's worth of profiles to verify, that added up to seconds of frozen interface, re-triggered while typing What changed The contact list is now fetched once when the share sheet opens and kept for its whole lifetime โ€” suggestions are ready by the first keystroke Signature verification now runs on a background isolate: same security guarantees (verified against live relay data โ€” byte-for-byte identical verdicts), zero impact on the UI thread All v0.4.0 features and security protections are unchanged. image
LWB's avatar
LWB 1 month ago
Great documentary. There's no thing such as a good dictator. For as many good stuff has made Bukele, he made as many evil stuff, if not more. GG @Joe Nakamoto
LWB's avatar
LWB 1 month ago
Morning guys โ˜€๏ธ
LWB's avatar
LWB 1 month ago
Dioporco Lele Adani stai zitto
LWB's avatar
LWB 1 month ago
Echoes v0.2.0 A big one โ€” new ways to organize and personalize your notes, a much nicer voice note experience, and several real data-integrity fixes found through actual daily use. New Per-note colors โ€” pick a background for any note from seven pastel options (post-it yellow, red, purple, blue, green, orange, white). Text color is never guessed: it's chosen by comparing WCAG contrast ratios against the actual background, so it stays readable in both light and dark app themes. Picking a color triggers a circular reveal animation that sweeps across the whole screen โ€” title bar included. Voice notes, reworked โ€” recordings are now inline and positionable in the note body, just like images: write a line, drop in a 25-minute recording, keep writing below it. The recorder panel slides in/out, has a proper red record button, keeps the screen awake while recording, and lets you set a custom timestamp on any recording (long-press it). Note search โ€” a search icon in the Home app bar filters the current tab (Notes or Diary) by title, body, or checklist item text. Checklist quality-of-life โ€” hide/show completed items, clear all completed items in one tap, and a live "N of M done" counter. Checklists now always open straight into editing โ€” there's nothing to "read" in a working list. Contextual formatting toolbar โ€” bold/italic/heading/list/link now appear only when you actually select text, freeing up the space above the body for the voice recorder instead of a permanently-docked ribbon. Autosave โ€” edits are saved locally a moment after you stop typing, as a safety net against the back button or the app closing mid-edit. List/grid toggle moved to Home, next to search, instead of buried in Settings. The note's own title now lives in the app bar โ€” editable in place, no more redundant "Edit note" label with the real title further down. Smaller downloads: release APKs are now split per architecture (arm64/armeabi-v7a) alongside the universal one. Fixed Attachments silently failing to reach relays: Primal's Blossom host and nostr.build's NIP-96 host both turned out to actively reject encrypted uploads outright (verified by direct probing) โ€” every image/voice note sent through them was doomed from the start. Swapped the built-in defaults to hosts confirmed to store opaque encrypted blobs correctly. A real data-loss race: a background sync cycle uploading an attachment (and deleting the local plaintext) could have its result overwritten by a stale in-memory copy from an open editor's autosave โ€” permanently losing the decryption key while the plaintext was already gone. Fixed at the storage layer (uploaded state can no longer regress to pending), with the in-memory note list and any open editor now kept in sync with what actually lands on disk. Voice notes always playing back the first recording when a note had more than one โ€” missing widget identity (Key) caused Flutter to reuse the wrong player state. New recordings were stored in a cache directory the OS is allowed to purge at any time โ€” losing not-yet-synced voice notes for good. They now live in persistent app storage. Saving a note (โœ“) now returns you to the note itself instead of kicking you back to the list.
LWB's avatar
LWB 1 month ago
Au revoir France ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚
LWB's avatar
LWB 1 month ago
Lumbar pain and vibecoding, what a great day ๐Ÿ˜‘
LWB's avatar
LWB 1 month ago
Echoes: notes that are actually yours. I've been building an offline-first notes app that uses Nostr for sync instead of a cloud you have to trust. Every note, checklist, image, and voice memo saves locally first โ€” it works with zero connection, always. Syncing to relays is a separate, deliberate action, never automatic. And everything that leaves your device is already encrypted before it goes: note content is NIP-44 self-encrypted, images and voice notes are AES-256-GCM encrypted client-side before upload. Relays and file hosts only ever see ciphertext, never your notes. A few things I care about: - Sign in with your own key, or delegate signing to Amber (NIP-55) โ€” your nsec never touches the app. - Point it at any relay, including one you self-host over Tailscale or your own network. - Optional password lock on the local database itself, on top of everything else. - A diary mode, for date-tagged journal entries. - No accounts, no telemetry, no ads, donations are welcome if you like these kind of projects. It's early (v0.1) and GPLv3. Built it because I wanted notes I actually own and also because Fuck Google always and forever. Feedback from people who live the self-hosted life is very welcome. Get it on zapstore Or add it to your Obtanium #nostr #foss #privacy
โ†‘