RomM
Retro video game ROM manager and web-based library scanner for retro gaming.
Why consider RomM?
RomM (ROM Manager) is a self-hosted retro video game library manager. It scans game ROMs, fetches metadata and box art from IGDB, and provides an in-browser emulator.
Learn RomM by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide10 sections
What is RomM?
RomM (ROM Manager) is an open-source, self-hosted retro video game collection manager and web application. It operates as a private retro gaming library organizer—similar to a self-hosted Steam for classic video games across generations of consoles (NES, SNES, Genesis, PlayStation, N64, Game Boy, Arcade).
RomM automatically scans local ROM folders, extracts game metadata, high-resolution box art, screenshots, release dates, and developer credits from the Internet Game Database (IGDB) and MobyGames, and integrates in-browser retro gaming emulators powered by EmulatorJS.
Who Is It For?
- Retro Gaming Collectors: Organizing tens of thousands of classic console ROMs with rich visual box art and metadata classification.
- Homelabbers: Hosting a centralized game server that streams ROMs and saves directly to handheld gaming devices (Steam Deck, Anbernic, Miyoo Mini).
- Casual Gamers: Playing classic retro video games directly inside any modern web browser without installing local emulator binaries.
Key Features
- Automated ROM file scanning and metadata matching using official IGDB and MobyGames APIs.
- In-browser gameplay execution powered by integrated EmulatorJS cores.
- Cross-platform support across dozens of retro platforms (Nintendo, Sega, Sony, Atari, Arcade).
- Save-state management allowing players to save and resume game progress directly in browser storage or cloud sync.
- Multi-user authentication with individual favorite lists, play logs, and completion statistics.
Deploying RomM with Docker Compose
version: '3.8'services: romm: image: rommapp/romm:latest container_name: romm restart: unless-stopped environment: - DB_HOST=romm-db - DB_NAME=romm - DB_USER=romm_user - DB_PASSWD=secure_romm_password - ROMM_AUTH_SECRET_KEY=generate_a_secure_32_character_secret_key - IGDB_CLIENT_ID=your_igdb_twitch_client_id - IGDB_CLIENT_SECRET=your_igdb_twitch_client_secret volumes: - ./resources:/romm/resources - ./config:/romm/config - /media/roms:/romm/library ports: - 8080:8080 depends_on: - romm-db romm-db: image: mariadb:10.11 container_name: romm-db restart: unless-stopped environment: - MARIADB_DATABASE=romm - MARIADB_USER=romm_user - MARIADB_PASSWORD=secure_romm_password - MARIADB_ROOT_PASSWORD=root_secure_password volumes: - ./mysql_data:/var/lib/mysqlStart the stack:
docker compose up -dNavigate to http://localhost:8080 in your browser to complete administrator onboarding and initiate your initial library scan.
Practical Use Cases
1. In-Browser Classic Gaming
A player opens RomM in a web browser, clicks on a classic SNES RPG, and plays immediately using a connected Bluetooth controller and in-browser EmulatorJS emulation.
2. Centralized ROM Vault for Steam Deck
A gamer connects a Steam Deck handheld to the self-hosted RomM server via web browser or API, downloading games directly to local emulator folders on demand.
3. Box Art and Manual Collection
A collector browses complete collections of classic games with high-resolution front/back cover art, promotional screenshots, and digital PDF game manuals.
Troubleshooting and Limitations
- IGDB API Key Requirement: To enable automatic metadata and box art scraping, obtain free Twitch Developer credentials (Client ID and Secret) and configure them in environment variables.
- ROM Directory Structure: Organize your game files by platform folder names (e.g.
/romm/library/snes/,/romm/library/gba/) for accurate automatic platform detection.
Official Resources
- Official Website: https://romm.app
- GitHub Repository: https://github.com/rommapp/romm
- Documentation: https://github.com/rommapp/romm/wiki
Related tools
More options with a similar category or technology profile.
MyPaint
Nimble, distraction-free, and easy graphic application for digital painters.
Pencil2D
Easy, intuitive traditional hand-drawn 2D animation software across raster and vector.
Hydrogen
Advanced open-source drum machine and pattern-based step sequencer for audio production.
Pure Data
Open source visual programming language for multimedia, audio, and physical computing.