Hacker News new | ask | show | jobs
Show HN: Vitriol – a distributed, serverless web publishing platform
20 points by vitriolum 2785 days ago
Live app: https://vitriol.co

Vitriol is an open source distributed publishing app which works in the browser without extensions or servers to set up, thanks to OrbitDB[1] and IPFS[2].

Read the intro article here: https://vitriol.co/QmccRaHCrUKZwZpjdJFiTTdgp8FG3ALFDZQexaYgi...

And try the live web app here: https://vitriol.co

Gitlab repo: https://gitlab.com/vitriolum/vitriol-web

[1] https://github.com/orbitdb/orbit-db [2] https://ipfs.io

11 comments

About the intro article not coming up

Sometimes the bootstrapping server seem to be overwhelmed. I suspect HN's "hug of death" could be possibly responsible. This will be resolved when js-ipfs implements DHT and relay:

> Please read this: DHT (automatic content discovery) and Circuit Relay (pierce through NATs and dial between any node in the network) are two fundamental pieces that are not finalized yet. There are multiple applications that can be built without these two services but nevertheless they are fundamental to get that magic IPFS experience. If you want to track progress or contribute, please follow:

DHT: https://github.com/ipfs/js-ipfs/pull/856 Relay: https://github.com/ipfs/js-ipfs/pull/1063

