Hello, I'm Benjamin 👋
A curious software engineer based in Skopje, North Macedonia, solving engineering problems, building products people use, and sharing what I learn along the way.
-
Next.js Client Navigation Stays Stuck on a Stale Page After `router.refresh()`
`router.refresh()` does not update a page when client state or caching keeps the old UI alive.
-
Bun Locks SQLite During Overlapping Writes with `SQLITE_BUSY`
Concurrent writes in Bun can stall or fail when SQLite holds a transaction lock too long.
-
Astro Returns 404 When a Route Endpoint Lives in the Wrong Folder
Astro 404s on an endpoint when the file is placed outside the route convention or named incorrectly.
-
Cloudflare Workers Reject `crypto.createHash()` with `ReferenceError: crypto is not defined`
A Node crypto API crashes in Workers because the runtime exposes Web Crypto, not `node:crypto` globals.
-
Node.js Fails to Start a Published CLI with Error: Cannot find module '/package.json'
A packaged CLI crashes because the entrypoint resolves package metadata from the wrong location.
-
Hono Cannot Match `c.req.param()` When a Static Route Shadows a Dynamic One
Route order in Hono can hide dynamic params and make `c.req.param()` return empty values.
-
Astro Throws ReferenceError: window is not defined When a Browser-Only Import Runs on the Server
Astro SSR crashes when a module touches `window` during server rendering.
-
Vite Serves 404s for Assets After a Production Build Because the Base Path Is Wrong
Built assets 404 in production when Vite emits URLs for the wrong base path.
-
Vite Resolves the Wrong Package in a pnpm Workspace Because tsconfig Paths Leak Into Build Imports
A pnpm monorepo can resolve a local source file instead of the published package entry point and break the build.
-
Next.js App Router Serves Stale Data Because a Server Component Fetch Is Cached
Next.js can reuse a server component fetch result unless you set the right cache mode or revalidation behavior.