Fastify / Next.js / platform service
The service around the cartridge.
Not just a store.
A full rewrite of the service around PRG32: a Fastify/TypeScript API, Next.js PWA, dedicated Fumadocs site, authentication, publication workflows and Docker Compose boundaries that connect software to the board.
What it is
A distribution and service layer for the complete cartridge lifecycle.
The development branch turns the Cartridge Store into the service around PRG32 cartridges. It sits between authors, editors, the browser, the API, documentation, physical boards and desktop emulation.
The development branch replaces the old Flask path with a Fastify/TypeScript service and a Next.js PWA, while keeping the firmware-facing contracts stable.
Fastify owns the API, authentication, catalog, publication, telemetry, statistics, discovery and WebSocket relay. Next.js owns the storefront and dashboard.
Catalog, downloads, publishing, scores, metrics, multiplayer, discovery and firmware-facing formats remain explicit compatibility boundaries.
Cartridge binaries stay in the filesystem store. SQLite keeps metadata, identity, publication state, scores, metrics and service records.
Docker Compose coordinates the backend, storefront, dedicated docs service and local edge. The Dream Platform override attaches the application to shared Traefik, Mailpit and Docker networks.
The local stack can use the repository Traefik overlay or Nginx. Dream Platform is supported as an optional integration, not a runtime dependency.
System map
One service connecting people, contracts and the machine that runs the cartridge.
The workflow
From a bundle to a verified cartridge.
Package
A `.zip` bundle enters through the typed API with a manifest, icon, optional splash screen and architecture-specific `.prg32` artifacts.
Review
The submission becomes a pending record. Editors can verify or reject it before anything enters the public catalog.
Publish
The service indexes the version, keeps its metadata and exposes downloads through the catalog and discovery contract.
Play
The cartridge moves to an ESP32-C6 board or QEMU, while scores, runs and metrics return through the same service surface.
Try the system