Skip to content

Neon Crow Games

A platform for card games played live on stream. Viewers join in from chat, an overlay shows the table without giving away anyone's hand, and the whole thing is built so a second game is a plugin, not a rewrite.

Prototype Java 21 Spring Boot React PixiJS PostgreSQL

Visit neoncrowgames.com How it's built

A crow in a fedora on a game workbench beside an arcade joystick, under a neon Neon Crow Games sign.

What it does

Games as plugins

Register one game module and it inherits accounts, sessions, decks, packs, rewards, progression and overlays without writing any of them.

Play from chat

Viewers drive a live game with ordinary chat commands, routed to their linked account and answered back in the channel.

A stream-safe overlay

A public browser source renders the table for broadcast with player hands deliberately withheld — three separate views of the same game.

Collections that persist

Cards live in a permanent inventory, packs roll by rarity, and decks are validated against what you actually own.

Watching earns something

Follows, subscriptions and channel-point redemptions all flow through one server-side reward engine that grants experience and cards.

Provable without a stream

A built-in simulator runs the entire loop — fake viewers, packs, decks, a live session, rewards and progression — with nothing else attached.

A look at it

neoncrowgames.com — the public site for Cryptid Hunters, the first game running on the platform. Click the image to enlarge.

How it's built

A Spring Boot service holds the game state and pushes updates over websockets, backed by PostgreSQL and Redis. The interesting part is the split: everything game-agnostic — identity, inventory, decks, rewards, progression — lives in the platform, and an individual game supplies only its engine, deck rules and chat commands. The engine redacts hands on the server rather than trusting the client, and every action is re-stamped with the authenticated player's identity so a spoofed message goes nowhere.

Backend
Java 21, Spring Boot, REST plus STOMP websockets, JWT auth
Data
PostgreSQL with Flyway migrations, Redis
Client
React and TypeScript with PixiJS rendering the card table
Stream integration
Twitch sign-in, chat commands and event subscriptions, behind a swappable interface
Testing
JUnit with Testcontainers, plus a headless full-game test that needs no database
First game
Cryptid Archives Live — hand, field and archive board with newspaper scoring
Status
Working prototype. Playable end to end in simulation; the live stream integration is built but has not yet been run against production Twitch.

Back to all projects

Questions about this build?

It's still taking shape, and I'm glad to talk through how it's put together.

Get in touch