Wiki · Devlog · Why vanilla JS, no framework

Why vanilla JS, no framework

Technical post — by Dero Lavigne

Why vanilla JS, no framework — this devlog covers a technical decision behind CONTRABAND: Edge of the Fold. It is written for other developers who might learn from the choice (or learn what to avoid).

Why this matters

Game development is a long sequence of small decisions. This one shaped how the codebase looks and how the game performs in the browser. Understanding it helps explain why certain features exist and others do not.

The context

CONTRABAND runs entirely in the browser. That constraint shapes every technical choice. We do not have native APIs, persistent processes, or installer-level access to the user's machine. Everything has to fit in a tab.

The decision

The technical choice covered here was made early and revisited at least twice. The first version was naïve; the second was over-engineered; the third is what shipped. That arc is normal for solo development.

What I would do differently

If I were starting CONTRABAND again, I would still make this choice. But I would arrive at it faster — the months I spent on the wrong path are not recoverable, but the lesson is.

What this means for you

If you are building a browser game, the lesson here transfers. The constraints we faced are common to all browser-first development.

Closing

Thanks for reading. If you have questions, reach out. CONTRABAND is a game made for the people who care about how things work — and posts like this exist for the same audience.