Last week, Kinode turned one year old and, to celebrate, we wrote up a laundry list of our accomplishments. Among them we discussed Meme Deck, the earliest third party app developed on the Kinode platform. But as Kinode has stabilized and proved how capable its architecture is, it has also attracted more third party developer interest and apps. One of our favorite recent additions is called Dartfrog, which started life as a simple peer-to-peer chat app. Its developer, Tim, has continued to iterate on Dartfrog to the point that it has some great new features for users, like chess and multiplayer piano, with more on the way. But, as if often the case, the really cool stuff is what's happening under the hood. Let’s take a look at Tim’s vision for Dartfrog, and how the app aims to become an “app browser for the Kinternet”.
Dartfrog addresses some challenges common to peer-to-peer app development, particularly in network efficiency and session management. Many p2p apps “take the easy way out” and use gossip protocols, everyone-to-everyone connections, or persistent client-server subscriptions, which can lead to network congestion and excessive resource consumption. Dartfrog, on the other hand, implements high-level, activity oriented, explicit point-to-point sessions that automatically manage connections. Here’s how the Dartfrog implementation improves “network hygiene”:
This design supports high-bandwidth apps, like those that offer real-time collaboration, while keeping the network running smoothly. It’s particularly beneficial in environments with many users who have varying levels of activity, since it prevents inactive users from consuming network resources unnecessarily.
Dartfrog’s components compile to Wasm and, like Kinode itself, it can support multiple programming languages. Plugins are in fact just iframes of other Kinode apps that integrate with the Dartfrog API. The Kinode Identity System handles user authentication and management, and Dartfrog uses Kinode’s peer-to-peer networking to enable direct communication between users.
Dartfrog itself implements an open protocol for service discovery, where users can request information about services from other users they’ve encountered on the frontend. What this means is that Dartfrog eventually becomes an “app browser for the Kinternet”, where any service which uses the Dartfrog API can potentially be discovered and shared through the Dartfrog app.
The latest release of Dartfrog brings several improvements and new features:
Dartfrog exemplifies the potential of Kinode as a place to build and deploy scalable decentralized applications. Future expansions include DMs, invites, and onchain profiles, easy deployment of high speed, multiplayer games, webRTC, a lobby system, and more. And, like Kinode, the Dartfrog API will eventually become backward compatible so developers can release apps that live forever without fear of breaking changes.
If you’d like to develop on Kinode (or Dartfrog!), you can find our developer docs here. In addition to helpful code examples and walkthroughs, you’ll also find how to set up your own Kinode.
For the less technically-savvy, you can get on Kinode by signing up for our hosting waitlist here.
And we’re always available on Discord or Telegram to take your questions or just have a chat.
Come join us. Challenge one of us to a game of p2p chess or just try typing “/robust” in the Dartfrog chat (our community manager loves this feature).
We can’t wait to see you on Kinode.