Inspiration

Bulletin Board Systems shaped early online communities, but vanished in the 90s. I’ve always loved the rawness of CRT terminals, the minimalism, the vibe of dialing into a digital world.

For this hackathon, I wanted to revive a dead technology, but reimagine it with:

  • modern AI
  • emotional intelligence
  • instant knowledge retrieval
  • dynamic room routing
  • and cozy nostalgia

Obsidian BBS is my tribute to the early internet — rebuilt from scratch using today's AI infrastructure.

What it does

Obsidian BBS is a fully functional, terminal-based social space, combining retro aesthetics with modern intelligence.

It includes:

Four Core Rooms

  • Lobby — general chat
  • Techline — tech + programming discussions
  • Arcade Hall — playable retro games (Snake, Tetris, Breakout)
  • Support Room — a private, empathetic mental-health-aware chat

AI-Native Features

  • AI System Operator that routes messages to the right room based on context
  • Instant Answer Recall: searches past conversations and auto-shows relevant answers
  • Custom Room Creation when a message doesn’t fit any existing category
  • Empathetic Support Agent that responds with emotional intelligence and provides crisis resources
  • Retro terminal UI with simulated dial-up and a fully command-driven interface

A dead technology reimagined for 2025.

How I built it

Obsidian BBS was built almost entirely through Kiro, using a structured approach:


1. Spec-Driven Development (Core of the project)

I broke the entire system into four detailed Kiro specs:

  1. Core Terminal Chat
  2. Arcade Room Games
  3. Empathetic Support Bot
  4. Instant Answer Recall

Each spec defined:

  • architecture
  • message schema
  • UI states
  • system workflows
  • room logic
  • error pathways

Kiro produced the complete implementation for each spec, letting me iterate cleanly without code chaos.

This gave the project a solid foundation, and made refactoring trivial — change the spec → regenerate → done.


2. Vibe Coding for iterative improvements

Once core systems worked, I used vibe coding to rapidly refine smaller elements:

  • polishing the terminal interface
  • adding new commands
  • re-shaping the arcade game canvases
  • adjusting routing logic wording
  • tightening error messages

This felt like having a live co-developer who understood the entire codebase.

Most impressive generation: Kiro generated a fully playable terminal Snake game in one shot, then updated it twice purely from conversational instructions.


3. Agent Hooks for workflow automation

One of the best parts.

I created a manual-trigger Git hook that:

  • reads the latest commit
  • summarizes the changes
  • auto-updates a documentation file
  • decides whether the README should be updated
  • writes the diff if needed

This solved the constant pain of documentation drifting out of sync with the codebase.

It kept my project clean, professional, and maintainable — without extra manual work.


4. Steering Docs for consistency

I maintained a short steering doc that captured:

  • project terminology
  • room descriptions
  • command syntax
  • UI styling
  • tone guidelines for the support bot
  • architectural constraints

This ensured Kiro’s outputs stayed consistent, predictable, and aligned with the original vision — especially when switching between specs and vibe coding.


5. MCP Extensions (Used lightly)

I used MCP primarily to extend filesystem interactions, enabling Kiro to:

  • read large multi-file contexts
  • modify code + specs across directories
  • keep all parts of the BBS synchronized

This made the “spec-driven → vibe-coded → documented” workflow smooth and safe.


Challenges we ran into

  • Designing four interconnected specs without overlap
  • Making retro terminal animations smooth in a modern environment
  • Getting the AI routing to feel natural and not over-aggressive
  • Ensuring the support bot remained empathetic yet safe
  • Syncing documentation across a fast-moving codebase (solved using hooks!)

Accomplishments we’re proud of

  • Building a real, functional BBS experience in less than a hackathon timeframe
  • Creating a playable retro arcade inside a terminal
  • Bringing emotional intelligence into a 90s-style system
  • Designing a fully spec-driven system supported end-to-end by Kiro
  • Achieving clean documentation using automated agent hooks

Most importantly: reviving a dead technology in a way that feels fresh, fun, and useful.


What we learned

  • Spec-driven design lets you build complex systems far faster than ad-hoc coding
  • Vibe coding is powerful for polishing, but specs keep things scalable
  • Hooks are underrated — huge productivity boost
  • Steering docs make multi-spec workflows predictable
  • Kiro is not just a coding assistant; it’s effectively a structured engineering environment

What’s next for Obsidian BBS

  • More terminal games
  • Cross-room AI summarization
  • Theming + ANSI art skins
  • A public hosted demo
  • Graph-based memory for deeper instant recall
  • Mobile-friendly web terminal version
Share this project:

Updates