-
2024-11-19 00:27:34
## Applesauce
I've been working on cleanup up a lot of the old crufty logic in noStrudel and as part of that process I've started breaking out a lot of the "event interpretation" layer into a new library [applesauce](https://github.com/hzrd149/applesauce)
The goal with the library isn't to build another "nostr SDK" but instead to only tackle the problem of how the UI layer of web apps should get data from events and update when new events are detected. Its still a work-in-progress but if your interested check out the [docs](https://hzrd149.github.io/applesauce/modules/applesauce_core.html) (hopefully ill write some examples soon)
## nsite
After SEC-02 I noticed nostr:npub1elta7cneng3w8p9y4dw633qzdjr4kyvaparuyuttyrx6e8xp7xnq32cume created a project built on top of blossom called [nsite](https://github.com/lez/nsite) which was a simple static website CDN using nostr to store the object paths and blossom to store the objects themselves
Because I don't know python I decided to write my own implementation of it in typescript [nsite-ts](https://github.com/hzrd149/nsite-ts) and started hosting it at https://nsite.lol
nostr:npub1klr0dy2ul2dx9llk58czvpx73rprcmrvd5dc7ck8esg8f8es06qs427gxc also created super easy cli tool for uploading static sites to blossom servers called [nsite-cli](https://www.npmjs.com/package/nsite-cli). If your a developer of a nostr web app I would encourage you to give it a try
I also opened my first NIP PR for [static websites](https://github.com/nostr-protocol/nips/pull/1538) :D
## Blossom
Thanks to nostr:npub138s5hey76qrnm2pmv7p8nnffhfddsm8sqzm285dyc0wy4f8a6qkqtzx624, nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6, nostr:npub1v0lxxxxutpvrelsksy8cdhgfux9l6a42hsj2qzquu2zk7vc9qnkszrqj49, and nostr:npub1a6we08n7zsv2na689whc9hykpq4q6sj3kaauk9c2dm8vj0adlajq7w0tyc for opening PRs and contributing to the blossom spec. also thanks to everyone else who has shown interest in it. its awesome to watch it slowly grow
There are two more optional BUDs in the spec now
- [BUD-06](https://github.com/hzrd149/blossom/blob/master/buds/06.md) Upload requirements
- [BUD-08](https://github.com/hzrd149/blossom/blob/master/buds/08.md) Nostr File Metadata Tags
And a two breaking changes
- [X-Reason](https://github.com/hzrd149/blossom/pull/32) for all error messages
- Authorization events may have multiple `x` tags with hashes [PR](https://github.com/hzrd149/blossom/pull/24)
## noStrudel
I'm continuing to work on noStrudel and add new features and iron out bugs. I can't list everything here but the next release of the app is shaping up nicely. you can see the changes [here](https://github.com/hzrd149/nostrudel/pull/236)
## Hyper SOCKS5 proxy
Mostly a weekend project but I created a SOCKS5 proxy for hyperDHT and holesail called [hyper-socks5-proxy](https://github.com/hzrd149/hyper-socks5-proxy) that uses a bech32 encoded version of the holesail "connection strings" (public keys) to make them compatible with traditional URLs [hyper-address](https://github.com/hzrd149/hyper-address)
If you want to give it a try you can run it using `npx hyper-socks5-proxy start` to run it locally and have a SOCKS5 proxy that can connect to any hyperDHT or holesail node
Full post here:
nostr:nevent1qvzqqqqqqypzqfngzhsvjggdlgeycm96x4emzjlwf8dyyzdfg4hefp89zpkdgz99qyghwumn8ghj7mn0wd68ytnhd9hx2tcpzfmhxue69uhkummnw3e82efwvdhk6tcqypl8dftpuvdlzfekjd5nc0lmtsldgttv3f0c3uqy3xa3jnqdz4qkw9nptvs
## Other experiments
### CherryTree
A small app for uploading and downloading chunked files on blossom servers [repo](https://github.com/hzrd149/cherry-tree)
### Blossom HLS uploader
A half working cli tool to upload HSL videos to blossom servers [repo](https://github.com/hzrd149/blossom-hls-upload)
### PoW note DVM
A simple content recommendation DVM that recommends notes with the most proof of work [repo](https://github.com/hzrd149/pow-content-dvm)
## Plans for Q4
- Release a working v1 of applesauce packages with documentation
- Release v0.42.0 of noStrudel and start next phase of refactoring the networking code
- Remove "app relays" from noStrudel and make it work entirely on the outbox model
- Try to make WebRTC relays work one last time (before I give up on it forever)
- Work with quentin and leo to release multiple types of paid blossom servers. and also build my own
- More noStrudel features? highlights? NIP-29? cashu wallet?