In this episode of Semaphore Uncut, we chat with Mathias Buus MadsenāCEO and co-founder of Holepunch, prolific open-source maintainer, and JavaScript hackerāabout his journey into programming, why peer-to-peer (P2P) technology matters, and how heās working to make it accessible to everyday developers.
From Math to JavaScript: Mathiasās Origin Story
Mathias didnāt grow up coding. He studied mathematics in Denmark, where the education system nudged him toward computer science as a practical complement. His first exposure was in Javaāpopular at the timeābut what really stuck was a simple web project where he encountered JavaScript.
āI tried it and didnāt stop. It was dynamic, fun, and felt like solving puzzles.ā
Soon after, Node.js arrived, and Mathias threw himself into the ecosystem. Over the years, heās published hundreds of libraries. āIf youāre using anything in Node.js, youāre probably using my libraries,ā he jokes.
Falling in Love with Networking and P2P
Mathias describes himself as a hacker at heartāsomeone who enjoys tinkering, re-implementing, and taking things apart. A networking course in college blew his mind:
āYou could run a TCP server on one machine, connect from another, and text just came through. That was magic.ā
That curiosity led him to BitTorrent. He began implementing clients and protocols in JavaScript, releasing them as open source. The feeling of building software on a laptop that could reach thousandsāwithout investors, servers, or gatekeepersāwas addictive.
Founding Holepunch: Everyday Apps Without Servers
After years of open source work, Mathias co-founded Holepunch to take P2P beyond file sharing. The mission: build a modular runtime that removes the rough edges of P2P and makes it accessible for normal apps.
Holepunchās open-source stack, the Pear Runtime, includes thousands of plug-and-play modules. Developers can work with familiar abstractionsādatabases, file storage, messagingāwhile the P2P protocols handle distribution and security under the hood.
To showcase the tech, the team built Keet, a chat app that looks and feels like a normal messaging tool but runs entirely peer-to-peer, without centralized servers.
Why P2P Unlocks Developer Productivity
Mathias argues that centralized cloud systems have trained developers to accept unnecessary complexity.
- Want to test locally? You need access keys and a credit card.
- Forget to clean up a resource? You get billed every month.
- Moving between environments? Endless configuration.
P2P flips the model. Running locally, in production, or in tests feels the same: peers connect, share data, and synchronize.
āPeer-to-peer makes me more productive because I stop thinking about environments. I just think about code.ā
Security and authenticity are also built in. Every piece of data is signed and verified, making systems more resilient by default.
The Challenges: Mindset and Education
The hardest part of P2P isnāt the technologyāitās the mental shift. Developers steeped in centralized patterns need to rethink consistency, data flow, and system design.
Holepunch addresses this with modular APIs that feel familiar, like MongoDB-style queries or S3-like file storage. Underneath, the libraries handle the distributed complexity.
Mathias emphasizes testing as a cornerstone. In P2P, unit and integration tests blur together because the system is inherently distributed. Running tests in CI uncovers real-world issues directly.
Whatās Next for Holepunch
The team is preparing a major new release of their stack, focusing on performance and scalability across a wide range of devicesāfrom low-end phones to high-end desktops. Mathias describes it as a year-long effort to refine the Pear building blocks like Hypercore, making them faster and more robust.
āItās been a lot of hard work, but weāre excited to roll it out. The stack just keeps getting better.ā
How to Get Started with P2P
For developers curious about experimenting with peer-to-peer, Mathias recommends three steps:
- Run the Hello World demo from pears.com to see two computers talk directly.
- Explore the Pear Runtime modules, which provide ready-to-use building blocks for databases, storage, and networking.
- Follow Mathias and Holepunch online to keep up with new releases and learning resources.
Follow Mathias Buus
š» GitHub: https://github.com/mafintosh
š¦ Twitter: https://twitter.com/mafintosh
