Skip to content

Add Your Framework

Want your HTML5 game framework to appear in GemShell's template selector? We'd love to include it!

Benefits for Frameworks

By adding your framework to GemShell, you get:

  • Instant Visibility - Your framework appears alongside popular engines like Phaser and Three.js
  • One-Click Setup - Users can create projects with your framework in seconds
  • Desktop Publishing - Games built with your framework can be packaged as native desktop apps
  • Steam Integration - Your framework's games get access to Steamworks features out of the box
  • Growing User Base - Reach game developers looking for easy desktop deployment

Pre-integrate GemShell APIs

You can make your templates even more powerful by pre-integrating GemShell's APIs. This gives your users immediate access to desktop and Steam features:

Steamworks API

Your templates can include Steam integration for achievements, leaderboards, and more:

js
// Check if running in GemShell desktop build
if (window.gemshell?.steam) {
  // Unlock a Steam achievement
  window.gemshell.steam.unlockAchievement('FIRST_BLOOD');
  
  // Submit to leaderboard
  window.gemshell.steam.submitScore('highscores', 1000);
}

See the full Steamworks API documentation for all available methods.

Native Desktop API

Access native desktop features like file system, window controls, and more:

js
if (window.gemshell) {
  // Save game data to disk
  window.gemshell.fs.writeFile('save.json', JSON.stringify(gameState));
  
  // Toggle fullscreen
  window.gemshell.window.setFullscreen(true);
}

See the API Overview for all available native methods including:

Feature Detection

Always check for window.gemshell before using APIs. This ensures your game still works in browsers and other environments.

Currently Supported

Code Frameworks

Game Editors

GemShell also works great with visual game editors! No code integration needed - just export your game as HTML5 and open the folder in GemShell.

Requirements

To be added to the registry, your framework needs:

  1. A GitHub repository with a starter template (downloadable as ZIP)
  2. Vite-compatible build (or similar modern bundler)
  3. index.html as the entry point
  4. Active maintenance - the template should work with current versions

What We Need From You

Send us a link to a gemshell.json file hosted in your repository or gist. The JSON should contain:

json
{
  "id": "your-framework",
  "name": "Your Framework",
  "version": "1.0.0",
  "description": "A brief description of your framework",
  "logo": "https://your-domain.com/logo.png",
  "website": "https://your-framework.com",
  "docs": "https://your-framework.com/docs",
  "discord": "https://discord.gg/your-invite",
  "tags": ["2d", "typescript", "beginner-friendly"],
  "templates": [
    {
      "id": "starter",
      "name": "Starter Template",
      "description": "Basic setup to get started quickly",
      "source": "https://github.com/your-org/your-template/archive/refs/heads/main.zip",
      "default": true
    }
  ]
}

Field Reference

FieldRequiredDescription
idYesUnique lowercase identifier (e.g., my-framework)
nameYesDisplay name
versionYesCurrent framework version
descriptionYesShort description (1 sentence)
logoYesURL to logo image (PNG/SVG, min 128x128)
websiteYesOfficial website URL
docsYesDocumentation URL
discordNoDiscord invite link (displayed in app)
tagsYesArray of tags: 2d, 3d, typescript, lightweight, beginner-friendly, ecs, webgl, webgpu, etc.
templatesYesArray of template objects

Template Object

FieldRequiredDescription
idYesUnique identifier within framework
nameYesDisplay name
descriptionYesShort description
sourceYesGitHub ZIP download URL
defaultNoSet true for the recommended template

GitHub ZIP URL Format

Use this format for GitHub repositories:

https://github.com/OWNER/REPO/archive/refs/heads/BRANCH.zip

Example: https://github.com/phaserjs/template-vite-ts/archive/refs/heads/main.zip

Submit Your Framework

Ready to submit? Send us a DM on Discord!

Discord

Join GemShell Discord

Send us a DM with a link to your gemshell.json and we'll review it within a few days.

Questions?

If you have any questions about the submission process or need help preparing your template, feel free to ask on Discord. We're happy to help!