Embed Shiny Gen games on your website

A Shiny Gen game can run natively on any web page (your portfolio, blog, or game site) via the shinygen npm package. One script tag loads the engine, and it runs the game's GDScript directly on your page. It is not an iframe: the engine boots on your canvas. By default it picks the engine per device: a desktop gets WebGPU when it supports it, and phones, tablets and browsers without WebGPU get WebGL.

The easy way: export your game

In the Shiny Gen web app, open the Share menu on a game you own and choose Export for the web. You get a zip with the page, your game, and a README, pinned to an exact engine version so the page keeps working the same way. Upload the zip to itch.io, or put the files on any web host. Opening the page straight from your disk does not work, because the browser will not let it load the game file; the README explains how to test it on your own computer.

Build your own page

For full control, put the engine script tag and your game's GDScript on any page:

<!doctype html>
<canvas id="canvas"></canvas>

<script src="https://cdn.jsdelivr.net/npm/shinygen@4.6.5/shinygen.js"></script>
<script type="text/gdscript" name="Main">
extends Node3D

func _ready():
    var light = DirectionalLight3D.new()
    light.rotation_degrees = Vector3(-45, 30, 0)
    add_child(light)
</script>
<script>
  ShinyGen.start({ canvas: "#canvas" });
</script>

Replace the script body with your own game's GDScript from Shiny Gen's code editor.

Using npm and bundlers

npm install shinygen works too. The engine resolves all of its files relative to shinygen.js, so you can serve the package from any static host, CDN, or bundler with no configuration.

Good to know

Last updated: September 18, 2026