Hacker News new | ask | show | jobs
Show HN: Oracolo – A minimalist Nostr blog in a single HTML file (github.com)
90 points by dtonon 757 days ago
Oracolo is a minimalist blog powered by Nostr, that consists of a single html file, weighing only ~140Kb. It works also without a web server; for example you can send it via email as a business card.

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 web app and deploy it on a low-tech infrastructure.

Comments and suggestions on how to improve it are welcome!

9 comments

I regularly find myself on the internet archive hoping to find a working copy of a page created ten-plus years ago. Page rot, SEO spam, walled gardens, and AI generated nonsense are all converging to suck the value out of the WWW.

Projects like this give me a little hope that blogging can make a comeback. NIP-13 [1] also has the ability to use POW to limit bot activity. Thanks for sharing!

[1] https://github.com/nostr-protocol/nips/blob/master/13.md

> Projects like this give me a little hope that blogging can make a comeback.

From nostr site: "If all the relays that you have used in the past go offline, all your posts will be unretrievable." https://nostr.com/relays

Nostr doesn't solve the archival problem

Unlike web scraping where spaghetti logic is required to follow abstracted JS links, archival of nostr events can be as simple as running a relay and mirroring blog content.[1][2] nostr does a lot of what NNTP did but with additional flexibility.

[1] https://logperiodic.com/rbsr.html#nostr

[2] https://github.com/hoytech/strfry/blob/master/docs/negentrop...

For that you will need to connect to all relays in existence, right?
Not necessarily, the gossip/outbox model (NIP-65) tells clients which relays they should check:

https://mikedilger.com/gossip-model/

It is of course possible to combine this approach with undifferentiated access to well known relays, to fetch content from not followed people.

Users currently tend to push events to massive relays but decentralization is still a goal:

https://raw.githack.com/dtonon/oracolo/master/examples/fiatj...

https://github.com/nostr-protocol/nips/blob/master/65.md

Still, the short answer to your question would be "yes."

You should take it upon yourself to save your data, if it is really important to you, so that if all your relays fail, you can simply rebroadcast all your events to a new one and you will be fine. It's a problem solved in a collaborative and decentralized way.
> You should take it upon yourself

> It's a problem solved

If I have to take it upon myself, then it's not solved.

Nostr would be so cool if it wasn't associated with bitcoin. I know the protocol has nothing to do with crypto currencies whatsoever, but the people who use it are predominantly in that world.

This is a cool project though, so nice job! I'm not sure if a blog is the best use case (regular static blogs are faster and easier), but maybe it would make more sense for other concepts.

Statics blogs are cool but you have to manage them uploading the content every time. The interesting aspect of this solution is that 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.
This reminds me of Perl's http://www.blosxom.com and also https://tiddlywiki.com. Self-contained sites with minimal requirements.
And the light-weight https://feather.wiki/ (which is not too different from tiddlywiki)
Javascript should go to the bin.

Writing a JS engine makes it impossible for small players in the web browser market to compete.

I love distributed, server-less hosting concepts. Very cool project idea!
What others do you know of, or is there a resource to find out more?
Off the top of my head: Hypercore (DAT), GUN, Secure Scuttlebutt, IPFS, PPPP, Bamboo, BlueSky, Spritely Goblins...

If this is your jam, check out DWeb camp, put on by the Internet Archive, there will be a lot of us decentralized web technologist there.

Great suggestions. I'd also add that learning how the DHT works is a great jumping off point.
You might also be interested in checking out IPFS/IPNS
I'm doing some NNTP-related work and hadn't looked seriously at Nostr until just now. It looks like the main benefit is just that it signs events, is that right?
And it's extensible.
This is amazing! always been a huge fan of nostr.
The fact the "I hate NPM" section is so simple makes me wonder why npm was involved at all.

I also deeply hate NPM. (Normalizing NPM is a hazard to society) So maybe I'm biased...

I used Svelte for convenience, so you need npm (or equivalent), but only if you want to develop/extend the project. If you just want to use it, the html template is sufficient.
Honestly it's awesome you did, thanks! Also, please stop using NPM in general.
Simple and minimalist => Requires npm ¯\_(ツ)_/¯
Fair objection, but if you don't need to modify the structure/behavior, you can just use the html template file I built for you :)