Back to projects

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.

PRG32 / CARTRIDGE STORERUNNING
Fastify + Next.jscatalog · auth · publish · docs
API / WSESP32-C6SQLITE / FILESTORE

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.

Rewrite

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.

Runtime

Fastify owns the API, authentication, catalog, publication, telemetry, statistics, discovery and WebSocket relay. Next.js owns the storefront and dashboard.

Contracts

Catalog, downloads, publishing, scores, metrics, multiplayer, discovery and firmware-facing formats remain explicit compatibility boundaries.

Persistence

Cartridge binaries stay in the filesystem store. SQLite keeps metadata, identity, publication state, scores, metrics and service records.

Compose

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.

Edge

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.

SYSTEM MAP / PRG32PACKAGE → STATE → DEVICE
Authors & editorspublish bundles · review submissions
Store & docsNext.js · Fumadocs · dashboard
Fastify APIcatalog · publish · auth · WebSocket
Identity & publicationsessions · roles · CSRF · review queue
PRG32 hardwareESP32-C6 downloads · discovery
QEMU & API clientsemulation · scores · metrics
Persistent service data filesystem artifacts · SQLite state · identities · scores · metrics · backups

The workflow

From a bundle to a verified cartridge.

01

Package

A `.zip` bundle enters through the typed API with a manifest, icon, optional splash screen and architecture-specific `.prg32` artifacts.

02

Review

The submission becomes a pending record. Editors can verify or reject it before anything enters the public catalog.

03

Publish

The service indexes the version, keeps its metadata and exposes downloads through the catalog and discovery contract.

04

Play

The cartridge moves to an ESP32-C6 board or QEMU, while scores, runs and metrics return through the same service surface.