WRAITHNET began with a simple question:
What happens to the networks we abandon? What remains inside machines that were never meant to wake up again?
I’ve always been fascinated by forgotten technology—the eerie feeling of connecting to an old terminal, the mystery of lost conversations frozen in time, and the unsettling idea that digital spaces never fully die. That became the foundation for WRAITHNET:
A resurrected 1980s/1990s Bulletin Board System brought back online, acting as if something unseen is communicating through it.
Instead of building a modern interface, I wanted to recreate the suspense of dialing into an unknown system and waiting to see what—or who—responds. The goal is to blend nostalgia, horror, and interactive storytelling in a way that feels personal and alive.
What I Learned
While building WRAITHNET, I learned a lot about:
- Recreating authentic BBS interaction patterns and terminal UX
- Designing a command parser and text-based navigation system
- Implementing real-time communication inside a simulated terminal
- Structuring backend logic to support persistent message boards
- Synchronizing multiple state layers without breaking immersion
- Balancing engineering with creative worldbuilding
The biggest lesson was understanding how technology and storytelling can merge—how software can feel like a place, not just a tool.
How It Was Built
WRAITHNET is built using a modern full-stack architecture designed to simulate a retro system:
| Layer | Tech |
|---|---|
| UI / Terminal | React, TypeScript, xterm.js, TailwindCSS |
| Backend API | Node.js, Express |
| Real-Time Chat | Socket.io (WebSockets) |
| Database | PostgreSQL with Prisma ORM |
| Session / Presence | Redis |
| Infrastructure | Docker & Docker Compose |
| Ghost Engine Core | Custom event-driven engine |
Current Functional Features
- Full authentication & session handling
- Threaded message board with posts and replies
- Terminal-based command interaction system
- Real-time chat (Whisper Room)
- Ghost Engine Core that triggers interference events inside chat (not AI yet)
- Atmospheric UI design and system presence indicators
The ghost engine currently supports:
- Random message injection
- System interruptions
- Static and glitch text effects
- Mood-based variation
- Timed interference
The AI brains are planned but not yet connected—the ghost engine currently acts like a scripted autonomous system.
Challenges Faced
Some challenges included:
- Making real-time chat feel integrated into a terminal instead of a GUI app
- Designing text-only UX that still feels cinematic and emotionally unsettling
- Implementing ghost interruptions without breaking the system structure
- Planning for future AI-driven personas while building stable foundations
- Balancing creative direction with technical constraints under time pressure
The hardest part was ensuring the system feels haunted, rather than just looking like a tool.
📡 Inspiration
WRAITHNET is inspired by:
- Early modem/BBS culture and analog connection suspense
- Abandoned digital spaces (old IRC logs, dead forums, lost servers)
- Analog horror storytelling (Local58, Gemini Home Entertainment, Kane Pixels)
- The idea that data and identity linger long after we leave
Vision
Now that the Real-Time Whisper Room and Ghost Engine Core exist, the next steps include:
- AI-powered ghost personalities
- Séance Lab for generating personal ghosts
- File Graveyard (bury & resurrect corrupted files)
- Haunted Mailbox for private ghost messages
- Door Games (branching narrative horror)
- Sysop Room — the forbidden control chamber
The goal is to evolve WRAITHNET into a living, haunted digital world—not just software, but an experience you return to because it feels different every time.
WRAITHNET is a tribute to dead technology and digital ghosts— to the idea that some systems never truly shut down.
Built With
- bcrypt
- canvas
- chroma
- compose
- docker
- eslint
- express.js
- git
- github
- howler.js
- jwt
- minio
- node.js
- postgresql
- prettier
- prisma
- react
- redis
- socket.io
- tailwindcss
- typescript
- vite
- webgl
- xterm.js
Log in or sign up for Devpost to join the conversation.