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.
-
Point a Custom Domain at Cloudflare Pages Without Leaving the Site on the Default Subdomain
Cloudflare Pages stays on the generated pages.dev hostname until DNS and the Pages custom domain are configured together.
-
SvelteKit Throws ReferenceError: document is not defined During Server-Side Rendering
SvelteKit SSR crashes when a component touches document before the browser runs it; isolate browser-only code and gate it behind client checks.
-
Cloudflare Pages Functions Read undefined Environment Variables at Runtime
Make Cloudflare Pages Functions see bound secrets and vars instead of undefined values.
-
Next.js Cannot Optimize Images from an Unconfigured Remote Host
Configure next/image so remote images stop failing with host validation and optimization errors.
-
Hono Cannot Read c.req.param() After a Middleware Forgets next()
Fix missing route params in Hono by preserving middleware flow and route context.
-
Cloudflare Workers Fail with TypeError: Body has already been used for Request
Understand why a consumed Request body cannot be read twice in Workers and how to clone or buffer it safely.
-
Express Returns req.body Undefined When JSON Middleware Runs Too Late
Fix req.body staying undefined in Express by placing JSON parsing middleware before your route handlers.
-
Deploying a Static Site to GitHub Pages Breaks Asset URLs Under a Repository Path
Why a site works locally but 404s on GitHub Pages when assets resolve from the domain root instead of the repo path.
-
Design a TypeScript SDK with Multiple Entry Points Without Breaking Imports
How to publish a typed SDK with subpath exports, preserved types, and stable import paths for ESM and CommonJS.
-
Remix Returns 405 Method Not Allowed When a Form Submits to the Wrong Route
Why a Remix form posts to a route without an action and how route matching determines which loader or action runs.
-
Node Fails to Connect to localhost with ECONNREFUSED ::1 on a Local Server
Why Node tries IPv6 loopback first for localhost and how to match your server bind address to the resolved address.
-
React Native on Android Throws ReferenceError: window is not defined During Module Initialization
Why browser globals break during React Native startup on Android and how to move that code behind a native-safe boundary.
-
Bun Throws ERR_REQUIRE_ESM When a CommonJS File Loads an ESM Package
Why Bun hits ERR_REQUIRE_ESM on mixed module boundaries and how to make the import path match the package format.
-
Next.js Environment Variables Return Undefined in the Browser After Build
Why process.env values disappear in client code after a Next.js production build, and how to expose the right variables safely.
-
Deno Cron Tasks See DENO_ENV Undefined in Scheduled Runs
Make scheduled Deno jobs read environment variables reliably instead of getting undefined at runtime.
-
Cloudflare Workers Reject POST Requests with a CORS Preflight Failure
Return the right CORS headers from a Worker so browser preflight requests stop failing.
-
Electron Throws Refused to Execute Inline Script When a Sandboxed Preload Loads Local HTML
Fix CSP failures when Electron loads local HTML with a sandboxed preload and inline script blocked.
-
Next.js Hydration Mismatch: Random UUIDs Render Different HTML on Server and Client
Fix hydration errors caused by non-deterministic UUIDs in server-rendered Next.js components.
-
Node.js Fails with bin Not Found After Publishing a Package to npm
Fix npm packages that install but do not expose the expected CLI command.
-
Nuxt Generates 404s for Nested Routes During Static Site Deployment
Fix missing pages when Nuxt static generation doesn't emit the routes your host expects.
-
SQLite Returns SQLITE_BUSY During Concurrent Writes in Drizzle ORM
Reduce SQLite write contention when multiple requests try to write through Drizzle at once.
-
Programmatically Access Lummi AI Images with Lummi SDK
A walkthrough on how to use the Lummi SDK to access images programmatically.
-
Extract Geolocation Data From an IP Programmatically and Instantly
Easily extract geolocation data from an IP address using a simple npm package.
-
MongoError: bad auth Authentication failed through URI string
How to fix the MongoError: bad auth Authentication failed through URI string error, when it happens and some common reasons why it might be happening.
-
How I Accidentally Stepped on a Phishing Site and Then Helped Shut It Down
From receiving a phishing email to the site being taken down within 24 hours, this is a story we can all learn from.