RetroPlay e uma plataforma web para descobrir, organizar e jogar games retro diretamente no navegador. O projeto combina curadoria de jogos, busca em provedores externos, upload local de ROMs, suporte a gamepad e emulacao via EmulatorJS.
- Descoberta de jogos por consoles e categorias.
- Busca em provedores como Steam, itch.io, Internet Archive, REG-Vault e jogos de navegador.
- Catalogo retro via REG-Vault, com metadata, capas e screenshots de sistemas antigos.
- Busca opcional por IA usando Gemini.
- Player com EmulatorJS para rodar jogos no navegador.
- Upload local de ROMs pelo usuario.
- Suporte a controles/gamepads.
- Sistema de planos e limites no lado do cliente para prototipagem.
- Manifest PWA e service worker.
- React
- TypeScript
- Vite
- React Router
- Tailwind CSS
- Framer Motion
- Lucide React
- EmulatorJS
- REG-Vault API
Instale as dependencias:
npm installCrie o arquivo .env a partir do exemplo:
cp .env.example .envInicie o servidor de desenvolvimento:
npm run devBuild de producao:
npm run buildVITE_GEMINI_API_KEY=A chave Gemini e opcional. Sem ela, a busca por IA usa resultados locais de fallback.
Atencao: variaveis VITE_* ficam expostas no bundle do navegador. Para producao, mova chamadas de IA para um backend/proxy e nunca exponha chaves privadas no front-end.
.
|-- public/
| |-- manifest.json
| `-- sw.js
|-- src/
| |-- components/
| |-- pages/
| `-- lib/
|-- index.html
|-- package.json
|-- vite.config.ts
`-- README.md
RetroPlay nao deve distribuir ROMs protegidas por direitos autorais. Use apenas arquivos que voce possui legalmente, homebrew, demos, jogos livres ou materiais com permissao clara de distribuicao.
O suporte a Internet Archive e provedores externos deve respeitar termos de uso, disponibilidade e legislacao aplicavel.
Projeto em evolucao. A camada de planos, login e assinatura e atualmente um prototipo no lado do cliente. Para uso em producao, implemente autenticacao, autorizacao, pagamentos e limites em backend.