Package growth
Portal, Module, and Media Extension Contracts
Future additions use small static registries instead of server-side discovery. This keeps cPanel uploads simple while preserving the no-backend public boundary.
Add a top-level portal
Upload a new portal folder and add one object to /assets/data/portal-status.json. New project portals should use homePlacement: catalog so they appear through Explore More Portals instead of crowding the homepage.
/newportal/index.html
/newportal/portal.json
/newportal/PORTAL_CONTRACT.md
/newportal/modules/modules_index.json
/newportal/modules/MODULES_CONTRACT.mdAdd a module to a portal
Upload a folder to /portal-name/modules/module-name/, then add module-name/module.json to that portal's modules_index.json.
Add RetroWeb media
Upload a cleanly named media file or HTML tool, then add one object to /retroweb/data/media_index.json. Video and images use native contain-fit rendering; large games and instruments should prefer standalone launch on phones.
Templates
Static templates are included under /templates/ in this package for portal, module, and RetroWeb media entries.