Blog

Writing

Thoughts on React Native, mobile development, performance optimization, and the latest web technologies.

Building osury: Bridging the Gap Between OpenAPI, Type-Safe ReScript, and TypeScript
Feb 08, 2026

Building osury: Bridging the Gap Between OpenAPI, Type-Safe ReScript, and TypeScript

When you build a frontend in ReScript that consumes a REST API described by an OpenAPI specification, you face a fundamental problem: how do you keep your types in sync with the backend? You can write them by hand, but that is tedious, error-prone, and silently breaks whenever the API changes. You can use an existing codegen tool, but none of them target ReScript — and even fewer generate runtime validation schemas alongside static types.

api Compiler contract openapi ReScript Typescript
Lexer: Breaking Code Into Tokens | Compiler Series Part 2
Jan 16, 2026

Lexer: Breaking Code Into Tokens | Compiler Series Part 2

This is part 2 of my compiler series. If you missed it, <a href="https://coreofkeen.com/blog/why-i-built-a-compiler-for-a-space-game-stationeers-ic10/">part 1 covers why I built a compiler for a video game</a>. Every compiler starts the same way: staring at a wall of text and trying to make sense of it. When you write `let temp = 500`, you see three distinct things &mdash; a keyword, a variable name, and a number. But the compiler just sees 14 characters....

Assembly Compiler IC10 assembly Stationeers
Why I Built a Compiler for a Space Game | Compiler Series Part 1
Jan 08, 2026

Why I Built a Compiler for a Space Game | Compiler Series Part 1

Most developers treat compilers as black boxes. I was the same — until Stationeers, a space survival game with its own assembly language, pushed me to build one. After hitting the limits of IC10's 16 registers and 128 lines, I created a compiler that translates ReScript into optimized assembly. This is part 1 of a series covering lexers, parsers, register allocation, and the bug that inverted all my conditionals.

Assembly Compiler IC10 assembly Stationeers