A spooky hybrid application that generates retro-themed haunted microsites through AI-powered content generation. Built for the Kiroween Hackathon (Frankenstein Category).
- One-Click Site Generation: Choose from Geocities, BBS ANSI, or 90s Neon themes
- AI Ghostwriter: Automatically generates HTML, CSS, JavaScript, and spooky content
- Live Preview: Real-time preview with responsive viewport testing
- Agent Hooks: Automated asset processing and thumbnail generation
- Spec-Driven CI: Quality enforcement with accessibility and SEO validation
- MCP Connectors: Integration with external tools (ANSI converter, TTS, fonts)
- Deployment: One-click deployment to Vercel or Netlify
- Dashboard: Manage all your haunted microsites in one place
- Frontend: Angular 15+ with TypeScript
- Backend: Node.js + Express + TypeScript
- Database: MySQL 8.0+
- WebSocket: Real-time generation progress updates
- Storage: Local filesystem (development) / Cloud storage (production)
- Testing: Jest for unit tests
- Node.js 18+ and npm
- MySQL 8.0+
- Angular CLI (
npm install -g @angular/cli)
# Install backend dependencies
npm install
# Install frontend dependencies
cd webapp
npm install
cd ..# Copy environment template
cp .env.example .env
# Edit .env with your configuration
# - Set database credentials
# - Configure JWT secret
# - Add API tokens for deployment services# Create database
mysql -u root -p -e "CREATE DATABASE phantom_forge;"
# Run migrations
npm run db:setup
# Optional: Seed with test data
npm run db:setup -- --seed# Terminal 1: Start backend
npm run dev
# Terminal 2: Start frontend
cd webapp
ng serveVisit http://localhost:4200 to access the application!
phantom-forge/
βββ .kiro/ # Kiro configuration
β βββ hooks/ # Agent hooks
β βββ steering/ # Steering documents
β βββ specs/ # Spec files
β βββ mcp.json # MCP connectors config
βββ src/ # Backend source
β βββ config/ # Configuration
β βββ models/ # Data models
β βββ repositories/ # Database layer
β βββ services/ # Business logic
β βββ routes/ # API endpoints
β βββ middleware/ # Express middleware
β βββ utils/ # Utilities
β βββ websocket/ # WebSocket server
β βββ server.ts # Entry point
βββ webapp/ # Angular frontend
β βββ src/app/
β β βββ components/ # UI components
β β βββ services/ # Angular services
β β βββ models/ # TypeScript interfaces
β β βββ guards/ # Route guards
β β βββ interceptors/ # HTTP interceptors
β βββ src/environments/ # Environment configs
βββ database/ # Database scripts
β βββ migrations/ # SQL migrations
β βββ migrate.ts # Migration runner
β βββ seed.ts # Seed data
β βββ setup.ts # Setup script
βββ storage/ # Generated site bundles
βββ tests/ # Test files
- Animated GIFs and sparkles
- Marquee scrolling text
- Table-based layouts
- Visitor counters
- Under construction signs
- Monospace terminal fonts
- ANSI color codes
- ASCII art borders
- Retro BBS aesthetics
- Text-based navigation
- Neon glow effects
- Gradient backgrounds
- Retro typography
- Animated elements
- Cyberpunk vibes
POST /api/auth/register- Register new userPOST /api/auth/login- Login user
POST /api/microsites- Create new micrositeGET /api/microsites- List user's micrositesGET /api/microsites/:id- Get microsite detailsPUT /api/microsites/:id- Update micrositeDELETE /api/microsites/:id- Delete micrositeGET /api/microsites/search- Search microsites
POST /api/microsites/:id/deploy- Deploy to hostingGET /api/microsites/:id/deployments- Get deployment historyPOST /api/microsites/:id/rollback- Rollback deployment
GET /api/microsites/:id/preview- Get preview URLPOST /api/microsites/:id/export- Export as ZIP
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run with coverage
npm test -- --coverageUsed Kiro to generate initial component structures and iterate on designs through natural language prompts.
Automated workflows in .kiro/hooks/:
on_save_generate_thumbnail.yaml- Auto-generate thumbnails on asset saveon_deploy_verify_spec.yaml- Verify spec compliance before deployment
Consistency enforcement in .kiro/steering/:
voice.md- Spooky tone and language guidelinesstructure.md- Code organization and style rules
Complete specification in .kiro/specs/phantom-forge/:
requirements.md- User stories and acceptance criteriadesign.md- Architecture and correctness propertiestasks.md- Implementation task list
External tool integrations in .kiro/mcp.json:
- ANSI art converter
- Text-to-speech service
- Vintage font generator
# Build
npm run build
# Start production server
npm startcd webapp
ng build --configuration productionDeploy the webapp/dist folder to your hosting provider.
# Server
PORT=3000
NODE_ENV=development
# Database
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=phantom_forge
# JWT
JWT_SECRET=your_secret_key
JWT_EXPIRES_IN=7d
# Storage
STORAGE_PATH=./storage
MAX_FILE_SIZE=10485760
# MCP Connectors
MCP_ANSI_CONVERTER_URL=http://localhost:4001/convert
MCP_TTS_SERVICE_URL=http://localhost:4002/tts
MCP_FONT_SERVICE_URL=http://localhost:4003/fonts
# Deployment
VERCEL_API_TOKEN=your_vercel_token
NETLIFY_API_TOKEN=your_netlify_tokenThis project was built for the Kiroween Hackathon. Contributions are welcome!
MIT License - see LICENSE file for details
- Live Demo: [Coming Soon]
- Video Demo: [Coming Soon]
- Test Credentials:
- Email: test@phantomforge.com
- Password: password123
For issues or questions, please open an issue on GitHub.
Built with π for Kiroween Hackathon