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.
-
Vite Refuses a CSS Import from `node_modules` with "does not exist under root" During Build
A production build can fail when a stylesheet import points outside Vite’s project root or references an unsupported path.
-
Docker Cannot Reach Postgres on localhost Because the App Container Resolves Its Own Loopback Interface
A containerized app fails to connect to `localhost` because `127.0.0.1` points at the container, not the database host.
-
Nuxt Ignores a Client-Only Widget During Static Generation Because the Page Was Rendered at Build Time
A widget that depends on browser APIs disappears or fails when Nuxt prerenders the page as static HTML.
-
Hono Loses Session Cookies on Cross-Origin Requests Because `fetch` Never Sends Credentials
Cookie-based auth fails when browser requests omit credentials or the response omits the correct CORS cookie headers.
-
Express Rejects Stripe Webhooks with a Signature Mismatch When JSON Middleware Consumes the Raw Body
Stripe signature verification fails when Express parses the request body before you compute the webhook HMAC.
-
React Native Android Fails with "Unable to resolve module" After a Native Package Is Added to the Bundle
A release build can fail when Metro cannot bundle a dependency that imports Node or unlinked native code.
-
SvelteKit Breaks Prerender with "window is not defined" When a Server File Imports Browser Code
Prerendered SvelteKit pages crash when server-side code pulls in a browser-only module that touches `window` during build.
-
Nginx Proxies a WebSocket Endpoint but the Client Fails the Upgrade with `400 Bad Request`
Fix WebSocket proxying by forwarding the upgrade headers and using the right HTTP version.
-
Docker Compose Starts an API Before Postgres Is Ready and the App Logs `ECONNREFUSED`
Use health checks and dependency conditions so Compose waits for Postgres instead of starting the app too early.
-
Node Imports a Local ESM File as `[ERR_MODULE_NOT_FOUND]` Because the Path Is Not a File URL
Fix local ESM imports in Node when relative paths or missing extensions stop module resolution.