-

@ 5e5fc143:393d5a2c
2024-11-19 10:20:25
Now test old reliable front end
Stay tuned more later
Keeping this as template long note for debugging in future as come across few NIP-33 post edit issues
-

@ 06639a38:655f8f71
2024-11-01 22:32:51
One year ago I wrote the article [Why Nostr resonates](https://sebastix.nl/blog/why-nostr-resonates/) in Dutch and English after I visited the Bitcoin Amsterdam 2023 conference and the Nostrdam event. It got published at [bitcoinfocus.nl](https://bitcoinfocus.nl/2023/11/02/278-waarom-nostr-resoneert/) (translated in Dutch). The main reason why I wrote that piece is that I felt that my gut feeling was tellinng me that Nostr is going to change many things on the web.
After the article was published, one of the first things I did was setting up this page on my website: [https://sebastix.nl/nostr-research-and-development](https://sebastix.nl/nostr-research-and-development). The page contains this section (which I updated on 31-10-2024):

One metric I would like to highlight is the number of repositories on Github. Compared to a year ago, there are already more than 1130 repositories now on Github tagged with Nostr. Let's compare this number to other social media protocols and decentralized platforms (24-10-2024):
* Fediverse: 522
* ATProto: 159
* Scuttlebot: 49
* Farcaster: 202
* Mastodon: 1407
* ActivityPub: 444
Nostr is growing. FYI there are many Nostr repositories not hosted on Github, so the total number of Nostr reposities is higher. I know that many devs are using their own Git servers to host it. We're even capable of setting up Nostr native Git repositories (for example, see [https://gitworkshop.dev/repos](https://gitworkshop.dev/repos)). Eventually, Nostr will make Github (and other platforms) absolute.
Let me continue summarizing my personal Nostr highlights of last year.
## Organising Nostr meetups

This is me playing around with the NostrDebug tool showing how you can query data from Nostr relays. Jurjen is standing behind me. He is one of the people I've met this year who I'm sure I will have a long-term friendship with.
## OpenSats grant for Nostr-PHP


In December 2023 I submitted my application for a OpenSats grant for the further development of the Nostr-PHP helper library. After some months I finally got the message that my application was approved... When I got the message I was really stoked and excited. It's a great form of appreciation for the work I had done so far and with this grant I get the opportunity to take the work to another higher level. So please check out the work done for so far:
* [https://nostr-php.dev](https://nostr-php.dev)
* [https://github.com/nostrver-se/nostr-php](https://github.com/nostrver-se/nostr-php)
## Meeting Dries

One of my goosebumps moments I had in 2022 when I saw that the founder and tech lead of Drupal Dries Buytaert posted '[Nostr, love at first sight](https://dri.es/nostr-love-at-first-sight)' on his blog. These types of moments are very rare moment where two different worlds merge where I wouldn't expect it. Later on I noticed that Dries would come to the yearly Dutch Drupal event. For me this was a perfect opportunity to meet him in person and have some Nostr talks. I admire the work he is doing for Drupal and the community. I hope we can bridge Nostr stuff in some way to Drupal. In general this applies for any FOSS project out there.
[Here](https://sebastix.nl/blog/photodump-and-highlights-drupaljam-2024/) is my recap of that Drupal event.
## Attending Nostriga

A conference where history is made and written. I felt it immediately at the first sessions I attended. I will never forget the days I had at Nostriga. I don't have the words to describe what it brought to me.

I also pushed myself out of my comfort zone by giving a keynote called 'POSSE with Nostr - how we pivot away from API's with one of Nostr superpowers'. I'm not sure if this is something I would do again, but I've learned a lot from it.
You can find the presentation [here](https://nostriga.nostrver.se/). It is recorded, but I'm not sure if and when it gets published.
## Nostr billboard advertisement

This advertisment was shown on a billboard beside the [A58 highway in The Netherlands](https://www.google.nl/maps/@51.5544315,4.5607291,3a,75y,34.72h,93.02t/data=!3m6!1e1!3m4!1sdQv9nm3J9SdUQCD0caFR-g!2e0!7i16384!8i8192?coh=205409&entry=ttu) from September 2nd till September 16th 2024. You can find all the assets and more footage of the billboard ad here: [https://gitlab.com/sebastix-group/nostr/nostr-ads](https://gitlab.com/sebastix-group/nostr/nostr-ads). My goal was to set an example of how we could promote Nostr in more traditional ways and inspire others to do the same. In Brazil a fundraiser was achieved to do something similar there: [https://geyser.fund/project/nostrifybrazil](https://geyser.fund/project/nostrifybrazil).
## Volunteering at Nostr booths growNostr

This was such a great motivating experience. Attending as a volunteer at the Nostr booth during the Bitcoin Amsterdam 2024 conference. Please read my note with all the lessons I learned [here](https://nostrver.se/note/my-learned-nostr-lessons-nostr-booth-bitcoin-amsterdam-2024).
## The other stuff
* The Nostr related blog articles I wrote past year:
* [**Run a Nostr relay with your own policies**](https://sebastix.nl/blog/run-a-nostr-relay-with-your-own-policies/) (02-04-2024)
* [**Why social networks should be based on commons**](https://sebastix.nl/blog/why-social-networks-should-be-based-on-commons/) (03-01-2024)
* [**How could Drupal adopt Nostr?**](https://sebastix.nl/blog/how-could-drupal-adopt-nostr/) (30-12-2023)
* [**Nostr integration for CCHS.social**](https://sebastix.nl/blog/nostr-integration-for-cchs-social-drupal-cms/) (21-12-2023)
* [https://ccns.nostrver.se](https://ccns.nostrver.se)
CCNS stands for Community Curated Nostr Stuff. At the end of 2023 I started to build this project. I forked an existing Drupal project of mine (https://cchs.social) to create a link aggregation website inspired by stacker.news. At the beginning of 2024 I also joined the TopBuilder 2024 contest which was a productive period getting to know new people in the Bitcoin and Nostr space.
* [https://nuxstr.nostrver.se](https://nuxstr.nostrver.se)
PHP is not my only language I use to build stuff. As a fullstack webdeveloper I also work with Javascript. Many Nostr clients are made with Javascript frameworks or other more client-side focused tools. Vuejs is currently my Javascript framework I'm the most convenient with. With Vuejs I started to tinker around with Nuxt combined with NDK and so I created a starter template for Vue / Nuxt developers.
* [ZapLamp](nostr:npub1nfrsmpqln23ls7y3e4m29c22x3qaq9wmmr7zkfcttty2nk2kd6zs9re52s)
This is a neat DIY package from LNbits. Powered by an Arduino ESP32 dev board it was running a 24/7 livestream on zap.stream at my office. It flashes when you send a zap to the npub of the ZapLamp.
* [https://nosto.re](https://nosto.re)
Since the beginning when the Blossom spec was published by @hzrd49 and @StuartBowman I immediately took the opportunity to tinker with it. I'm also running a relay for transmitting Blossom Nostr events `wss://relay.nosto.re`.
* [Relays I maintain](https://nostrver.se/note/relays-i-maintain)
I really enjoy to tinker with different relays implementations. Relays are the fundamental base layer to let Nostr work.
I'm still sharing my contributions on [https://nostrver.se/](https://nostrver.se/) where I publish my weekly Nostr related stuff I worked on. This website is built with Drupal where I use the Nostr Simple Publish and Nostr long-form content NIP-23 modules to crosspost the notes and long-form content to the Nostr network (like this piece of content you're reading).

## The Nostr is the people
Just like the web, the web is people: [https://www.youtube.com/watch?v=WCgvkslCzTo](https://www.youtube.com/watch?v=WCgvkslCzTo)
> the people on nostr are some of the smartest and coolest i’ve ever got to know. who cares if it doesn’t take over the world. It’s done more than i could ever ask for. - [@jb55](nostr:note1fsfqja9kkvzuhe5yckff3gkkeqe7upxqljg2g4nkjzp5u9y7t25qx43uch)
Here are some Nostriches who I'm happy to have met and who influenced my journey in Nostr in a positive way.
* Jurjen
* Bitpopart
* Arjen
* Jeroen
* Alex Gleason
* Arnold Lubach
* Nathan Day
* Constant
* fiatjaf
* Sync
## Coming year
Generally I will continue doing what I've done last year. Besides the time I spent on Nostr stuff, I'm also very busy with Drupal related work for my customers. I hope I can get the opportunity to work on a paid client project related to Nostr. It will be even better when I can combine my Drupal expertise with Nostr for projects paid by customers.
### Building a new Nostr application
When I look at my Nostr backlog where I just put everything in with ideas and notes, there are quite some interesting concepts there for building new Nostr applications. Filtering out, I think these three are the most exciting ones:
* nEcho, a micro app for optimizing your reach via Nostr (NIP-65)
* Nostrides.cc platform where you can share Nostr activity events (NIP-113)
* A child-friendly video web app with parent-curated content (NIP-71)
### Nostr & Drupal
When working out a new idea for a Nostr client, I'm trying to combine my expertises into one solution. That's why I also build and maintain some Nostr contrib modules for Drupal.
* [Nostr Simple Publish](https://www.drupal.org/project/nostr_simple_publish)
Drupal module to cross-post notes from Drupal to Nostr
* [Nostr long-form content NIP-23](https://www.drupal.org/project/nostr_content_nip23)
Drupal module to cross-post Markdown formatted content from Drupal to Nostr
* [Nostr internet identifier NIP-05](https://www.drupal.org/project/nostr_id_nip05)
Drupal module to setup Nostr internet identifier addresses with Drupal.
* [Nostr NDK](https://drupal.org/project/nostr_dev_kit)
Includes the Javascript library Nostr Dev Kit (NDK) in a Drupal project.
One of my (very) ambitious goals is to build a Drupal powered Nostr (website) package with the following main features:
* Able to login into Drupal with your Nostr keypair
* Cross-post content to the Nostr network
* Fetch your Nostr content from the Nostr content
* Serve as a content management system (CMS) for your Nostr events
* Serve as a framework to build a hybrid Nostr web application
* Run and maintain a Nostr relay with custom policies
* Usable as a feature rich progressive web app
* Use it as a remote signer
These are just some random ideas as my Nostr + Drupal backlog is way longer than this.
### Nostr-PHP
With all the newly added and continues being updated NIPs in the protocol, this helper library will never be finished. As the sole maintainer of this library I would like to invite others to join as a maintainer or just be a contributor to the library. PHP is big on the web, but there are not many PHP developers active yet using Nostr. Also PHP as a programming language is really pushing forward keeping up with the latest innovations.
### Grow Nostr outside the Bitcoin community
We are working out a submission to host a Nostr stand at FOSDEM 2025. If approved, it will be the first time (as far as I know) that Nostr could be present at a conference outside the context of Bitcoin. The audience at FOSDEM is mostly technical oriented, so I'm really curious what type of feedback we will receive.
Let's finish this article with some random Nostr photos from last year. Cheers!







-

@ 06639a38:655f8f71
2024-10-18 09:28:58
* Worked on the [https://nostr-php.dev](https://nostr-php.dev) docs
* [Introduction](https://nostr-php.dev/introduction)
* [Request events](https://nostr-php.dev/guides/request-events)
* [Publish event](https://nostr-php.dev/guides/publish-event)
* Discussed a FOSDEM stand application with Jurjen and Tanja to attend that conference with Nostr
* Release version `1.4.2` of Nostr-PHP
* [https://github.com/nostrver-se/nostr-php/releases/tag/1.4.2](https://github.com/nostrver-se/nostr-php/releases/tag/1.4.2)
* Pre-release `2.0.0-alpha1`
* [https://github.com/nostrver-se/nostr-php/releases/tag/2.0.0-alpha1](https://github.com/nostrver-se/nostr-php/releases/tag/2.0.0-alpha1)
-

@ 06639a38:655f8f71
2024-10-18 08:12:43
### Week 40
* Added a page with my research findings around async concurrent websocket requests: [https://nostr-php.dev/references/async-concurrent-requests](https://nostr-php.dev/references/async-concurrent-requests)
### Week 41
I attended the Nostrdam meetup and helped as a volunteer at the Nostr booth at the Bitcoin Amsterdam 2024 conference. Here are some photo's:


I also wrote down my personal learned lessons from this expierence: [https://nostrver.se/note/my-learned-nostr-lessons-nostr-booth-bitcoin-amsterdam-2024](https://nostrver.se/note/my-learned-nostr-lessons-nostr-booth-bitcoin-amsterdam-2024)
-

@ 5e5fc143:393d5a2c
2024-10-11 22:26:08
Just revisiting some quick tips for #newbies #pow #public #blockchain users only.
if you just getting started with bitcoin or any pow crypto coins or been using or storing them for a while, you not must forget the roots and fundamentals.
Hot Wallet — It gets connected to live internet at some point in time essentially to sign / send a tx i.e. spending transaction — exposes the private key of the address from in the process
Cold Wallet — It never ever gets connected or online and can always keep receiving inbound amounts
Paper wallets are best n cheapest form of cold wallet that can used once n thrown away.
#Cold wallets need to either “import”ed or “sweep”ed in order to used or spend — https://coinsutra.com/private-key-import-vs-sweep-difference/

Any thin #wallet is always dependent on connectivity to live up2date node server where-as self-sufficient qt / cli wallet takes a while to sync up to latest block height in order to be usable.
Beginners should always resist the attraction of quick and fast — thin n 3rd party wallets and always start a long learning journey of core wallets of any coin — either “qt” GUI wallet or command line “coin-cli” wallet
Almost all #proofofwork #blockchains i.e. #POW has #node #wallet - everyone who use support he #public #blockchain secures own you coin value
You can run fullnode either on clearnet or over onion 🧅 #BTC has >55% of nodes running in onion out of total 15000+ live fullnodes and 50000+ bitcoincore wallets around blockheight 777000 . Other notable pow chains are #LTC #RVN and rest are babychains for now !
Always delete hot wallet to test practice restoration before sending any large refunds to it to be safe.
Large funds are always best to keep in self custody node wallets rare n occasional use
Final word — Cannot see private key 🔑 or seed 🌱 in any wallet means not your coin. 😲
Use wallet which u learn or understand best only
That’s all for now n Thank you 🙏 ! ⚡️ https://getalby.com/p/captjack ⚡️
Some Cold wallet nostr posts
nostr:note1p6ke5wqshgxtfzj5de3u04hejl2c5ygj8xk8ex6fqdsg29jmt33qnx57y2
nostr:note1rse0l220quur6vfx0htje94ezecjj03y6j7lguwl09fmvmpt6g3q0cg7yw
nostr:note1q5w8dyjuqc7sz7ygl97y0ztv6sal2hm4yrf5nmur2tkz9lq2wx9qcjw90q
some nostr specific lightning ⚡️ Layer2 wallets with blockchain mainnet option
nostr:naddr1qqsky6t5vdhkjm3qd35kw6r5de5kueeqf38zqampd3kx2apqdehhxarjqyv8wue69uhkummnw3e8qun00puju6t08genxven9uqkvamnwvaz7tmxd9k8getj9ehx7um5wgh8w6twv5hkuur4vgchgefsw4a8xdnkdgerjatddfshsmr3w93hgwpjdgu8zdnswpuk2enj0pcnqdnydpersepkwpm8wenpw3nkkut2d44xwams8a38ymmpv33kzum58468yat9qyt8wumn8ghj7un9d3shjtngv9kkuet59e5k7tczyqvq5m2zcltylrpetrvazrw45sgha24va288lxq8s8562vfkeatfxqcyqqq823ckqlhc8
related blog post
nostr:naddr1qqxnzd3cxyenjv3c8qmr2v34qy88wumn8ghj7mn0wvhxcmmv9uq3zamnwvaz7tmwdaehgu3wwa5kuef0qydhwumn8ghj7mn0wd68ytn4wdjkcetnwdeks6t59e3k7tczyp6x5fz66g2wd9ffu4zwlzjzwek9t7mqk7w0qzksvsys2qm63k9ngqcyqqq823cpdfq87
-

@ 06639a38:655f8f71
2024-09-17 21:13:15
* Some small updates at [nostr-php.dev](http://nostr-php.dev)
* [https://njump.me/nevent1qvzqqqqqqypzqrwzmjc5mz0efw9pty8p0r5lhjew789shct452pcgtuac4rc0qq6qqsgvtfguvqv9d64jyeuzfmvzxapz5gfk3wdcltmsq7cq7z775n3fqqan6ne3](https://njump.me/nevent1qvzqqqqqqypzqrwzmjc5mz0efw9pty8p0r5lhjew789shct452pcgtuac4rc0qq6qqsgvtfguvqv9d64jyeuzfmvzxapz5gfk3wdcltmsq7cq7z775n3fqqan6ne3)
* Build a NIP-52 RSVP to Calendar Event Vue / Javascript component which is live on [https://nostrdam.com](https://nostrdam.com)
* My Telegram bot Botstix returns my latest note from my personal relay (using the PHP Framework Symfony for this)
* [https://njump.me/nevent1qvzqqqqqqypzqpnrnguxe8qszsshvgkvhn6qjzxy7xsvx03rlrtddr62haj4lrm3qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgewaehxw309ahx7um5wgh8xetzv9ehg6tc9ejx2a30qqs8z8ufkgnpejpalpwep7tzu4j53a5skd2tn6vkpeg3qh7h6as23jcx52ufe](https://njump.me/nevent1qvzqqqqqqypzqpnrnguxe8qszsshvgkvhn6qjzxy7xsvx03rlrtddr62haj4lrm3qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgewaehxw309ahx7um5wgh8xetzv9ehg6tc9ejx2a30qqs8z8ufkgnpejpalpwep7tzu4j53a5skd2tn6vkpeg3qh7h6as23jcx52ufe)
* Fix issue were Nostr-PHP was installed as a dev dependency (which it is not) [https://github.com/nostrver-se/nostr-php/issues/61](https://github.com/nostrver-se/nostr-php/issues/61)
* Raising sats at Geyser for our Nostr Booth initiative: [https://geyser.fund/project/nostrboothbitcoinamsterdam/](https://geyser.fund/project/nostrboothbitcoinamsterdam/)
* Proof of concept async requests with Http/Guzzle using this package [https://github.com/valtzu/guzzle-websocket-middleware](https://github.com/valtzu/guzzle-websocket-middleware)
* Code snippet: [https://gist.github.com/Sebastix/857478b161af8074a5cfc22af13be54e](https://gist.github.com/Sebastix/857478b161af8074a5cfc22af13be54e)
-

@ 06639a38:655f8f71
2024-09-16 14:24:00
## Week 35
* Wrote my first (out of four) 90-day reports for OpenSats [https://nostrver.se/blog/nostr-php-90-day-opensats-report-1-may-july-2024](https://nostrver.se/blog/nostr-php-90-day-opensats-report-1-may-july-2024)
* Found this 💎 package for doing async requests with websockets and Guzzle 😎 [https://github.com/valtzu/guzzle-websocket-middleware](https://github.com/valtzu/guzzle-websocket-middleware)
* Exploring the use of `ngit` working with NIP-34 [https://gitworkshop.dev/r/naddr1qqykummnw3ez6urgwqqs6amnwvaz7tmwdaejumr0dspzqpnrnguxe8qszsshvgkvhn6qjzxy7xsvx03rlrtddr62haj4lrm3qvzqqqrhnyyx5cnk](https://gitworkshop.dev/r/naddr1qqykummnw3ez6urgwqqs6amnwvaz7tmwdaejumr0dspzqpnrnguxe8qszsshvgkvhn6qjzxy7xsvx03rlrtddr62haj4lrm3qvzqqqrhnyyx5cnk)
* Nostr-PHP release `1.4.0` with relay response classes [https://github.com/nostrver-se/nostr-php/releases/tag/1.4.0](https://github.com/nostrver-se/nostr-php/releases/tag/1.4.0)
## Week 36

* I placed a Nostr billboard ad besides the highway here
* Received a ton of interactions / feedback through Nostr on my notes sharing this!
* As a result, a fundraiser started (and got fully funded after a couple of days) for doing the same in Brasil: [https://geyser.fund/project/nostrifybrazil](https://geyser.fund/project/nostrifybrazil)
* Repo with all the assets: [https://gitlab.com/sebastix-group/nostr/nostr-ads](https://gitlab.com/sebastix-group/nostr/nostr-ads)

* Alex Gleason and his wife were are couple of days in Amsterdam, so I drove to the city for a meetup.
* [https://njump.me/nevent1qvzqqqqqqypzqprpljlvcnpnw3pejvkkhrc3y6wvmd7vjuad0fg2ud3dky66gaxaqydhwumn8ghj7emvv4shxmmwv96x7u3wv3jhvtmjv4kxz7gprpmhxue69uhkummnv3exjan99eshqup0wfjkccteqqsv0u9n3vm84ffgm4cfkxkh338uy89xmpqvy97gxzlunk4g70gmy3gh75csl](https://njump.me/nevent1qvzqqqqqqypzqprpljlvcnpnw3pejvkkhrc3y6wvmd7vjuad0fg2ud3dky66gaxaqydhwumn8ghj7emvv4shxmmwv96x7u3wv3jhvtmjv4kxz7gprpmhxue69uhkummnv3exjan99eshqup0wfjkccteqqsv0u9n3vm84ffgm4cfkxkh338uy89xmpqvy97gxzlunk4g70gmy3gh75csl)
* Did not write much code for the Nostr-PHP library, but started to work on a proof-of-concept of executing async requests with [guzzle-websocket-middleware](https://github.com/valtzu/guzzle-websocket-middleware). Also bookmarked some links I need to read for doing concurrency with Guzzle.
* [https://gorannikolovski.com/blog/asynchronous-and-concurrent-http-requests-in-php](https://gorannikolovski.com/blog/asynchronous-and-concurrent-http-requests-in-php)
* [https://docs.guzzlephp.org/en/stable/quickstart.html#concurrent-requests](https://docs.guzzlephp.org/en/stable/quickstart.html#concurrent-requests)
-

@ 06639a38:655f8f71
2024-08-16 21:20:35
* Updated the references documentation [here](https://github.com/nostrver-se/nostr-php/blob/main/REFERENCES.md) and [here](https://nostr-php.dev/references/)
* Improved relay responses and added backwards compability for the used `CommandResult` class
* Added RelayResponses according to the logic described in NIP-01 using this [PR#59](https://github.com/nostrver-se/nostr-php/pull/59) from [kriptonix](https://github.com/kriptonix) as a base.
* `OK` response
* `ERROR` response
* `CLOSE` response
* `EVENT` response
* `EOSE` response
* `NOTICE` response
* Partly integrated NIP-42 with an `AUTH` relay response
* Added the documentation page 'relay responses' on [nostr-php.dev](http://nostr-php.dev)
* The screenshot is quite funny describing Nostr having PHP vibes comparing it with the ATProtocol from Bluesky \[[source](https://bsky.app/profile/bmann.ca/post/3kzcyksddj22u)\].
-

@ 06639a38:655f8f71
2024-04-22 11:41:35
### *Further development of the Nostr helper library for PHP*
## Problem
> 👉 There is no easy way for PHP developers to integrate Nostr in PHP powered websites and applications.
**To let the adoption of Nostr grow, it needs to be integrated into the web as it exists today with the many PHP powered websites and applications.**
*But wait, isn’t PHP dead?*
* [Why PHP?](https://youtu.be/x7OsH3bH6DA)
* [Why you should use PHP](https://youtu.be/ZDZDvMB-O74)
*Source: [https://stitcher.io/blog/php-in-2023](https://stitcher.io/blog/php-in-2023)*
Nope, it’s still alive and kicking.
- PHP is used by 76.7% of all websites
- Many FOSS projects are built with PHP
- With the age of 28 years, PHP probably exist the next 28 years (Lindy effect)
- Most used CMSs are built with PHP and used by many organizations and individuals
*More stats on PHP: [https://w3techs.com/technologies/details/pl-php](https://w3techs.com/technologies/details/pl-php)*
When there is useful and powerful Nostr integration with PHP, developers building PHP powered applications and platforms will create a springboard towards more Nostr adoption.
##### WordPress, Drupal and other PHP powered platforms
I advocate that Nostr needs integration with existing well-built and well-adopted tools. Drupal is a leading Web Content Management System that powers some of the largest websites and is one of those tools where Nostr can really shine. If we look even broader, there are many existing PHP powered applications on the web which can benefit with a Nostr integration, such as WordPress.
## nostr-php package
### *A Nostr helper library for PHP*
There are not many PHP packages for Nostr yet: [https://packagist.org/?query=nostr](https://packagist.org/?query=nostr). When all those PHP websites have an easier way to integrate Nostr with an existing package, possible new Nostr integrations will increase significantly.
I'm applying for a grant to cover development for nostr-php for one year.
Objective: **develop and maintain a PHP helper library and distribute this as a package for PHP developers.**
> [nostr-php](https://github.com/swentel/nostr-php) - a PHP helper library for Nostr integration
> — 6 [watchers](https://github.com/swentel/nostr-php/watchers)
> — 13 [forks](https://github.com/swentel/nostr-php/forks)
> — 37 [stars](https://github.com/swentel/nostr-php/stargazers)
> — 142 [installs](https://packagist.org/packages/swentel/nostr-php/stats)
> Who’s using the library? See [REFERENCES.md](https://github.com/swentel/nostr-php/blob/main/REFERENCES.md).
Early 2023 the library was built by Kristof (Swentel) who is also a Drupal developer like me. We didn’t know each other before then, but we got in touch while we were both working on a Drupal contrib module for Nostr. He was working on [Nostr Simple Publish](https://www.drupal.org/project/nostr_simple_publish) and I on [Nostr Internet Identifier NIP-05](https://www.drupal.org/project/nostr_id_nip05).
In June 2023 Kristof announced ([here](https://www.drupal.org/project/nostr_simple_publish/issues/3367500) and [here](https://github.com/swentel/nostr-php/issues/32)) he won’t continue with further development of nostr-php and the Drupal modules, so I volunteered to take over the maintenance. At this moment I'm the only active maintainer.
## Deliverables / roadmap
- See [roadmap](https://github.com/swentel/nostr-php?tab=readme-ov-file#roadmap) in Github repository.
- Demo (SPA) environment built with Symfony & Turbo using the nostr-php library.
- Weekly reports on [nostrver.se](http://nostrver.se) (Markdown formatted blog, built with Drupal)
In these reports I'll share the achievements of last week and a plan with actions to work on in the coming week. When this content is created on the site, also events kind 1 and 30023 will be published to the Nostr network for generating exposure.
- Submit a keynote presentation proposal about why and how Drupal can adopt Nostr for [DrupalJam](https://drupaljam.nl/) in The Netherlands (12-06-2024).
## Built for who?
#### → **PHP (framework) developers**
Developers working with Symfony, Laravel, Zend, Yii, CodeIgniter, CakePHP, WordPress, ReactPHP, Drupal, TYPO3, CraftCMS, BackdropCMS, Grav, Magento, NextCloud and many other less known PHP powered frameworks and systems. They can use the nostr-php library in their project to integrate Nostr.
#### **→ PHP powered platforms**
What are the current PHP powered platforms nowadays which are likely to replace their closed social layer with an open networking protocol?
- Etsy
- [Kbin](https://kbin.pub/) (FOSS fediverse Reddit-clone app)
- [Pixelfed](https://pixelfed.org/) (FOSS fediverse Instagram-clone app)
- [Flarum](https://flarum.org/)
- [BookStack](https://www.bookstackapp.com/)
- [OwnCloud](https://owncloud.com/) & NextCloud
#### Looking forward: Nostr empowered Drupal initiative
While developing the nostr-php library, I’m also developing Nostr contrib modules to build Nostr embedded Drupal applications. After the initial development phase of nostr-php, this will be the way I’m heading in further developing new and existing Nostr contrib modules for Drupal.
> 💡 **What I’m currently building for Drupal?**
> → Module which enables to publish long-form content from your Drupal website
> → Module which enables to publish short text notes from your Drupal website
> → Module to register / authorize your Nostr account with a user entity on a Drupal website
> → Module to manage Nostr internet identifiers with user entities on a Drupal website
On these links you can read a concept for a grant submission for a Nostr empowered Drupal / PHP initiative and further thoughts how to integrate Nostr into Drupal:
→ [Nostr empowered PHP Drupal initiative](https://sebastix.notion.site/Nostr-empowered-PHP-Drupal-initiative-d2954f43116045d0aee6cc7ea3ad5055)
→ 📝 [How could Drupal adopt Nostr?](https://sebastix.nl/blog/how-could-drupal-adopt-nostr/)
## The team
**Sebastian Hagens** 🇳🇱
I am Sebastian Hagens (1986) living and working in The Netherlands as a fullstack webdeveloper and tech consultant. Father of two little daughters. Working 4 days in a week, self-employed (independent developer) from a small office in an old monastery. I have a set of loyal clients but I also work as a freelancer from time to time. I started to build websites in 1999 with HTML, CSS, JavaScript and PHP.
In 2010 I graduated with a bachelor of design at [St.Joost School of Arts and Design](https://stjoost.nl/) with a digital project “root:\ a digital lifeline” around reclaiming your social media data and content.
In 2014 I started to work with Drupal and this tool became my most favorite tool for building solutions for ambitious and complex goals. It feels like a Swiss knife for building many types of web-based solutions.
* Gitlab: [https://gitlab.com/sebastix](https://gitlab.com/sebastix)
* Github: [https://github.com/sebastix](https://github.com/sebastix)
* Drupal profile: [https://www.drupal.org/u/sebastian-hagens](https://www.drupal.org/u/sebastian-hagens)
* Website: [https://sebastix.nl](https://sebastix.nl)
* Nostr: [https://njump.me/sebastian@sebastix.dev](https://njump.me/sebastian@sebastix.dev)
I would love to see more contributors on the project, so there are some places where we can gather and discuss topics:
- Telegram group [nostr-php](https://t.me/nostr_php)
- Drupal Slack channel [#nostr](https://drupal.slack.com/archives/C063ASS2M0B) (thanks to [Shawn](nostr:npub1lvfkd274unyj4z54q7gmcuk4r00zjx5r24wt933f4yh7m4uqdzkqnmukxq))
## Other Nostr stuff and projects
These are some other project I'm working on as well, which are Nostr related in someway.
* [Nuxstr](https:://nuxstr.nostrver.se)
* [Root.app / personalgraph.me](https://personalgraph.me)
* [cchs.social](https://cchs.social)
* [Echostr](https://github.com/Sebastix/echostr)
* [CCNS](https://ccns.sebastix.dev)
More contributions can be found on [https://nostrver.se](https://nostrver.se/).
- [Why Nostr resonates](https://sebastix.nl/blog/why-nostr-resonates/)
**Sebastian Hagens**
📨 info@sebastix.nl
☎️ +31 6 41712778
This content is also published on https://sebastix.notion.site/OpenSats-application-for-Nostr-helper-library-for-PHP-8fb6bd7ac4214fbaaa397b8671170160
-

@ e771af0b:8e8ed66f
2024-04-19 22:29:43
Have you ever seen a relay and out of curiosity visited the https canonical of a relay by swapping out the `wss` with `https`? I sure have, and I believe others have too. When I ran `https://nostr.sandwich.farm` in late 2022/2023, I had thousands of hits to my relay's https canonical. Since then, I've dreamed of improving the look and feel of these generic default _landing pages_.
With the release of [myrelay.page v0.2](https://github.com/sandwichfarm/myrelay.page), relays can now host their own customizable micro-client at their _https canonical_.
Transform your relay's landing page from this:

or this:

to something _like_ this:

I say "something _like_ this" because each page is customizable at runtime via the page itself.
# In a nutshell
[myrelay.page](https://github.com/sandwichfarm/myrelay.page) is a self-configuring, Client-Side Rendered (CSR) micro-client specifically built to be hosted at relay canonicals, customizable at runtime via NIP-78. Check out a [live example](https://lunchbox.sandwich.farm).
# Features:
1. Dark or light theme
2. Join relay
3. Relay operator profile and feed
4. Zap relay operator
5. See people you follow who are on the relay
6. Customizable by the relay operator
- Enable/disable blocks
- Sort blocks
- Add HTML blocks
- Add image blocks
- Add markdown blocks
- Add feed blocks, with two layouts (grid/list) and customizable filters.
**You can find a full list of features complete and todo [here](https://github.com/sandwichfarm/myrelay.page?tab=readme-ov-file#todo)**
# Why I created myrelay.page
For several different reasons.
Firstly, the default, bland relay pages always seemed like a missed opportunity. I jotted down an idea to build a relay micro-client in early January 2023, but never had the time to start it.
Next, I've been ramping up the refactor of [nostr.watch](https://nostr.watch) and first need to catch up on client-side technologies and validate a few of my ideas. To do this, I have been conducting short research & development projects to prepare and validate ideas before integrating them into an app I intend to support long-term. One of those R&D projects is [myrelay.page](https://github.com/sandwichfarm/myrelay.page).
Additionally, I wanted to explore NIP-78 a bit more, a NIP that came into fruition after a conversation I had with @fiatjaf on February 23rd, 2023. It stemmed from the desire to store application-specific data for app customization. I have seen clients use NIP-78, but from what I've seen, their implementations are limited and do not demonstrate the full potential of NIP-78. _There's more on NIP-78 towards the end of this article_
The convergence of these needs and ideas, in addition to having an itch I needed to scratch, resulted in the creation of myrelay.page.
> *_Could be wrong, please let me know in the comments if you have examples of nostr clients that utilize NIP-78 for propagating customizations to other visitors_.
# Editor Flow
Now I'm going to give you a brief example of the Editor Flow on myrelay.page. There's a lot that isn't covered here, but I want to be as brief as possible.
_Note: [myrelay.page](https://github.com/sandwichfarm/myrelay.page) is alpha, there are bugs, quality of life issues and things are far from perfect._
## Login
> Presently, myrelay.page only supports NIP-07 authentication, but other authentication methods will be implemented at a later date.
>In order to customize your page, you need to have a **valid NIP-11** document that provides a valid **hex** `pubkey` value that is the same as the key you use to login.

## Click "Edit"

## Add a block
For brevity, I'm going to add a markdown block

## Configure the block
Add a title to the block and a sentence with markdown syntax.

## Publish the configuration
Click publish and confirm the event, once it's been published to relays the page will refresh.
_Note: Again it's alpha, so the page doesn't refresh after a few seconds, the publish probably failed. Press publish until it refreshes. Error handling here will improve with time._
## Confirm state persistence
After reload, you should see your block persisted. Anyone who visits your page will see your newly configured page. Big caveat: Given the blessing of relays who store your configuration note, if your configuration cannot be found or you cannot connect to your relays, visitors will only see your relay's NIP-11.

# Interested?
[myrelay.page](https://github.com/sandwichfarm/myrelay.page) is alpha and only has two releases, so if you want to be an early adopter, you'll need the skillset and patience of an early adopter. That said, as long as you have some basic development and sysadmin skills as well as understand your reverse-proxy of choice, it's a quick, easy and low-risk side project that can be completed in about 20 minutes.
## 1. Build
`yarn build` or `npm run build` or `pnpm run build` (note: I had issues with pnpm and cannot guarantee they are resolved!)
## 2. Deploy
Move the contents of `build` folder to your relay server (or another server that you can reverse-proxy to from your relay)
## 3. Update your reverse-proxy configuration
You'll need to split your relay traffic from the http traffic, this ranges from easy to difficult, depending on your server of choice.
- **caddy**: By far the easiest, see an example configuration for strfry [here](https://github.com/sandwichfarm/myrelay.page/blob/main/caddy/strfry/Caddyfile) (easily adapted by those with experience to other relay software)
- **nginx**: A little more stubborn, here's the [most recent nginx config I got to work](https://gist.github.com/dskvr/4ea1937bd5c2161249146bc1edd2682e). You'll need to serve the static site from an internal port (`8080` in the aforementioned nginx conf)
- **haproxy**: Should be easier than nginx or maybe even caddy, haven't tried yet.
- **no reverse-proxy**: **shrugs**
If any of that's over your head, I'll be providing detailed guides for various deployment shapes within the next few weeks.
# Exploring NIP-78
One of the special things about NIP-78 is that it is application specific, meaning, you don't need to conform to any existing NIP to make magic happen. Granted there are limits to this, as interoperability reigns supreme on nostr. However, there are many use cases where interoperability is not particularly desirable nor beneficial. It doesn't change the care needed to craft events, but it does enable a bunch of unique opportunities.
1. A nostr client that is fully configurable and customized by the user.
2. A nostr powered CMS that can be edited entirely on the client-side.
3. Any use case where an application has special functionality or complex data structures that present no benefit in the context of interoperability (since they are "Application Specific").
# Final thoughts
I was surprised at how quickly I was able to get [myrelay.page](https://github.com/sandwichfarm/myrelay.page) customizable and loading within an acceptable timeframe; `NIP-11`, the operator's `NIP-65` and the _myrelay.page_ `NIP-78` events all need to be fetched before the page is hydrated! While there is much to do around optimization, progressive page-loading, and general functionality, I'm very happy with the outcome of this short side project.
I'll be shifting my focus over to another micro-app to validate a few concepts, and then on to the next [nostr.watch](https://nostr.watch). Rebuilding nostr.watch has been a high-priority item since shortly after Jack lit a flame under nostr in late 2022, but due to personal circumstances in 2023, I was unable to tackle it. Thanks to [@opensats](https://opensats.org/) I am able to realize my ideas and explore ideas that have been keeping me up at night for a year or more.
Also, if you're a relay developer and are curious about making it easier for developers to deploy [myrelay.page](https://github.com/sandwichfarm/myrelay.page), get in touch.
Next article will likely be about the micro-app I briefly mentioned and [nostr.watch](https://nostr.watch). Until then, be well.
-

@ 06639a38:655f8f71
2024-04-12 09:46:13
_Deep Questions podcast 295 with Cal Newport_
I’m a fan of Cal Newport and the content he creates. It’s mostly about how to keep your (digital) distractions under control by using different deep-work methods. It’s basicly a way of living by making your day a good day.
Link to view the podcast: https://piped.r4fo.com/watch?v=KcQMt9HabqA
The part I would like to highlight is discussed in the first 32 minutes.
> _In this episode Cal takes a closer look at a growing trend of artists quitting social media and instead reverting to old fashioned websites. Are these acts of principled sacrifice or a sustainable way to be creative online? Cal argues for the latter, showing how the internet without social media curation algorithms can be a place of rich discovery and audience building. He then takes questions on similar topics and ends by playing a few rounds of “deep or crazy” during the final segment._

Some video’s which are part of this revolt:
- Deleting social media and making a website: https://piped.r4fo.com/watch?v=tV6BbPTN5PQ
- Why I don’t post anymore: https://piped.r4fo.com/watch?v=W3h9gV_z8OM&t=0
- I deleted all my social media and made a website: https://piped.r4fo.com/watch?v=r0RqucKwIcw
Let me try to summarize some important parts of Cal his analysis.
What are the main reasons why artists are stopping with social media?
1. Social media is controlling and reducing the quality of their art
2. The algorithms are rewarding sameness and not uniqueness
3. Social media is making them unhappy
4. They didn’t get into social media for social validation
Cal dives shortly into the history of the internet and the discoverability challenges / problems with the web (networks of networks of networks). He also is mentioning the value of serendipity discovery mechanisms.
👀 **At 16m45s Cal is discussing and drawing the concept of a distributed trust model, this is where the nostreness kicks in!** This is a clip worth checking out from 22m28 till 23m22s of the podcast:
https://shares.sebastix.dev/mYIzuTLC.mp4
Link to the show and all notes: https://www.thedeeplife.com/podcasts/episodes/ep-295-artists-revolt-against-social-media/
-

@ 5e5fc143:393d5a2c
2024-01-04 12:53:29
Nostr is censorship resistant freedom protocol !!!
OBJECTIVE:
In nutshell this is jumpstart guide for fresh newbie who wanna try out nostr and also for anyone who wanna spread the info in other social media.
HOWTO: **Dummies guide to start using nostr**
Open browser - > visit iris.to or snort.social
Click on Name or New Account – follow steps
That’s it – you are in nostr now -- can browse most notes n indepth guides about nostr now and also post note / comment / ask something #asknostr
(save n backup you nsec priv key carefully or make additional one later)
<video width="380" height="250" autoplay>
<source src="https://video.nostr.build/f7fccb5f57b3439e3fe45338792f3616118eb65949c3a7dc0bfce6f5a2942b82.mp4" type="video/mp4">
</video>
#video #tutorial #onboarding normies 2 nostr
Get a mobile app Amethyst or Getcurrent.io or Primal later,
Get a NIP05 profile checker,
Get browser extension Alby wallet
**Once you become advanced user – explore, search and change as needed as you learn more**
Remember:
Nobody can block/suspend/delete/remove/ban you in nostr !!!
Relays servers are important. Also ZAPs are important
https://habla.news/tony/welcome-to-nostr
https://habla.news/u/captjack@nostrich.love/1681579356819
Any expert or power user nostrich volunteer please cut/paste text, insert screenshot in any other social media you like and think is good for nostr. mastadoon/fediverse/tiktok/meta/wechat/weibo/...

https://justpaste.it/arqgs
https://primal.net/e/note19v0zcp6rnwnry9vjp028qrd37zjcx3e6fpeu3pa7dm8mq48x6a7seye5g8
https://iris.to/note19v0zcp6rnwnry9vjp028qrd37zjcx3e6fpeu3pa7dm8mq48x6a7seye5g8
OPTIONAL Lightning Wallet⚡️ :
🐝 GetAlby🐝 is easiest n also power LN wallet to learn n use
Open browser - > visit https://getalby.com/auth/users/new
Choose a unique username and strongpaswrd (save / backup elsewhere properly)
That's it - you now have Bitcoin Lightning wallet LN-BTC and you now receive and send SATS Play with it learn more about advance features of Alby. Also now can use nostr ⚡️ZAPs ⚡️
Those using PC/Mac can install "getalby browser extension" addon firefox/safari/kiwi preferred.

On mobile install bluewallet and setup new LNWallet->Getalby LNDHub

Also Move medium to large funds to self-custody Liquid BTC wallet like Sideswap or Aqua or Marina
Move any extra large funds to BTC mainnet bech32 seqwit address wallet if not spending soon as store-of-value ignoring high mainnet gas fee.
Thank you ! 💜🤙 Welcome to Nostr 💜🤙
-

@ 06639a38:655f8f71
2024-01-02 15:08:15
This seems like a obvious no-brainer, but the current social media platforms do no feed our best interests based on commons. It's your attention that's being harvested for their own interests. Let me outline why enjoyable social networking should work based on commons.
> commonality - the fact of sharing interests, experiences or other characteristics with someone or something
For social networking I would like to separate commons in the following three kinds:
1. **Interests**
This can be any topic or hobby you have in common.
2. **Problems**
A question or issue you have in common.
3. **Geo-located / physical**
This can be a certain place or language you have in common.
In real-life you have different type of friends, colleagues, family, business clients etc around certain commons. Based on those contexts, you act different with separate roles.
When you translate those commons to a digital experience, it's not always obvious to separate those roles to all these people. If you're sharing content on Instagram, it can be seen by almost anyone.
This could result in disagreement with someone on an unshared common. A slowly growing problem which the current big social media platforms are squeezing out with their machine powered algorithms for their own profits.
Based on commons you share with someone, maybe you would like to choose a social network application build around one specific common.
## Niche communities
In 2022 I wrote ‘Rather a fediverse than a metaverse’ (in [Dutch](/liever-een-fediverse-dan-een-metaverse)) when I was researching the fediverse. Let me point out some personal commons of mine.
### Child-friendly apps
As a father of two little daughters I would like to use real child-friendly apps when they ask me to view some video for example.
As far as I know, YouTube Kids is the least bad app. The app only works with Google services and a Google account (that's evil). And when in use it's obvious to see the dark-pattern design tricks nudging my kids.
Educative content publishers for children should be aware of this and take the lead with providing content through child-friendly apps. It should be a clear goal for them to make BigTech absolute when it comes to raising our kids.
Another (maybe better) way is to create a community with parents where we can aggregate and curate content for our kids through an app.
### Honda Civic
This is a country-level hobby with other Honda car enthusiasts.
In the early 2000s I was maintaining a Dutch forum with more than 3000 visitors each day. Those were all Honda car lovers and there were many evening we had slow-chats in 'offtopic'.
People who used to be active on fora, moved to Facebook groups and then moved to Instagram where they share their car content and WhatsApp to communicate with each-other.
Why can't we use an app where we can do both?

In 2022, I've built CCHS.social trying to re-invent an online community by aggregating Instagram links with Honda car profiles. Further development on this project staggered from my side.
### Cycling and gravel
This is a local-level hobby where I use a common messaging group chats (WhatsApp urggh!) and Strava. And there is also a club website where you can find the agenda with the next rides.
Can't we aggregate all these content within one app?
### Drupal
The Drupal community is scattered around on different places like Slack, the drupal.org website, mailing-lists and the drupal.community Mastodon instance.
So when I try to find someone to connect with, it's always pretty hard to stay connected because all of those great developers are on a place which seems always far away.
## Niche relays
I know this topic is often discussed by others, but I think there is a real use-case here for niche communities.
With relays filtering specific events on different criteria’s, we can build niche focused apps / clients. Like the niches I mentioned above. I could turn the website CCHS.social into a Nostr client for example. Together with a CCHS relay only accepting content kinds (or npubs) used by the CCHS client.

Or have a look at the [Proudwheels](https://proudwheels.com) (screenshots above) online community mobile app for petrolheads. This is a client-project I’ve worked on as a product owner during the initial development phase in 2021/2022.
## Nostr enables the use of different apps with just one social graph
Last year a lot of Nostr clients are copy-cats build around features. But when you look closer to the client that’s being copied, you could argue when they started it was around one common before they pivoted into a medium used by the mass.
With Nostr, applications can be built around commons and their specific content kinds. This can be built without to the need to rebuild your social connections, because these connections are interoperable.
With those different apps, you have to worry less about sharing content to someone which is not outlined with their commons.
This a somewhat contra-dictional approach, because the most-used Nostr apps are trying to embed all different content kinds nowadays.
**It's still very, very early for Nostr. Could we build apps more around commons with certain content kinds? What do you think?**
-

@ fe2d5cf6:0c59303d
2023-12-04 04:35:44
## Chef's notes
Bitcoin Only Pleb’s #weedbrownies recipe:
Need about a half ounce to an ounce of Vaped weed OR decarbed weed to start. (Look up online how to decarb if you don’t have vaped weed)
Dump that out into a stainless steel sauce pan large enough to hold everything..(stainless or cast iron will do, no non-stick bc you’ll be simmering for a long time and PUFAs are no joke)
Find out how much the brownie box calls for in oil and then add slightly more of that to the pan with the weed. You’ll want to use oil with a high smoke point, I prefer avocado oil (example: If the recipe calls for 1/2 cup of oil, add a little under 2/3 of a cup to the pan with the weed as you will lose some in the next steps)
Cook weed/oil mixture on simmer (very very low heat) for 2-3 hours, let it cool down to room temp when done.
Take a coffee filter and fix it around a drinking glass (might need someone to help you with this next step), pour the weed/oil mix through the coffee filter and let it drip through. This step can get messy, if you’re impatient like me, twist the open mouth of the filter closed and squeeze everything out carefully. Or if you have time let it drip through.
Take that oil and use it as instructed in the brownie mix.
Pop those bad boys in the oven and enjoy when cool. Remember to never “guess” your edible intake. Better to start small.
Love y’all🧡💜
## Details
- ⏲️ Prep time: 3 hours
- 🍳 Cook time: 30 min
- 🍽️ Servings: 10
## Ingredients
- Follow brownie mix ingredients on box after making infused oil
## Directions
1. Bitcoin Only Pleb’s #weedbrownies recipe: Need about a half ounce to an ounce of Vaped weed OR decarbed weed to start. (Look up online how to decarb if you don’t have vaped weed) Dump that out into a stainless steel sauce pan large enough to hold everything..(stainless or cast iron will do, no non-stick bc you’ll be simmering for a long time and PUFAs are no joke) Find out how much the brownie box calls for in oil and then add slightly more of that to the pan with the weed. You’ll want to use oil with a high smoke point, I prefer avocado oil (example: If the recipe calls for 1/2 cup of oil, add a little under 2/3 of a cup to the pan with the weed as you will lose some in the next steps) Cook weed/oil mixture on simmer (very very low heat) for 2-3 hours, let it cool down to room temp when done. Take a coffee filter and fix it around a drinking glass (might need someone to help you with this next step), pour the weed/oil mix through the coffee filter and let it drip through. This step can get messy, if you’re impatient like me, twist the open mouth of the filter closed and squeeze everything out carefully. Or if you have time let it drip through. Take that oil and use it as instructed in the brownie mix. Pop those bad boys in the oven and enjoy when cool. Remember to never “guess” your edible intake. Better to start small. Love y’all🧡💜
-

@ 06639a38:655f8f71
2023-11-29 15:34:41
I'm developing a contrib module for Drupal so you can publish your content entities written with Markdown to any Nostr relay which supports NIP-23. The article will show up on several clients which are displaying the long-form content (kind 30023). These are my favorite clients:
* https://yakihonne.com/
* https://habla.news/
* https://blogstack.io/
Some people call this POSSE - https://indieweb.org/POSSE
> POSSE is an abbreviation for Publish (on your) Own Site, Syndicate Elsewhere, the practice of posting content on your own site first, then publishing copies or sharing links to third parties (like social media silos) with original post links to provide viewers a path to directly interacting with your content.
This is a screenshot of writing this article in the Drupal CMS:

The project page is here: [nostr_content_nip23](https://www.drupal.org/project/nostr_content_nip23).

-

@ 06639a38:655f8f71
2023-10-24 14:57:24
After visiting BTC Amsterdam, my head was full of Nostr and I needed to write down my thoughts on why this protocol resonates. Plus I tried to write it down in a way some of family and friends can understand it (giving them a purpe pill).
---
For me, Nostr resonates with many trends and signals I follow on the internet. Plus, it matches many of my own personal values around online privacy and digital autonomy. Nostr can fix the web in a similar way how bitcoin can fix the money system. And try to image when the two merge together.
For me it makes sense that Nostr will evolve into a future-proof protocol.
## - Nostr clients are ***local-first***
## - ***Data portability*** between clients
## - You really ***own your identity***
## - ***Privacy*** by default
## - ***Permissionless***
## - Going ***trustless***
## - It’s ***easy*** and developer friendly
## - ***Censorship resistance***
## - Nostr is ***agnostic*** and for any data you would like to share
## - Integrating the ***value4value*** model
## - Backed by a ***community***
My full blog explaining each point: https://sebastix.nl/blog/why-nostr-resonates/
---
### It’s still very, very early
Compared to a new discovered territory, we’ve just started building small shelters. The Nostrverse is still very small with maybe 100 builders who are tinkering their way around the protocol. This means new clients and features popup every week. As now, many clients (and relays) are suffering from different performance issues. Most applications out there are doing one thing incredibly well. This means you need to use many different applications to understand and feel the Nostr experience. That’s currently how I’m moving through the Nostrverse. For now that’s ok. We need that friction to innovate and drive discovery. There is no freedom without restrictions. I’m sure the future will bring many more great applications with features which will show a completely new paradigm on how the web can work for us: the individuals.
---
### My quest on contributing to Nostr
As a developer I'm looking for ways how I can contribute to the Nostrverse. Currently I'm maintaining and building on these projects in my spare time.
* [nostr-php](https://github.com/swentel/nostr-php) - a PHP helper library
* Drupal module: [Nostr internet identifier NIP-05](https://www.drupal.org/project/nostr_id_nip05)
* Drupal module: [Nostr Simple Publish](https://www.drupal.org/project/nostr_simple_publish)
* Drupal module: [Nostr long-form content NIP-23](https://www.drupal.org/project/nostr_content_nip23)
I also have some other technical ideas:
* how Nostr people and applications can benefit more from NIP-65 (many people are loosing their contacts if they start using more than one application)
* how Drupal can be used as a RMS (relay management system for e.g. moderating content) on existing relay implementations
If you would like help me out with my quest, please reach out to me on Nostr. My pubkey is
`npub1qe3e5wrvnsgpggtkytxteaqfprz0rgxr8c3l34kk3a9t7e2l3acslezefe` or search for my Nostr handle `sebastian@sebastix.dev`.