Universal ROM Editor Platform - A modern, web-based ROM editing suite using TypeScript and React 19, designed for collaborative retro game development.
Transform GaiaLabs into a modern, web-based ROM editing suite starting with SNES-only support and expanding to a universal platform that can support multiple retro games through database-driven ROM definitions.
gaia-studio- React 19 + PixiJS ROM editor applicationgaia-api- Node.js + TypeScript backend APIgaia-community- Next.js community platform for project sharing
gaia-core- TypeScript build engine for ROM processing (browser + Node.js)gaia-shared- Shared types and utilitiesgaia-ui- Shared React components and design systemgaia-auth- Authentication utilitiesgaia-git- Git integration utilities
- Frontend: React 19, PixiJS v8, TypeScript
- Backend: Node.js, Fastify, TypeScript
- Database: Supabase (PostgreSQL + real-time)
- Storage: Supabase Storage (with global CDN)
- Build: Turborepo, Vite, tsup
- Hosting: Railway (apps) + Supabase (data/storage)
- Node.js 20+
- pnpm 8+
- Git
# Clone the repository
git clone https://github.com/gaialabs/gaialabs-platform.git
cd gaialabs-platform
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Start development servers
pnpm dev# Build all packages and apps
pnpm build
# Start all development servers
pnpm dev
# Run tests
pnpm test
pnpm test:watch
# Lint and format
pnpm lint
pnpm format
pnpm format:check
# Type checking
pnpm type-check
# Clean all build outputs
pnpm clean# Core library
pnpm core:build
pnpm core:dev
# Studio app
pnpm studio:dev
pnpm studio:build
# API server
pnpm api:dev
pnpm api:build
# Community platform
pnpm community:dev
pnpm community:build
# Build only packages
pnpm packages:build
# Build only apps
pnpm apps:buildgaialabs-platform/
├── apps/
│ ├── gaia-studio/ # React ROM editor
│ ├── gaia-api/ # Node.js API server
│ └── gaia-community/ # Next.js community platform
├── packages/
│ ├── gaia-core/ # Core ROM processing engine
│ ├── gaia-shared/ # Shared types and utilities
│ ├── gaia-ui/ # Shared React components
│ ├── gaia-auth/ # Authentication utilities
│ └── gaia-git/ # Git integration utilities
├── docs/ # Documentation
├── ext/ # External references (GaiaLib)
└── [config files]
- Packages are built with
tsupfor optimal bundling - Use
pnpm devin package directories for watch mode - Packages export multiple formats (ESM, CJS, types)
- Apps consume packages via workspace dependencies
- Use
pnpm devto start development servers - Hot reload is enabled for rapid development
- Run
pnpm testfor all packages - Use
pnpm test:watchfor continuous testing - Coverage reports are generated automatically
- Use changesets for version management
- Run
pnpm changesetto create a changeset - Run
pnpm version-packagesto bump versions
- Local: Use
pnpm devfor local development - Preview: Railway provides preview deployments for PRs
- Apps: Deployed to Railway
- Database: Supabase PostgreSQL with real-time
- Storage: Supabase Storage with global CDN
- CI/CD: GitHub Actions
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Run
pnpm lintandpnpm test - Create a changeset with
pnpm changeset - Submit a pull request
| Command | Description |
|---|---|
pnpm build |
Build all packages and apps |
pnpm dev |
Start all development servers |
pnpm test |
Run all tests |
pnpm lint |
Lint all code |
pnpm format |
Format all code |
pnpm type-check |
Type check all TypeScript |
pnpm clean |
Clean all build outputs |
pnpm changeset |
Create a changeset for version management |
Currently focusing on SNES games with initial support for:
- Illusion of Gaia / Illusion of Time
- (More games to be added based on community database contributions)
- Multi-game support through database-driven ROM definitions
- Advanced collaborative editing features
- Plugin system for custom ROM hacking tools
- Mobile companion app
- Community marketplace for ROM modifications
MIT - See LICENSE for details.
- Built upon the foundation of the original GaiaLib C# library
- Inspired by the ROM hacking community
- Powered by modern web technologies