Eli Zibin

Adding Web to Hapax

19/03/2026

hapax expo react-native web sqlite cloudflare

I added web to Hapax, and it was pretty easy.

Hapax running in Safari on the web, showing the main dictionary list in light and dark modes.
Hapax, but in a browser window.

I wanted Hapax in a browser so I could use it on my laptop sometimes.

It ended up being pretty easy. A few .web.ts files, a few browser-specific fixes, and the app mostly just carried over. Expo and React Native Web have really come a long way.

Hapax entry detail page on the web showing a word, tags, etymology, example, notes, and actions.
Most of it stayed the same.

The only real changes were the normal web ones: sheets, routing, auth callbacks, and getting SQLite behaving properly in the browser.

Add entry modal sheet on the web version of Hapax, with a word field and primary action button.
Most of the work was stuff like this.

Cloudflare routing was the fiddliest part. After that it was done.

Hapax web data sheet showing JSON and CSV export actions in the browser.
Exports are nicer on web too.

Anyway, it works, and I'm happy it's there. It's pretty incredible to build from a single codebase and have it work on multiple platforms like this, especially when it's driven by an LLM too.