A noir-themed detective game built with Next.js, React, and ElevenLabs TTS. Investigate cryptographic mysteries, analyze digital forensics, and solve complex cases using 8 interactive detective simulator systems.
- 12 Interactive Cases + Hidden mysteries (0001-0012, 0047 "The Voss Incident")
- File Explorer Interface - Navigate crime scene evidence like a real forensic analyst
- Evidence Board System - Pin and organize clues to build your investigation timeline
- Professional Narration - ElevenLabs TTS voice guidance throughout gameplay
- Noir UI Theme - Dark, atmospheric interface with high-contrast readability
- Terminal Simulator - Execute forensic commands with hidden secrets
- Fingerprint Scanner - Match suspects' prints with crime scene evidence
- BTC Tracer - Trace cryptocurrency transactions across the blockchain
- Voice Stress Analyzer - Analyze suspect interviews for deception indicators
- DNA Lab - Process biological evidence with genetic sequence analysis
- Phone Forensics - Extract data from locked suspect devices
- IP Trace - Geolocate network connections and track digital footprints
- Case Strength Meter - Real-time verdict strength indicator based on evidence
- Web Audio API - Authentic phone ringtone generation
- Monaco Editor Integration - View and analyze source code files
- Responsive Design - Plays great on desktop and tablets
- Server-Side TTS Proxy - Secure API key handling
- Vanilla JavaScript Simulators - No heavy dependencies
- Node.js 18+
- npm or yarn
- ElevenLabs API Key (free tier available at https://elevenlabs.io)
-
Clone the repository
git clone https://github.com/Munazir151/codenoir.git cd codenoir -
Install dependencies
npm install
-
Configure ElevenLabs API
cp .env.local.example .env.local # Edit .env.local and add your ElevenLabs API key # Get your free key at: https://elevenlabs.io/app/settings/api-keys
-
Start development server
npm run dev
-
Open in browser
http://localhost:3000
- Welcome Screen - Choose your detective name and select a case
- File Explorer - Browse crime scene evidence and open files
- Investigation - Read clues, open evidence, and pin important findings
- Simulator Systems - Use the 8 tools to analyze evidence scientifically
- Evidence Board - Track your clues and build your case
- Verdict - Submit your accusation when you've solved the mystery
- Click Files - Open evidence and trigger narration
- Pin Clues - Click the pin icon to add evidence to your investigation board
- Terminal - Press
`to open the terminal simulator - Simulators - Access from the HUD overlay menu
- Audio - Toggle narration on/off in the top-right header
- 🔍 Read Everything - Text files contain critical clues
- 🎯 Follow the Hints - Use the hint system when stuck
- 💾 Pin Key Evidence - Build a strong case on the evidence board
- 🔊 Listen Carefully - Narration provides important context
- 🧬 Use All Tools - Each simulator reveals different evidence angles
- React 18 - UI component framework
- Next.js 14 - React framework with API routes
- Tailwind CSS - Utility-first styling
- Framer Motion - Smooth animations
- Monaco Editor - Code viewing component
- Next.js API Routes - Serverless backend
- ElevenLabs API - Professional TTS narration
- Web Audio API - Ringtone generation and audio playback
- Canvas API - Real-time waveform visualization
- SVG - Network graphs and maps
- TypeScript - Type-safe JavaScript
- ESLint - Code quality
- PostCSS - CSS processing
- ElevenLabs API key is stored server-side only (never exposed to client)
- Never commit
.env.local(protected by.gitignore) - Use
.env.local.exampleas template for users
- Code Noir does not collect user data
- All game state is stored locally in browser
- No analytics or tracking
npm run dev # Start development server with hot reloadnpm run build # Create optimized production bundle
npm start # Run production server- Vercel - Recommended (zero-config Next.js deployment)
- Netlify - Static export compatible
- Docker - Custom container support available
- Self-hosted - Standard Node.js server
npm install -g vercel
vercel
# Follow prompts, add ELEVENLABS_API_KEY to production environment- Case 0001: AWS Key Leak - Learn the evidence system
- Case 0002: Night Shift Database Breach - Explore file types
- Case 0003: Docker Escape - Use multiple simulators
- Case 0004: API Misuse - Complex evidence chains
- Case 0005-0012 - Multiple suspects, deep investigations
- Case 0047: The Voss Incident - Full feature showcase
codenoir/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── api/tts/ # ElevenLabs TTS proxy
│ │ ├── layout.tsx # Root layout
│ │ ├── page.tsx # Main game page
│ │ └── globals.css # Global styles
│ ├── components/ # React components (30+)
│ │ ├── GameClient.tsx # Main game controller
│ │ ├── FileTree.tsx # Evidence file explorer
│ │ ├── EvidenceBoard.tsx # Clue pinning system
│ │ ├── *Simulator.tsx # 8 detective tools
│ │ └── ...
│ ├── data/ # Case definitions
│ │ ├── cases.ts # Case registry
│ │ ├── case000X.ts # Individual cases
│ │ ├── clues.ts # Evidence library
│ │ └── glossary.ts # Noir terminology
│ └── lib/
│ └── elevenlabs.ts # TTS integration
├── public/ # Static assets
├── package.json
├── tailwind.config.ts
├── tsconfig.json
└── next.config.js
- Create
src/data/caseXXXX.tswith case structure - Define files, clues, suspects, and hints
- Register in
src/data/cases.ts - Add case-specific event handlers in
GameClient.tsx
- Create
src/components/[Name]Simulator.tsx - Implement vanilla JS logic (no external libraries)
- Export with proper TypeScript types
- Integrate into
HUDOverlay.tsxmenu - Connect results to evidence board pins
We welcome contributions! Whether you're adding new cases, improving simulators, or fixing bugs:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-case) - Commit your changes (
git commit -m 'Add new detective case') - Push to your fork (
git push origin feature/amazing-case) - Open a Pull Request with description of changes
- 🕵️ New Cases - Detective mysteries with unique evidence chains
- 🔧 Simulator Improvements - Better UX for existing tools
- 🎨 UI/UX - Enhanced noir aesthetic
- 🐛 Bug Fixes - Performance and compatibility fixes
- 📚 Documentation - Guides for case creators
- 🌐 Internationalization - Multi-language support
Code Noir is released under the MIT License - see LICENSE file for details.
✅ Use commercially
✅ Modify the code
✅ Distribute copies
✅ Include in closed-source projects
📋 Include the license and copyright notice
Created by: Mohammed Munazir
Framework: Next.js 14
Voice Generation: ElevenLabs API
Styling: Tailwind CSS
Animations: Framer Motion
- Issues: Use GitHub Issues for bug reports
- Discussions: GitHub Discussions for feature requests
- Email: munazir9741@gmail.com
- Mobile app version (React Native)
- Multiplayer investigation mode
- Custom case creator tools
- Leaderboard system
- Advanced AI suspect interrogation
- VR detective experience
- Community case sharing platform
If you love Code Noir, please:
- ⭐ Star this repository
- 🔄 Share with other detective game enthusiasts
- 💬 Provide feedback and suggestions
- 🐛 Report bugs you find
Happy investigating, Detective! 🕵️♂️
Last Updated: April 2026
Version: 1.0.0
Status: Production Ready ✅