Removing React SSR from Cubbly to Simplify Lingui
I removed React SSR from Cubbly because maintaining Lingui across the Worker and browser was not worth the speed it bought on a private application.

9 posts on this thread
I removed React SSR from Cubbly because maintaining Lingui across the Worker and browser was not worth the speed it bought on a private application.

Biome keeps my AI coding loop moving, but it doesn't replace TypeScript. Here is the current setup and the trade-off I kept.

In Vite, ?url changes a JavaScript import into an asset URL import. Here is the fix—and when the suffix is actually useful.

Tailwind v4 rendered my shared components without their utility classes. One @source directive fixed three hours of monorepo debugging.

React Compiler 1.0 moved routine rendering memoization into the build. React.memo, useCallback, and useMemo now need a specific reason.

The package manager was the easy part. File APIs, CI, compatibility checks, and Claude Code produced most of the migration's useful work.

Moving this blog from Node.js to Bun cut its build from 37 seconds to 20. Native file and glob APIs also removed code I no longer needed.

The benchmark gap was obvious, but deleting 90 lines of build configuration was the better reason to choose Vite for a modern app.

Once I stopped supporting IE8, UglifyJS still emitted compatibility code for it. This Gulp option switched those workarounds off.

Keep exploring