In the year 2015, four years before the global explosion of privacy-awareness dialogues, starting in the wake of facebook’s Cambridge analytical scandal, a blog post was written by an anonymous developer, who uses the internet handle go1dfish appeared online. It contained the details of a new software architecture for a radically new social aggregator, resistant to unilateral censorship, while robustly supporting volunteer content curation and moderation appeared online.
The approach was simple, radical and elegant. It was to design a new, fully decentralized, peer to peer information relaying web client that can run across most modern browsers with no installation requirements. The more the people running the client on their browsers, the stronger gets the capability of the network, to host, store and fetch information between the different running client instances. This was the birthing concept of this new, open source, blockchain using, fully decentralized peer to peer content management system.
Today, the whole industry is slowly moving towards the mission to create a more robust future of the web, that go1dfish envisioned in his initial blog post. The time has finally arrived and he recently launched his new, tamper-proof, privacy ensuring content aggregation platform Notabug.io. The name is inspired from an old school internet jargon, in this case, announcing that for the new decentralized web, privacy is a core feature, not a bug.
Here is a rare and exclusive interview (PART 2), by Priya Kuber, with go1dfish, where he discusses his philosophy, tech, and his vision for the future of the decentralised web.
Q. Zooming to the past, how long did it take you to implement and build the first version of Notabug.io? What were some of your key challenges in the development process?
A. The initial implementation took about a week once I found GUN and decided to actually write it; but 7 months later, I’m still building the service and likely will be for just as long in the future if not more. Much of that time has been spent rewriting and consolidating the product design logic as I learned and changed my mind about approaches along the way. I found GUN while looking for a firebase alternative for another project.
I was actually hoping someone else would build something along these lines first but nobody had and GUN was the missing piece to the puzzle in my earlier thoughts about such a project so I dove in. It pained my heart when I saw that at the time voat.co, (one of the last holdouts for free speech on the web IMO) had some recent downtime issues and the future of that site was uncertain.
I spent way more time fighting with the gun than I was originally expecting. It’s very ambitious but it’s also not done. It’s getting more done, but a lot of my time has been working around early scalability issues with the gun, but this has also led to ideas and approaches that make the whole site better.
Things calmed down a lot when I built a Redis adapter for the gun and used that as backend storage and run most queries against it; building out a concept of oracles and indexers did a lot to improve this as well and led to IMO a much more flexible moderation structure.
Q. Despite the technical setbacks, and the increase of the scope of your project, what makes you continue the development?
A. It’s a fun thing to build and something I want for my own enjoyment. I am mostly a lurker I like to read and I don’t like others sitting in between me and those providing content to read. I still feel like information wants to be free, that the internet is the best medium to do that; and I want to make sure that reality is realized.
In the book, Ender’s game, there is this passing mention of universal boards where all the important issues of the day are discussed, I envision Notabug.io becoming something like that.
Q. Who have been your biggest supporters in this journey? What were the initial adopters like?
A. The developer community has been very helpful with ideas and feedback, some code has been contributed (the support for video/image embeds are from another user) and FrontPageGuardian has done a lot of stress testing on the site and is currently working on a python indexer for notabug which may help bring more python devs into the project on the backend side.
I posted a link to voat.co and hit the front page, got quite a bit of activity and made me have to start looking for new hosting pretty quickly (started with a shared hosting plan now on a dedicated server)
Q. What are some of the traffic numbers that you are seeing on your website? How do new users typically find out about your website?
A. Hard to say because I don’t really pay much attention to it and intentionally avoid tracking people. Before the snew.github.io incident, cloudflare reported around 1000 unique visitors a day. Now that I’ve redirected ceddit.com to snew.notabug.io the numbers are more like 11k a day, but that’s mostly snew.notabug.io and not notabug itself. Cloudflare doesn’t give me tools to separate the two easily, but I’d guess somewhere between 1000 and 1500 uniques a day currently.
Most users find out about the site through word of mouth or through awareness of my reddit anti-censorship client which links to notabug.
Q. Have you thought of raising Venture Capital money?
A. Not really, it’s a very difficult problem so my approach is just to try to keep costs as low and distributed as possible. Gathering up millions of crypto to a small group of devs to build a project isn’t very decentralized, but it does have advantages I guess.
Q. Any specific reason for not raising venture Capital?
A. Because I think that’s the best way to avoid and reduce violence, hatred, and oppression online. I’m a big fan of the concept of crypto-anarchy, which is IMO best described by Wei dai,
“Unlike the communities traditionally associated with the word “anarchy”, in a crypto-anarchy the government is not temporarily destroyed but permanently forbidden and permanently unnecessary. It’s a community where the threat of violence is impotent because violence is impossible, and violence is impossible because its participants cannot be linked to their true names or physical locations.”
I think the right way to fund things is different for different apps; one of the main benefits of dapps is not needing as much funding and being able to do more with less.
I think decred’s funding model is interesting, but it’s hard to see how it could be adopted to non-cryptocurrency projects.
Q. How did you find your first few relay servers? How has your experience been like around that? It is a relatively rare concept in today’s web.
A. Some people showed up early, one wanting to run peers and I tried to help them get going despite not really needing or being ready for that. A main goal of notabug is to remain cheap, the model of sustainability for it is that people who care enough can contribute meaningfully to its existence. Right now our platform runs on a $100/month dedicated server (could go cheaper than that) and it’s fine for the current needs of the site.
I think we are still very early in the dApp world and haven’t seen anything particularly successful even. Bitcoin and cryptocurrency still feel very experimental, but file sharing has prospered for years despite much of it is legally questionable. I think social media may come to be one of the first killer decentralized apps. Especially with all the renewed concern over facebook, google etc.
Q. So people can run their own relay servers on custom cheap hardware?
A. People have run indexers on a raspberry pi if you just want to dev any machine should work, but if you want to host a public pier for others to access you’ll probably want a lot of ram for redis.
Really though, the best way for most people to help notabug right now is to submit interesting content and contribute to the conversation and submit ideas for improving the site even if you don’t know how to implement them.
Q. How would you describe notabug’s features? What are some of the cool qualities about it?
A. Notabug is a decentralized cloud of content with tools to curate from that content and to build an identity. So I’d describe that as a public dataset, cryptographic identities, and tools to curate content. The approach of a decentralized shared content cloud allows different views of the content to be created without silencing anyone. All moderation becomes curation; selections of content from that global pool. Cryptographic identities are useful because they allow you to prove you and only you wrote something even in a decentralized environment. Reddit had an incident where the CEO silently edited the comments of some users and this shouldn’t be possible with notabug due to the cryptographic nature of the accounts. These are pretty low-level features but they are what everything else on the internet is built on. In terms of user-facing features, I’d say the real-time updating, relatively fast load times and cryptographic identities.
I try to build out things based on what will provide the most benefits for least effort, things move in jumps as usually I will spend a while building out some fundamental system (like editable content) that then enables a bunch of other features (like editable spaces and sidebars). Private data will be one of the next big steps like this; will open up inbox notifications and subscribing to certain content and blocking content at an individual level
Q. What is the 100X vision for Notabug?
A. I want notabug to eventually assimilate all existing social networks into a singular collective that no individual controls. Like the Borg, from star trek, but voluntary, keeping their cultural distinctiveness but absorbing into a greater whole.
Q. Who owns the data of notabug?
A. Legally users own all data they contribute to nab and the user agreement is that all content is submitted under CC0 (effectively public domain) license. This is mainly to cover peer operators to make replication of the data non-questionable. Eventually this may expand to other (likely also CC) licenses, but for now this keeps things simple.
Q. Where is the data of Notabug stored?
A. Any data that is to be private, will be encrypted. The data is stored mostly on super peers like notabug.io currently. (so… browser?| no not-browser is the point of next sentence) Gun supports having web visitors also store and replicate this content; but notabug doesn’t take advantage of that yet. When gun has better support for webrtc the plan is to let users opt into seeding the network (much like bittorrent) from their browser by leaving it open to other p2p connections making superpeers like notabug.io less important.
Q. How far is the development of Notabug?
A. The code is open source, but still under heavy development. When I call it 1.0 is when I will be pushing to write better docs and encouraging people to spin up their own instances.
Q. Where can our readers find notabug peers and why should join now?
A. The best instructions for spinning up a peer are here, but may be out of date at any given time while development is heavy. If you ask in notabug’s chat I’ll help you get going.
The main reasons to do so right now would be to help with development and experiment with alternate ways to structure and build communities.
Q. Any advice to our readers interested in developing these new technologies for the new decentralized internet? What technologies are you using?
A. Try stuff, don’t assume you need a blockchain but you should absolutely understand blockchains and *why* they are such a big deal.
For notabug specifically, I’m intentionally aiming to keep it easy for people to dive in; but that’s more of a goal for when things are more complete. Right now while development is still heavy the ability to make pretty drastic changes is nice; but might confuse and conflict others working on the code. These sorts of changes are becoming more rare though.
One of the things that complicates development more than anything else is wanting to support server side rendering.
I think and hope anyone with familiarity with React should be able to contribute to the project. I’ve heavily embraced the new hooks approach throughout the app. My hope is that UI development especially should be something that other people can dive into.
In the context of notabug GUN makes the decentralized aspects fairly easy to deal with when things work.