SUBAKO GAMING

An open-source, browser-first achievement engine. Define achievements in JSON, drop the SDK into any web game, persist progress to localStorage.

Demo Game

Example Quest — a tiny Canvas game that calls sdk.emit() and sdk.updateStat().

Play →

Dashboard

Inspect unlocks, progress bars, export/import saves, switch local players.

Open →

SDK Document

Achievements are defined in a JSON manifest. Edit and refresh to iterate.

View manifest →

Source on GitHub

The whole thing — SDK, manifests, demo, and Pages workflow — is in this repo.

Repo →

Quick SDK usage

import { createSubako, loadManifest } from "./subako-sdk/dist/index.js";

const manifest = await loadManifest("./manifests/example-quest.json");
const sdk = createSubako({ gameId: manifest.gameId, manifest });

sdk.on("unlock", ({ achievement }) => console.log("Unlocked:", achievement.name));

// in your game:
sdk.emit("enemy_killed");
sdk.updateStat("coins", (n) => n + 1);
sdk.unlock("first_blood");