← All decisions

Stack: React + Vite + Express, TypeScript everywhere, port from internalize

accepted

0003 — Stack: React + Vite + Express, TypeScript everywhere, port from internalize

Context

Internalize ships a working ~50-route React+Vite frontend on top of an ~30-route Express API. It’s proven for the use case: small org, internal collaboration, real-time features, CMS, push notifications. Switching frameworks (Next/Remix/etc.) means rewriting everything for no concrete win — and forces us to re-debug realtime, auth flows, and CMS code that already works.

Internalize is JavaScript. Ark is multi-tenant and load-bearing for a consulting practice — the cost of “I forgot to scope by org_id at the type level” is unacceptable.

Decision

Consequences

Easier:

Harder:

Revisit if: the bundle size of the admin portal becomes a problem (it won’t at 30-org scale; may at 300), or if React Router 7+ forces a Remix-flavored migration we want to embrace.

Alternatives considered