
Show HN: Vitriol – a distributed, serverless web publishing platform - vitriolum
Live app: <a href="https:&#x2F;&#x2F;vitriol.co" rel="nofollow">https:&#x2F;&#x2F;vitriol.co</a><p>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].<p>Read the intro article here: <a href="https:&#x2F;&#x2F;vitriol.co&#x2F;QmccRaHCrUKZwZpjdJFiTTdgp8FG3ALFDZQexaYgit3NCF&#x2F;QmYJvZjnw8c1DqFbW1BpWmvb3jVg8fQYRUs6UzzEyosagA" rel="nofollow">https:&#x2F;&#x2F;vitriol.co&#x2F;QmccRaHCrUKZwZpjdJFiTTdgp8FG3ALFDZQexaYgi...</a><p>And try the live web app here: <a href="https:&#x2F;&#x2F;vitriol.co" rel="nofollow">https:&#x2F;&#x2F;vitriol.co</a><p>Gitlab repo: <a href="https:&#x2F;&#x2F;gitlab.com&#x2F;vitriolum&#x2F;vitriol-web" rel="nofollow">https:&#x2F;&#x2F;gitlab.com&#x2F;vitriolum&#x2F;vitriol-web</a><p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;orbitdb&#x2F;orbit-db" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;orbitdb&#x2F;orbit-db</a>
[2] <a href="https:&#x2F;&#x2F;ipfs.io" rel="nofollow">https:&#x2F;&#x2F;ipfs.io</a>
======
vitriolum
__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](https://github.com/ipfs/js-
ipfs/pull/856) Relay: [https://github.com/ipfs/js-
ipfs/pull/1063](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 :(

~~~
Confiks
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\"}"}

~~~
vitriolum
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.

------
vitriolum
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](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!

------
rmbeard
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?

------
Confiks
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).

~~~
vitriolum
Yep, two bootstrappers were timing out, as explained here:
[https://news.ycombinator.com/item?id=18385587](https://news.ycombinator.com/item?id=18385587)

Thanks for checking the site out!

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

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

~~~
vitriolum
Thanks!

------
kplex
Chrome 70 on OSX just threw up a malware warning when clicking the header
links on the live app...

~~~
vitriolum
That's strange... Could you please show a screenshot?

~~~
geoah
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...](https://node0.preload.ipfs.io/api/v0/refs?r=true&arg=QmccRaHCrUKZwZpjdJFiTTdgp8FG3ALFDZQexaYgit3NCF):
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin '[https://vitriol.co'](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.

------
bradym
Interesting idea, horrible name.

------
arisAlexis
the name though...

~~~
sjroot
This was my thought as well.

~~~
fifnir
Sounds like a perfect name for a social-media site targeted at incels

~~~
vitriolum
Luckily it isn't any of the two!

------
doyoulikeworms
The article doesn't load

------
geoah
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...](https://vitriol.co/QmccRaHCrUKZwZpjdJFiTTdgp8FG3ALFDZQexaYgit3NCF)
(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.

------
dzek69
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.

~~~
dzek69
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-...](https://dl.dropboxusercontent.com/s/03gur67c8i8gxth/2018-11-05_13-59-27.mp4)

