Pearl is a small framework for creating video games in the browser using TypeScript. It's made to have a simple API that's easy to extend.
Unlike lots of fancier frameworks, games in Pearl are created mainly in code, rather than in a special editor. Rather than trying to be the level editor/sprite editor/visual scripting flowchart of your dreams, Pearl leaves the tooling used to create assets entirely up to you.
Pearl is made up of a small API for creating and rendering entities using components. If you're familiar with the Component pattern, or have used an engine like Unity or Unreal Engine, you've seen this before. If not, never fear, as it's easy to pick up.
In addition to allowing you to define your own components, Pearl includes built-in components for handling positioning, collision detection, sprite rendering, and other basic utilities.
To get started with Pearl, begin with the Tutorial, which provides a small boilerplate to get started with, and a simple game to make.
Pearl started life as a fork of Mary Rose Cook's Coquette, a wonderful microframework for simple JS games. In addition to using code from Coquette, Pearl uses ideas from frameworks including Unity, Godot, and Superpowers.
Pearl relies on the SAT.js library for collisions, in addition to several other supporting Node modules.