nostr:nprofile1qyghwumn8ghj7mn0wd68ytnhd9hx2tcpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hsqgzxpsj7dqha57pjk5k37gkn6g4nzakewtmqmnwryyhd3jfwlpgxtsphu0c4 nostr:nprofile1qqs0cuy9cwpm5ut52uztmswxal8hl2cpjagpmevcchnv2davpve2fjcj0xusc I don't want to read all the old PRs so I will rely on your memory to tell me if this has been proposed before.
Your PR is original afaik, interesting one.
The idea of creating a shard only when you couldn't find a previous one on relays does would stop a client from inadvertently resetting a list.
I couldn't find directions on preventing a said event kind from multiplying too much. I guess if a client retrieves many shards, the best thing it can do is to merge them into one.
This would be great indeed. The web though has these benefits: 1) reach; 2) no need to beg for a slot at play/app store. It's important to have a bridge between such napp launcher and web-based ones.
Atleast on a browser you can right click and inspect the code and networking. Can't say the same about native apps =]~
Yeah agree. It would have access to the same napps available on the web version, very cool.
I won't argue with the protocol creator: you win hahah
I will just add that the choice of using relays was also based on a longer term goal of offering a local backup to all the user data and it will be easier to implement if everything is expected to be a Nostr event.
> [...] The other domains could always make it not use Github and re-prompt your nsec [...]
I'm sure you know it but just to make it clear for future readers, the browser automatically isolates passkey storage (and storage in general) by domain. If 44billion.net changes the login iframe to a malicious url, the nsecs won't be there. Nothing bad happens per se.
Yes, these are good ideas. These features could be window.nostr.napp optional add-ons.
Currently, each app handles its own ws connections and local storage as usual but the good thing is it can always consider there is always only one user, always the same one. No need to code for multi-user. While the 44billion.net is multi-user, the napp sees just one.
A bundle event is already part of the packaging. It references files by their MMR root hash.
By using mmr, relays can be sure the publisher isn't lying about the number of chunks and that a chunk is exactly at x position. The chunk size is fixed. So relays can choose to block a chunk if its part of a huge file.
Imho blossom isn't needed. Although relays specialized on storing big events could rise, the napp files tend to be so small that we write them to the publisher's outbox relays.
This platform is different.
1) The web app is loaded client side, doesn't touch the server
2) The nsec is handled by this github page https://github.com/44Billion/44b-vault, loaded on an iframe, that runs exactly the same open-source code on the repo. 44billion.net has no direct access to the nsec. It lives as a passkey on the device's secure element.
Soon uses will be able to switch to their own 44b-vault fork.
I have to write it down. I'll release a CLI soon that handles packaging and upload, it is just missing some details already present when uploading through 44billion.net's napp store.
It uses base93 for file chunks, the most efficient space-wise JSON-safe binary-to-text encoding. The chunks also carry Merkle Mountain Range tree proofs.
I guess nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z will love it cause its old NIP-95 on steroids
Could it be possible to improve user retention by making Nostr web apps work **without** a browser extension?
Help me test this vision by uploading your static (nostr) websites at https://44billion.net. Sign in/up then click on the (n)app icon with a big "N" (a Napp store) where you can upload them.
Hint: Before uploading, you could add some code to your napps to support auto-login. You just need to get the logged-in user's pubkey on load by calling `const userPk = await window.nostr.peekPublicKey()`, which returns the pubkey without prompting the user.
Known Issues: You won't be able to create an account if using Firefox, Safari < 18 or Bitwarden extension (https://github.com/bitwarden/clients/issues/12590) because they don't fully support passkeys. I don't have a recent Apple device to test on Safari >= 18.
Could it be possible to improve user retention by making Nostr web apps work **without** a browser extension?
Help me test this vision by uploading your static (nostr) websites at https://44billion.net. Sign in/up then click on the (n)app icon with a big "N" (a Napp store) where you can upload them.
Hint: Before uploading, you could add some code to your napps to support auto-login. You just need to get the logged-in user's pubkey on load by calling `const userPk = await window.nostr.peekPublicKey()`, which returns the pubkey without prompting the user.
test
One year ago I proposed a "stacked users" design/UX (note mentioned at the bottom of this note). It was appreciated but I didn't see any real implementation of it, so I finally decided to build it on my own, but instead of creating yet another nostr client, I picked Jumble and added it as a new "Grouped notes" mode:

Main features:
- Pick a custom timeframe (default 24 hours)
- Filter out users that posted more than X notes; useful to surface users that post rarely
- Switch to compact mode to have a RSS-like feeling, to the delight of nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6
- See how many other notes the author published in the selected timeframe
- Compatible with the built-in filters
- Works also when browsing specific relays
I've been using this mode in the last few days, and I really like it, especially the compact version, since it offers a clean interface without any doom scrolling temptation. It also is letting me discover interesting content and users I forgot I followed that, for a long time, remauned hidden behind the more active ones on my list.
Try it yourself at https://grouped-notes.dtonon.com
And give back any feedback, thanks!
nostr:npub1syjmjy0dp62dhccq3g97fr87tngvpvzey08llyt6ul58m2zqpzps9wf6wl should I open a PR? :)
This is 10/10
Ok I guess no1 tested it.. back to finishing other views
oh hooo dude, let me tell you: bending passkeys for storing and retrieving nostr keys does work!
browser extensions no more. very soon!

nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z isn't it too much purism to include an ["alt", "a short note:
What if an app was able to embed another app specialized on loading all kinds of nostr events by just adding an iframe set to "44billion.net/+
I think that the one that builds such nostr "special app" to load event kinds, if well done thus used by other apps, kinda will dictate what is the "official" event structure for each nostr kind.
This week I tested it with Jumble's source code and after some bug fixes... it works perfectly! Yeah you can upload anyone else's code easily or just use official Jumble, if the Jumble's dev chooses to upload it. Later, there will even be a 'draft' release channel if say a vibe coding platform wants to upload and show a preview before really publishing a vibe coded app to the 'main' channel.
1 or 2 weeks tops to finish and integrate the signer module and it's ready for demo. \o\
oh the web! a popover is opened with a custom longpress event. when the touch/click is released, the browser-controlled backdrop receives a pointerup event and immediately auto-closes the popover. All cool, except that the pointerup event isn't exposed to the js, thus can't be canceled.
damn, these kinds of unimportant problems keep slowing me down.
I'm building that, but it takes longer than i thought. I've been fighting many subtle bugs, race conditions, web quirks etc.
Not blossom but dev's outbox relays (files are small and chunked if needed), any static website works but can't use service worker (cause it would require a server). An app is unable to auto-update itself.
Sooner than later.. é verdade esse bilete
nostr:npub1l3cgtsurhfchg4cyhhqudm70074sr96srhje330xc5m6czej5n9s9q6vs2 has some ideas of how to use passkeys in a smooth cross-app syncing flow. I don't know all the details and I'm not 100% sure it works, but it may work pretty well for some users.
Yes, I'm gonna use passkeys to help simplify nostr key management when accessing nostr apps. The nsecs will be importable/exportable. All the pieces are almost in place to put it online for everyone to test. I just need to go back to drinking coffee or someone to whip my back.
Passkeys have become better with time. We don't need Apple/Google/MS/some-linux-distro-support anymore. E.g. Bitwarden (can be self-hosted) has a browser extension and native apps, supports passkeys and syncs keys across devices no matter the OS.
there are many differences but the main thing is that 44billion would be the platform where the user discovers the apps, install them, open/close/minimize. they click on it or paste the 44billion.net/+appname. The dev just upload the static page files while logged in with their pubkey.
The dev doesn't need to worry about hosting nor need to beg goggle to show the app on search results.
To my 2 anon backers from the failed geyser campaign (lol i think it was nostr:nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqg4waehxw309ahx7um5wfjkc6t5v4ejummjvuq3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7qgdwaehxw309ahx7uewd3hkcqg0waehxw309ahx7um5wghx6mmdqyv8wumn8ghj7un9d3shjtnwdaek7arjdaejuctswqqzp3nq8v83enlvvfwecz9h20j0wa827lgu7fmfygcjtd0afknjsqv7rrld7p and nostr:nprofile1qythwumn8ghj76twvfhhstnjv4kxz7tn9ekxzmnyqyvhwumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakszxnhwden5te0wfjkccte9emk2um5v4exucn5vvhxxmmdqqsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8g9gy2m7?) and to those watching from the shadows I'd like to say that the PoC works very well. 44billion is gonna happen eventually.
For those who didn't get the first time, 44billion is probably similar to the notedeck thing from the Damus guy. But better because web developers already know how to build an app for it... an app is just a good'ol static website.
I already have multi-user, multi-column, multi-workspace UI done although very raw. It uses my new, shiny and fast front-end framework with signals. Many bugs on that lib were surfaced when using it for this project, which was a good thing.
App "installation" concept works although I need to start using my bundle event spec and work on the manual app update option.
There's a new upload spec to code too.
Login is another module that I need to revisit but most of it was already done and working though I will maybe add frost support.
Yeah much work to do, little money (32k sats from campaign xD thx) and nothing online to show yet. And damn how I hate those opensats posts about grants for crap apps nobody wants, maintains nor use lol
I accept thumbs up emojis for motivation.
Yes, ~32k sats. The contributions were sent to me as soon as they were made, after deducting the 5%. Geyser is overall very good.
That’s not what it means (correct me if I’m wrong, nostr:npub1kmwdmhuxvafg05dyap3qmy42jpwztrv9p0uvey3a8803ahlwtmnsnhxqk9 ).
What they’re trying to say is that in 7 days your project will be moved from the “Launchpad” section, where all new projects are showcased.
They won’t delete it, it’ll just be available in its respective category, and will be harder to discover.
7 days passed. It's like I said, campaign isn't listed anymore, the link now redirects to /project-not-found page. Graveyard it is
**Remember Facebook when it had all those cool micro apps and games?** Let's do it using Nostr instead of closed platforms! 😜
Less than three hours left to kickstart the campaign at https://geyser.fund/project/44billion/prelaunch?hero=arthurfranca
...or let the idea die...
New goal perk added there to shake things up! I'm sure javascript devs would be interested in this part.
Also updated the description to better explain the project.
**Remember Facebook when it had all those cool micro apps and games?** Let's do it using Nostr instead of closed platforms! 😜
Less than three hours left to kickstart the campaign at https://geyser.fund/project/44billion/prelaunch?hero=arthurfranca
...or let the idea die...
New goal perk added there to shake things up! I'm sure javascript devs would be interested in this part.
Just launched a campaign at Geyser: https://geyser.fund/project/44billion/prelaunch
Apparently it will auto-close if it doesn't reach $210 goal 😱😱😱😱
If you like the project, please contribute or share to your follows!
nostr:nprofile1qythwumn8ghj76twvfhhstnjv4kxz7tn9ekxzmnyqyvhwumn8ghj7mr0vd4kymmc9enxjct5dfskvtnrdaksqgpm7rrrljungc6q0tuh5hj7ue863q73qlheu4vywtzwhx42a7j9n53kd5ve ricão nem pra dar um kickstart de 2 reais