Introduction
An open-source, headless, plugin-based, AI-native iGaming framework. Clone it, extend it, deploy it - without forking core.
Openora is an open-source, headless, plugin-based, AI-native iGaming framework. Install it, extend it with your own modules and adapters, and deploy it - without forking core.
The backend ships fully featured: auth, wallet, lobby, games, chat, compliance, backoffice, and CMS. The frontend - all of it - lives in your own repo and talks to the API over HTTP.
What makes it different
- Headless. Backend modules, contracts, and an SDK surface only. Bring your own UI.
- Contract-first. Every shape is a Zod schema; types are inferred, never hand-written. oRPC turns a schema into a validated route plus OpenAPI.
- Plugin host. New functionality enters through
definePlugin. No forking, no decorator magic; every wiring point is an explicit, typed function call. - Swappable seams. Payments, KYC, messaging, realtime and jobs are ports you bind to any vendor.
- AI-native. A machine-readable contract surface and an MCP dev server let coding agents extend the platform safely.
A taste
A module exposes typed routes; a consumer calls them with a fully typed client - zero codegen:
import { createClient } from "@openora/core/react";
import { contract } from "./contract";
const client = createClient(contract, { baseUrl: "http://localhost:3001" });
const { balance, currency } = await client.wallet.getBalance();
await client.wallet.deposit({ amount: 50, currency: "EUR", provider: "mock" });createClient takes the composed contract as its first argument - that is what the client infers its types from, and why there is nothing to regenerate after a contract change.
What ships today
Nine domains, fourteen core modules, plus one gated add-on. There is no sportsbook and no bonus engine - those are domains you build on top of the same wallet, identity, compliance and audit foundation.
Every third-party integration is a port with a mock implementation behind it. No production vendor adapter ships in the framework: the port is the contract, and the binding is yours.
The framework has not been through an external security audit, and it ships no RNG certification. What it gives you is a defensible starting point - the hash-chained audit trail, sealed-token boundaries and compliance ports exist before you write your first line.
Next
- Quickstart - run the API and call your first route.
- Core concepts - plugins, contracts, services, adapters, events.
- Modules catalog - what ships out of the box.