Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for TofufuKitchen
Inspiration
My nephew and I spend a lot of time together online, but playing LAN-oriented games remotely usually means configuring a VPN, forwarding ports, trusting a hosted relay, or operating extra infrastructure. I wanted one friendly desktop app where we could find each other, talk, message, share something safely, create a remote-LAN tunnel, and play together.
What it does
TofufuKitchen is a zero-configuration peer-to-peer gaming companion for Windows and macOS. It combines:
- persistent Friendline identities with explicit friend approval
- authenticated live messaging and one-to-one Opus voice calls
- encrypted TCP/UDP remote-LAN tunnels, including Minecraft Java and Bedrock presets
- narrow, read-only, resumable file sharing with SHA-256 verification
- direct multiplayer Tofufu Arena duels and local CPU practice
- a 20-player Jungle Battle Royale with solo and real-friend duo modes
- a local Hall of Soy career profile and achievements
There is no central TofufuKitchen application or game server, no cloud database, no required account, and no router configuration.
How I built it
The desktop application uses TypeScript, Electron, Vite, and an isolated Node sidecar. Holepunch HyperDHT RPC provides authenticated peer discovery and communication, while Holesail supplies encrypted TCP/UDP tunnels. Electron safeStorage protects the local identity seed. The renderer is sandboxed behind a narrow preload API, and the games use host-arbitrated outcomes with versioned, replay-resistant packets.
GitHub Actions validates the project on Windows and macOS and packages native NSIS, portable Windows, and universal macOS builds. The public repository includes exact setup instructions, threat modelling, protocol and architecture documentation, generated third-party licence inventory, tests, and downloadable preview installers.
How I used Codex and GPT-5.6
Codex was my primary development environment throughout Build Week. I used it to design the Electron/sidecar boundary, implement and debug the P2P protocols, build Friendline and the Holesail lifecycle, threat-model capability handling, create automated tests, package native releases, and iteratively develop Arena and Battle Royale.
GPT-5.6 was used through Codex during the final Build Week sessions to complete and validate the Battle Royale map and rules work, contributor onboarding, testing, and competition hardening. I made the key product and engineering decisions: read-only sharing by default, explicit approval, locally encrypted identity storage, P2P-only application communication, host arbitration, and preserving the Windows installer identity for safe upgrades.
Challenges
The hardest work was making a serverless experience feel simple. Peer presence is best-effort, identities must remain stable and authenticated, reconnects must survive network changes, and two devices must reject incompatible protocol versions before exchanging state. Packaging native networking dependencies consistently across Windows and macOS also required dedicated CI and release validation.
The games added another layer: synchronising invites and combat without a hosted game server, keeping host results authoritative, validating remote packets, balancing seven distinct fighters, and continuously simulating Battle Royale combat beyond the local camera.
Accomplishments and lessons
I am proud that TofufuKitchen is a coherent installable product rather than a networking proof of concept. A friend can approve one identity, talk, message, open an encrypted tunnel, share a verified file, and enter a duel from the same interface. Building it reinforced that secure defaults and careful capability boundaries can coexist with a playful user experience.
What's next
Next steps are production code signing and notarisation, an automatic updater, deeper two-device soak testing, voice device controls, saved tunnel profiles, and continued Arena and Battle Royale balancing.
Built With
- github-actions
Log in or sign up for Devpost to join the conversation.