Oddbean new post about | logout
 Pet project of the day: Oracolo.
It is a minimalist Nostr blog that consists of a *single* ~140K html file. Personalize it with your npub and upload it where do you like, it just works. It also runs without a web server, so if you don't have a web site you can simply send it via email/dm to showcase your tales.
https://image.nostr.build/7ee63d88f54df0c0b4ee0c37dc19c78141ee27d0154eefaff303156cb1987d0a.jpg

Examples:
https://raw.githack.com/dtonon/oracolo/master/examples/opensats.html
https://raw.githack.com/dtonon/oracolo/master/examples/hodlbod.html
https://raw.githack.com/dtonon/oracolo/master/examples/fiatjaf.html

Source and how-to: https://github.com/dtonon/oracolo

Take it as a didactic experiment, it's no production ready, indeed it has some limitations (no SEO friendly structure), but can work as a temporary solution (e.g. coming soon and parking pages), and it is still an example of how easy it is to create a Nostr-powered blog and deploy it on a low-tech infrastructure. 
 That’s really interesting! Share it on HN 🤗 they like this sort of self hosted blog stuff 
 Thanks, also for the suggestion! 
 seems like a good way to share a resume? 

nicely done.  
 Without using a web site? It should work! 
 @Gigi if I'm not mistaken you are interested in something like this, working toward a simple blog solution powered by Nostr 
 良い 
 I reactivated my account because this showed up in my rss feed this morning. I just hafta hack on it and see if can be added to `publi.sh`.

https://m.primal.net/IJUq.gif 

nostr:note1x83laqn6vmglf7fj99aef2kz6stzvlqursrj7d9f6m6dfl5v9zfq2j65lw  
 Hey, you have "mpm" instead of "npm" on oracolo's repo README.md 
 Oh, this should be a clue that I hate npm haha
Thank you, fixed 
 I love stuff like this

Single html files ftw

nostr:nevent1qqsrrcl7sfaxd505lyezj7u54tpdg93x0swpcpe0xj5adax5l6xz3yspzemhxue69uhkzarvv9ejumn0wd68ytnvv9hxgq3q0000003zmk89narqpczy4ff6rnuht2wu05na7kpnh3mak7z2tqzsxpqqqqqqzaareys 
 that's exactly what I needed for my homepage 
 What does it mean to by powered by nostr? Do comments work over nostr, is the content published to nostr,.. ? 
 Good question: you can use whatever client that supports long format (https://habla.news, https://yakihonne.com, https://highlighter.com, etc) to write your post, and your personal blog is automatically updated. No fuss.

I will update the readme, thanks. 
 I was looking for something like this after Elon broke the twitter feed plugin on my website ❤️ 
 Remember that you can also embed individual notes/profiles using njump: https://njump.me/about 
 This is awesome, its cool to see simple HTML and JS apps making a comeback
nostr:nevent1qvzqqqqqqypzq77777lz9hvwt86xqrsyf2jn588ewk5aclf8mavr80rhmduy5kq9qqsrrcl7sfaxd505lyezj7u54tpdg93x0swpcpe0xj5adax5l6xz3ysfjgyqe 
 If you want to use Oracolo with docker ⚡️🤖
https://github.com/PastaGringo/oracolo-docker

nostr:nevent1qvzqqqqqqypzq77777lz9hvwt86xqrsyf2jn588ewk5aclf8mavr80rhmduy5kq9qqsrrcl7sfaxd505lyezj7u54tpdg93x0swpcpe0xj5adax5l6xz3ysfjgyqe 
 Muito belo. Excelente
nostr:nevent1qqsrrcl7sfaxd505lyezj7u54tpdg93x0swpcpe0xj5adax5l6xz3yspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygrmmmmmugka3evlgcqwq3922wsul966nhrayl04svauwldhsjjcq5psgqqqqqqswnc3u6 
 I know I'm being annoying saying this, but I think this needs to pointed out for those who might want to use it.

INAL, this is not legal advice, but a blog made this way is in all likelihood not GDPR-compliant.
As soon as one opens the website, one's IP address (which is personal data) is sent to (and collected by) relay servers the user doesn't even know about.
So one should be mindful of that.

Still cool project, thanks for sharing it! 
 Its open source, no? You can add all the baggage you would like to the package Daniele published 
 > Its open source, no?

I don't know how to answer this question. It doesn't have a license at the moment.

> You can add all the baggage you would like to the package Daniele published

I can. I pointed it out for others who might want to use this, especially people located in the EU/UK or other territories with similar laws. 
 Fixed


https://image.nostr.build/75b4a8f39c9a0e40b65be3ec5c315f637a6ed233c77769a835b7469427204229.png 
 I don't think it *can* be fixed. It requires that the IP of the user is sent automatically to relays, most or all of which are not GDPR-compliant.
I wasn't requesting a change. Rather, I was warning those who may chose to rely on this of something to consider. 
 Indeed, GDPR is a giant mess that make no sense for the most part and has proven to be ineffective.
I was kidding about the fix, I just added a note to surface the relay concept, that is central in Nostr; incidentally this works also as transparent informative about where data is fetched, and so with whom IPs are shared, for just technical reasons, has requested by GDPR. In fact it's not different that hotlink an image.
Finally the user can, and should, personalize the relays, using something he has verified and trust (e.g. one's own). 
 > Indeed, GDPR is a giant mess that make no sense for the most part and has proven to be ineffective.

I don't really consider the GDPR that messy, compared to other laws.
It's ineffective when people or companies don't comply with it. But all laws have people breaking them and getting away with it.

Regardless, I wasn't attempting to endorse or oppose the GDPR, just pointing this out as something to consider before using this.

> In fact it's not different that hotlink an image.

Which can also be an issue GDPR-wise and even CDNs can be dubious. 
 This is amazing! Add window.nostr and zapthreads or some such and people can engage with it. 
 WDYT about having a separate nostr event describing "a blog" with something like a custom feed to show a curated list of stuff on the site? 
 I was just planning to add a filter setting, by tags, to personalize the blog content. So you can just display #myblog articles, or pick some more elaborate topics.

But why a new king? 3023 seems a good fit for a blog.

Instead, I thought about using the new custom feeds by @hodlbod, but then I would have a huge job in handling all kinds haha, and the config probably would be too complex. 
 Filter by tag is best first start!

I'm not about a "kind for posts", I'm about "kind for describing a website". Right now you specify an author npub, but if you start using custom feeds etc it might get more and more complex, so maybe "blog" could be it's own event and then options and settings could be written there and it could be discoverable, gain WoT etc. 
 > kind for describing a website

This is really interesting, let me think about it! 
 Cool project!