Atomicity is underrated
Stuart Bowman
_@satellite.earth
npub1luna...27lj
Building Satellite
https://satellite.earth 🏴
Notes (6)
Just shipped a new Satellite version with hybrid nostr:npub1kpt95rv4q3mcz8e4lamwtxq7men6jprf49l7asfac9lnv2gda0lqdknhmz integration for user search.
Now when you search as a signed in user you'll see memory-cached results instantly (computed locally from your follow list) and then a second later the Vertex results appear as well.
So now you can find pretty much anyone in nostr from the top nav, even obscure profiles.
Solid product nostr:npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup nostr:npub1wf4pufsucer5va8g9p0rj5dnhvfeh6d8w0g6eayaep5dhps6rsgs43dgh9
Nostr may be the last social network to ever exist
Shhhhhhhh!!!!
nostr:nevent1qgst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqqyp2g3e09r52yexnmykg5ynl98fgpenysqlj2wpw3n76sc7p8f9p5jpjwn8s
It occurred to me that the new key rotation thing makes it possible to implement a credible low friction "Sign up with email, then migrate a self custody nostr id later" sort of flow.
So basically the way it would work is that the client allows the person to sign up with email, and you have a backend service that generates an nsec for them, and the backend signs stuff for them.
Then if the user wants to move to self custody at any point, they go in their account settings and click like "Enable self custody" or something.
This causes the client to generate a local nsec in the usual way, and the backend creates a key rotation event pointing at the self custodied nsec, and as soon as it's timestamped, immediately rotates to that new nsec.
So far so good.
However, there is still a problem -- there's no way for the backend to prove that it did not also publish an earlier timestamped rotation event with the new pubkey (which would allow the backend to rug the user in the future)
But we can solve this by having the user rotate *again* (using their new nsec) to a second locally generated nsec. (which the backend service could not have known, and thus could not have created any prior key rotation events for)
So bottom line is, yeah it involves two rotations (ie a 20 minute process on average given block time) but it massively reduces sign up friction while providing a way to migrate to self custody while keeping the social graph you may have accumulated prior to rotating into self custody.
nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn nostr:npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt
What's up guys
After my year break from social media I deployed the total rebuild of https://satellite.earth I created over course of these past 12 months.
It's a major upgrade.
The old Satellite was cool aesthetically but was not functional enough to be a daily driver. I had to fix this, to make the nostr client that I've always wanted.
Something beautiful that gets the basics right.
I changed the front page and the profile pages to focus on *just* what you're looking for, but I kept reddit-style threads because they are amazing for reading long conversations, e.g
https://satellite.earth/thread/note15yhl85e6jnayprt3ufp4ucuzwqry0uxd8sxqn4twctxxf4gkfdpsfyea0e
I got rid of NIP-172 communities. They were just too messy. I'm working on replacing them with relay-based communities instead (something like what nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn has been cooking). This will be ready and deployed in the near term.
In the meantime, straight up relay feeds are already functional. You just have to type the url in yourself, e.g.
https://satellite.earth/relay/pyramid.fiatjaf.com
You can create aggregate relay feeds too by just including multiple comma separated relays in the url, e.g.
https://satellite.earth/relay/pyramid.fiatjaf.com,relays.land/spatianostra
Satellite CDN got reworked and refreshed as well. You can now see all your transactions, your current balance, and your burn rate. It's way more clear now what's going on.
I added client side search, based on your social graph (or *my* social graph if you're not signed in). It pulls all your contacts, your contacts' contacts, and indexes your web of trust locally. Believe it or not this is actually quite performant (especially if you are on a multicore machine).
To be clear, this is not really *search*. Something like what nostr:npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup is building that is not strictly local will be necessary for finding obscure people.
This is essentially navigation UX, and it works great for jumping to someone's profile when you know where you want to go.
Notifications are super reliable now.
Aside the feed working well (which is the #1 live or die UX that absolutely must work) having notifications that are useful and where you can reply immediately from the interface without hunting down the post context is pretty important.
Added NIP17 support.
Maintained legacy NIP04 support for existing chats only.
The future is nostr:npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec style Marmot Protocol (pending)
One of things that always annoyed me about legacy social media is that they spend all their screen real estate trying to get you to go somewhere *else* (???)
I mainly designed this profile page to be the client that I want to use.
I want to link to my page and not have the sidebars to like a billboard or something.
In the new Satellite the profile page looks pretty and only shows your stuff (and nothing else)
Added full featured rich text editor. This was one of the main things the old Satellite was lacking.
In the new Satellite you can upload media inline, directly to Satellite CDN or whichever is your preferred blossom server.
Mentions, emojis, embedding nostr notes inline are supported as well.
The Satellite CDN UI is much improved as well, especially if you have lots of files.
The terms and cost are the same as old Satellite.
You can upload big files (like > 5GB).
Bandwidth is free. $0.05/GB/mo.
Prepaid. Lightning only.
If you want a nice blossom-compatible gallery UX to be a home for all your media on nostr, I would encourage you to check it out.
I added some other thread improvements too. One feature I'm really happy about in the new Satellite is that you can link directly to deeply nested reply, e.g.
https://satellite.earth/thread/note1lqgmper99zj566xlc0gha4fmx4929njdckcq2w80yej0vrkcsyqqkqqh4s#note1zukmyf2nxrn5xamzawdez6f9egzaexjlhtjsza07rd7df9fn89esd40url
The ability to link to replies while seeing the whole context of the conversation I feel like really increases the "surface area" of the thread.
* * *
There are some more cool things in the pipeline.
Relay communities are the priority right now.
After that I will show you guys the new relay that I also built during this 12 month interlude.
Finally, if you still want to use the old satellite, you may at https://v1.satellite.earth
nostr:nevent1qgs07f7srjc72ma4skqrqmrm5a4mqdalyyw9k4eu2mjwwr9gtp644uqqyzagvjeknhf40w7qjm3x9452spj3n3lhv8ndvdq6jcpxx62gzv7n2mc3pts
I added client side search, based on your social graph (or *my* social graph if you're not signed in). It pulls all your contacts, your contacts' contacts, and indexes your web of trust locally. Believe it or not this is actually quite performant (especially if you are on a multicore machine).
To be clear, this is not really *search*. Something like what nostr:npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup is building that is not strictly local will be necessary for finding obscure people.
This is essentially navigation UX, and it works great for jumping to someone's profile when you know where you want to go.
Notifications are super reliable now.
Aside the feed working well (which is the #1 live or die UX that absolutely must work) having notifications that are useful and where you can reply immediately from the interface without hunting down the post context is pretty important.
Added NIP17 support.
Maintained legacy NIP04 support for existing chats only.
The future is nostr:npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec style Marmot Protocol (pending)
One of things that always annoyed me about legacy social media is that they spend all their screen real estate trying to get you to go somewhere *else* (???)
I mainly designed this profile page to be the client that I want to use.
I want to link to my page and not have the sidebars to like a billboard or something.
In the new Satellite the profile page looks pretty and only shows your stuff (and nothing else)
Added full featured rich text editor. This was one of the main things the old Satellite was lacking.
In the new Satellite you can upload media inline, directly to Satellite CDN or whichever is your preferred blossom server.
Mentions, emojis, embedding nostr notes inline are supported as well.
The Satellite CDN UI is much improved as well, especially if you have lots of files.
The terms and cost are the same as old Satellite.
You can upload big files (like > 5GB).
Bandwidth is free. $0.05/GB/mo.
Prepaid. Lightning only.
If you want a nice blossom-compatible gallery UX to be a home for all your media on nostr, I would encourage you to check it out.
I added some other thread improvements too. One feature I'm really happy about in the new Satellite is that you can link directly to deeply nested reply, e.g.
https://satellite.earth/thread/note1lqgmper99zj566xlc0gha4fmx4929njdckcq2w80yej0vrkcsyqqkqqh4s#note1zukmyf2nxrn5xamzawdez6f9egzaexjlhtjsza07rd7df9fn89esd40url
The ability to link to replies while seeing the whole context of the conversation I feel like really increases the "surface area" of the thread.
* * *
There are some more cool things in the pipeline.
Relay communities are the priority right now.
After that I will show you guys the new relay that I also built during this 12 month interlude.
Finally, if you still want to use the old satellite, you may at https://v1.satellite.earth
nostr:nevent1qgs07f7srjc72ma4skqrqmrm5a4mqdalyyw9k4eu2mjwwr9gtp644uqqyzagvjeknhf40w7qjm3x9452spj3n3lhv8ndvdq6jcpxx62gzv7n2mc3pts