Overview

GhostNet is a Halloween-themed peer-to-peer ghost chat built end-to-end using Kiro AI. The idea was to create a fun, immersive experience where users appear like “ghosts,” exchange spooky messages, trigger effects, and disappear, all without login, without a database, and without a central server. The entire project was designed, architected, and implemented using Kiro’s AI-driven workflow, from specification writing to vibe-coding UI elements.

Inspiration

I wanted to explore how far I could push WebRTC and peer-to-peer communication when combined with an AI-powered development environment. Halloween added a fun twist: what if a chat app behaved like actual ghost activity, with messages that fade, users that appear and vanish, whispers, shakes, and unpredictable energy? The challenge was clear: Build a complete social interaction experience using only P2P technology and Kiro-generated code. This mix of engineering difficulty + creative theme is what inspired GhostNet.

What I Learned

Throughout the project, I gained deeper insight into:

  1. WebRTC internals (offer/answer exchange, ICE candidate timing, data channels)
  2. Mesh P2P topologies and their limitations
  3. How to design a signaling server with minimal logic
  4. How Kiro’s Specs and Vibe Coding can dramatically accelerate development
  5. Maintaining shared TypeScript types between frontend and backend for clean consistency
  6. Managing UI state for multiple peer connections Kiro allowed me to work almost like an entire engineering team, writing specs, generating code, refining UI, debugging, and iterating extremely quickly.

How I Built It

  1. Specs in Kiro: I started by creating a detailed specification covering the protocol, message types, UI logic, and WebRTC handshake flow.
  2. Architecture: - Frontend: React + TypeScript + WebRTC DataChannels + Tailwind
    • Backend: Node.js + Express + WebSocket, used only for signaling
    • No database, no authentication, single global lobby
  3. Development with Kiro: Using Kiro’s Vibe Coding, I refined animations, ghost effects, UI polish, and code structure. The tool handled rewrites, bug fixing, and keeping frontend and backend aligned.
  4. Debugging & Deployments:
    • Fixed ICE timing issues
    • Stabilized peer reconnection
    • Ensured consistent message serialization
    • Deployed backend on Render + frontend on Netlify
    • Configured secure WebSocket (wss://) for production

Challenges

  1. Handling race conditions in ICE candidate exchange
  2. Ensuring WebRTC works across browsers
  3. Synchronizing TypeScript types across three folders (frontend, backend, shared)
  4. Deploying a WebSocket signaling server correctly on Render

Each challenge was resolved with Kiro’s iterative coding flow and automatic refactoring.

Final Result

GhostNet delivers a complete, fun, P2P experience:

  1. Ephemeral “ghost messages” that fade away
  2. Persistent chat
  3. Screen-shake effects
  4. Ghost whisper sound effects
  5. Live sidebar with all connected ghosts
  6. Zero login, zero server messaging, everything P2P
  7. Halloween-inspired UI built entirely with AI assistance

The project demonstrates how AI + WebRTC can produce full applications quickly and creatively.

What's next for GhostNet

After the hackathon, GhostNet can evolve into a real product: - Encrypted P2P messenger - Private rooms - TURN-assisted global connections - Mobile apps - Anonymous proximity chat - Or even a multiplayer game engine based on WebRTC DataChannels The foundation built here is strong, flexible, and commercially expandable.

Built With

Share this project:

Updates