This stuff is alpha at this point, and sometimes there are still fires to extinguish. Sorry about the inconvenience, I suggest to try again later :(

Are you sure the introductory post is a valid link?

This is what I get using go-ipfs:

    > ipfs object get QmccRaHCrUKZwZpjdJFiTTdgp8FG3ALFDZQexaYgit3NCF
    > {"Links":[],"Data":"{\"name\":\"user\",\"type\":\"eventlog\",\"accessController\":\"/ipfs/QmSucCCcNw9CUJS4MmSW86kjZwfTNExyVnMzh4eBT6Jku9\"}"}
It is. I'm using OrbitDb, so the data structures in the ipfs node are not the ones you'd expect. Also, it needs to load at least three nodes to get to the article - that's a necessary trade off to have user metadata and user feeds. If it wasn't for the bootstrappers timing out it would have worked almost instantly. That's cool, bug has been reported.
The site looks good, I like what you've done here. The article came up after some delay!

I'm quite interested in decentralised publishing, this is an interesting first step!

Thanks! I hope it will evolve and become something useful.
So, the article is coming slowly or not coming at all because two of the four bootstrappers are timing out and, if you're unlucky enough to hit one of them, it might take minutes to replicate the article content. Bug has been reported to the js-ipfs guys and a pull request has been merged: https://github.com/ipfs/js-ipfs/pull/1693

That was instructive and I'm glad the experience has resulted in people getting interested, questions being asked and bugs being fixed. Sorry if it didn't work perfectly, distributed stuff is hard. I don't understand the flagging but hey, HN will be HN, I guess :)

I will fix the issue in the next days and will keep on developing Vitriol. Obviously any help is appreciated. Thanks to everyone for your comments!

This is interesting but I'm not sure about the name. It might attract the wrong kind of people. Is this intended to be a platform for hate speech?
Unfortunately, your intro article (and a user created post) doesn't seem to be loading properly. It makes a lot of connections to bootstrapping servers at libp2p.io (and specifically exchanges 10+ kbps with ws-star.discovery.libp2p.io for the entirety of the session), but the post never loads.

This is on Firefox 63 and Chrome 68 on poor cafe wifi (that nevertheless seems to be able to load every other website).

Yep, two bootstrappers were timing out, as explained here: https://news.ycombinator.com/item?id=18385587

Thanks for checking the site out!

"There has been an unrecoverable error connecting to IPFS. Please retry again later."

I suggest you change "retry" to simply "try".

Thanks!
Chrome 70 on OSX just threw up a malware warning when clicking the header links on the live app...
That's strange... Could you please show a screenshot?
Also never loading and getting CORS errors but not sure what preload is.

Failed to load https://node0.preload.ipfs.io/api/v0/refs?r=true&arg=QmccRaH...: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://vitriol.co' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Interesting idea, horrible name.
the name though...
Yep, by extension it now means "hatred", in certain contexts. I'm aware of it, but on the other hand I like the alchemical connections of the name. BTW, I view this project as a tool that anyone could use to publish content in a distributed way. There arw no political or social intentions behind it.
You still might want to rename it.

Something that allows users to post anonymously, circumvents moderation and takedown requests, and is called vitriol will make a lot of people think it is designed to promote hate speech.

^ Yep.
This was my thought as well.
Sounds like a perfect name for a social-media site targeted at incels
Luckily it isn't any of the two!
The article doesn't load
Copy of the post since I managed to load it at some point. ps. Still not sure why this isn't accessible by normal IPFS.

---

# An introduction to Vitriol

A brief description of Vitriol and how it works.

by Vitriol

### What is Vitriol?

If you're reading this, you already understand half of what Vitriol is: a free, web-based tool to edit and publish articles like this one on the Internet. With it, you can write your articles, organised in what we call a feed, and share their URL on the Internet. Other people can click on that URL, like you did for this article, and read them. Easy.

### Why is it different?

Normally, when you publish an article using a regular web-based tool (say a micro-blogging service, or an online publishing platform), you post your articles to their servers and they will store and serve them for a fee (a material one, like a credit card monthly payment or an immaterial one, like your personal data).

With Vitriol, the model is radically different: you can write your articles on your phone or computer and publish them. Once you publish one of them and share its address, your phone or computer will directly share it to people who try to access it from their phones with the URL. While they're reading it, they will also share a copy of it it to new readers who try access it, and so on, which means that your article will be accessible even if you're offline, as long as someone is reading (sharing) it. No servers and infrastructures are needed, because the whole network will automatically replicate data to anyone who requests it. This also means that it will be impossible for third parties to limit access to your articles.

Finally, if other user decides to pin your feed, they will actively follow it, which means they will automatically sync your articles on their device and automatically share them with anyone as soon as you publish them. In exchange, they will receive automatic notifications about your new content and will be able to auto-download and instantly access it. For example, the URL for the feed of the current article is https://vitriol.co/QmccRaHCrUKZwZpjdJFiTTdgp8FG3ALFDZQexaYgi... (you can also get there by clicking on the author name at the start of this page). If you go to the feed and click the pin button, which looks like a tag, this feed will be pinned and you will be able to access it again in Vitriol's "feeds" tab.

### What's next

Vitriol is a project in alpha stage. One of the major limitations is that a Vitriol feed is currently linked to a single device; that is, there's no way to publish to the same feed on your phone and your desktop computer. There are ways to implement that, but I'd like to hear from you on what direction this software should take.

### Want to participate?

Vitriol is an open source project. Its code can be found here. Please feel free to look at the code, open a ticket or even propose a merge request.

Vitriol is based on the excellent OrbitDB project, which in turn is based on the pure JavaScript implementation of IPFS. Supporting these two project supports Vitriol, so please take a look, if you are a developer.

So I clicked the intro link, and...

Here we go again. Just another revolutionary website with same framework that display the same annoying alert about JavaScript being disabled.

Ok, enabled.

After 43 seconds of constant download (at 170-200KB/s, but I'm on wifi now with 100Mbps connection) I finally was presented with article with several paragraphs.

Don't do that. I beg you.

Tried that on desktop. Didn't get contet within 2 minutes, but I've got a lot of websocket connections transferring binary data in background.

Recorded a video: https://dl.dropboxusercontent.com/s/03gur67c8i8gxth/2018-11-...

Sorry for the 43 seconds of your time, two bootstrappers are timing out and that slows down everything. Lesson learned, I will fix the app.

Regarding JavaScript: I don't think there's a good way of doing distributed web docs with HTML only. Very sorry about that.

I gave up after 2 mins
It doesn't work at all for me. Just a bunch of errors related to an IPFS gateway.