Q: Tell us a little about yourself and your background in technology and programming.
Thomas Farstrike: I’ve been coding since I was a kid. I started on the IBM 386, the early personal computer in the 90s. So I grew up in the 90s, and I was lucky enough to live through all of these technological revolutions like the advent of the Internet, the open source revolution, the Linux explosion, the coming and going of all sorts of new programming languages, technologies, web 1.0, 2.0, then the emergence of cryptography, the cypherpunks, and then the monetary revolution, that is Bitcoin. I witnessed all of that, and it’s very exciting times for me up to this day to be in this rapidly evolving field. I always see new things coming up and people hacking things together. That’s really what I enjoy toying with and watching. So I became an IT specialist naturally because then I got to play with all these things, and I got paid for it as well. So, I made my hobby my job, essentially.
Q: Talk about the inspiration behind PeerViewer. What inspired you to create PeerViewer, and how did you develop the idea?
Thomas Farstrike: As a Linux expert, I was supporting customers to help them manage their server or their nodes or debug issues, and then often it was useful to use some kind of remote desktop software, but the best option to do this without having to go into technical details like port forwarding was TeamViewer. But TeamViewer is only free for non-commercial use. And I suspect they were snooping on my session, seeing something that looked more than non-commercial, and then kicked me out regularly. So, the connection was often interrupted and could have been more usable. Either they were monitoring the connection, seeing what we were doing, or it was just instability, which is also possible. So, it could have been better to use. And at the same time, I had been following Holepunch and Keet for a long time. And I love how they’re building to decentralize the web to make it more peer-to-peer and like how they’re reinventing things to work more peer-to-peer.
So, I had that in the back of my mind. And then, at a conference in Lugano, I saw lots of inspiring talks about these topics. Peer-to-peer, Keet, Holepunch. And I couldn’t wait to start building on it and playing with it. This peer-to-peer remote desktop idea was a good project for me to try out the technologies but still be limited in scope to be useful for myself and others to solve an actual problem. It would benefit from peer-to-peer and Holepunch because then there wouldn’t be a need to set up port forwarding or to run expensive servers with lots of bandwidth to forward that data. It was a great fit for me as my first project to play with these technologies.
Q: Why did you choose to build a PeerViewer on 🍐Pear Runtime/HolePunch? What advantages do you see in using peer-to-peer technology over traditional server-based models?
Thomas Farstrike: So traditional servers cost a lot of money, and this is sometimes underestimated. Telegram, for example, is free to use and uses central servers for its chat application, but it’s paying something like $300 million per year just for hosting. And so you can make a small client, and it will work, but as soon as your project becomes big, the hosting costs are really big, and then the software can no longer be free, and you need some way to monetize it. Peer-to-peer kind of solves that because there’s no more need for intermediate servers and infrastructure.
Q: How was your experience developing peer-to-peer apps using 🍐Pear Runtime/Holepunch? Were there any unique challenges or surprises you encountered while building PeerViewer?
Thomas Farstrike: It was relatively painless, so there were no major challenges because 🍐Pear Runtime and the Holepunch tech stack hide a lot of the complexity of establishing network connections behind the scenes. So you can just focus on the GUI, on packaging, on integration. So it was relatively painless. But I would say one minor challenge is that it’s young technology.
It’s something new. So, there haven’t been any online courses about it or books written about it. There’s not a huge forum with previously answered questions. Even ChatGPT doesn’t know a lot about it because it’s so new. So that’s one challenge. On the other hand, because it’s still relatively young and small, the people behind Holepunch are approachable and there are chat sessions where you can talk with all of the developers and where you can ask questions. So that’s the other side of the coin.
Another challenge may be integrating browser-based applications with standalone binary software. So, the GUI is a browser-based application. So it’s using Electrum, and it’s written in JavaScript, but it’s integrated with a standalone VNC client and VNC server, which is written in, I think, C++. So integrating them was one of the minor challenges.
Q: Can you share some technical insights or breakthroughs you experienced while developing PeerViewer?
Thomas Farstrike: Being able to use Holepunch as a network pipe that allows you to tunnel any network connection opens up a lot of possibilities. That’s the major breakthrough or “Aha” moment. So I suspect many other applications could also be rewritten to use Holepunch and 🍐Pear Runtime as the network stack instead of the traditional TCP/IP stack directly, where you need port forwarding to access each other behind firewalls and ports. I think many more applications could benefit from using this new network technique.
Q: Let’s talk about PeerViewer. What’s your long-term vision for PeerViewer? Do you see it evolving? Are there any features or improvements you’re working on to add to PeerViewer?
Thomas Farstrike: It’s always fun to talk about and to dream about. So, in the application and on the website, I have this feature gallery where people can vote on the feature they want to see next. It’s a way to get feedback from the community. So they can vote for Windows support and Mac OS support. And people have been asking for that. So I suspect that at some point soon, I will add support for at least Windows, maybe Mac OS, depending on what the community asks for and votes for.
Maybe also view only sessions where you want to show your desktop but don’t want to give control of the inputs, the mouse, and the keyboard. And there’s also this exciting idea of integrating payments, especially Bitcoin Lightning, which allows for micropayments because then you could charge per minute, for example, to provide remote support to fix someone’s computer, to do some graphic design, to do some coding, etc. They could watch you on your desktop while you’re doing the work for them, and they could pay you in the app per minute of work and then stop as soon as you’re done. So that’s an exciting idea. Another idea is to add audio support. Then, people could watch your desktop and also listen to the audio.
And then, you would like to rent out your desktop; you could rent out your computer and watch a movie or use a specific software. Also paying per minute instead of paying for a monthly video streaming subscription, they could pay for one hour, a small fee per minute, while they’re watching, while they’re borrowing your video streaming subscription account.
Q: What are some valuable lessons you’ve learned while developing PeerViewer? And what advice would you give to developers interested in building peer-to-peer applications on 🍐Pear Runtime & Holepunch tech?
Thomas Farstrike: I think execution beats ideas and so I would say do something small, put it on GitHub, and then post it on the chat and see what people think about it. And that will inspire you to keep building on it and to finish it into a real product.
Q: Let’s talk about some future projects. Following PeerViewer, do you have any other projects or ideas that you’re planning to explore in the future with PeerRuntime?
Thomas Farstrike: Ideas are cheap, and I’ve got plenty of them. But like I said, the execution is where the rubber meets the road. But I’m hoping to do more around circular peer-to-peer economies. So, marketplaces where you get paid, or you pay for products or services in a peer-to-peer way without a company in between, without middlemen, really peer-to-peer. So in general, those are some of the ideas where I think 🍐P2P has potential.
I also have this idea about a peer-to-peer VPN solution that allows you to connect to your home without setting up port forwarding because that’s something my friends often ask me about, like how do I connect to my server or my Bitcoin Lightning Node at home without going through port forwarding, so for less technical users. And there’s so much to do.
At the Lugano conference, I saw a slide that said: “If you can dream it, you can build it.” And this one had a list of all the things you could build peer-to-peer, like peer-to-peer Uber, peer-to-peer poker, YouTube, and WhatsApp —which is Keet, I guess already. Zoom is also Keet, I think.
But then Craigslist, Dropbox, Paywalls, Eats, TripAdvisor, Maps, Marketplaces, BabyMonitors, yeah, you name it. So I think the centralized Internet is ripe for disruption. And 🍐Pear Runtime opens up these possibilities.
Q: What are your hopes for the peer-to-peer ecosystem in the coming years? How do you envision its impact on the future of decentralized apps? How do you see the peer-to-peer ecosystem evolving to support developers and users in the future?
Thomas Farstrike: In general I’m hoping someone will find a solution to the web browser issue. Currently, it’s hard to run peer-to-peer applications in a web browser. There are some solutions in the making. And I’m hoping that one day we will be able to browse the web and browse websites without really relying on centralized servers, more peer-to-peer.
But this is a big challenge. I know it’s been tried before. It’s not easy, but that’s another one of my hopes. The future of decentralized application is to provide more freedom for humanity, more economic freedom and more capabilities, less friction, less like centralized data silos and centralized organizations that can be captured. So, yeah, that’s my general high-level hope for this decentralized peer-to-peer revolution that seems to be coming up.
Q: Any closing thoughts? Is there anything else you’d like to share about your journey with PeerViewer, 🍐Pear Runtime, or the future of peer-to-peer? Or where people can find you to get in touch with you?
Thomas Farstrike: So people can always reach out on Twitter. I’m @ThomasFarstrike. They can also find Peerviewer on GitHub, so there they can raise issues or they can create Pull Requests or submit code improvements. I’m also hanging out in Keet rooms, like the 🍐Pear community, 🍐Pear development, and the 🍐Pear portal etc. And yeah, it would be nice to hear from more collaborators. Maybe to take these ideas of payments and circular economies to the next level, not only coders but also other motivated people. Overall, I’m excited to see where this moves next.