From the OpenReplay Blog
Five Alternatives to Next.js
Five alternatives to Next.js for 2026, including React Router v7, Astro 5, SvelteKit, Nuxt 4, and TanStack Start.
How to Add Authentication to an Electron App
Add authentication to an Electron app with OAuth 2.0 PKCE, system browser login, deep links or loopback redirects, and safeStorage token storage.
Choosing a Static Site Generator for JavaScript Projects
Compare Astro 6, Eleventy 3, Next.js 16, Nuxt 4, and SvelteKit to choose the right static site generator for JavaScript projects.
Using prefers-reduced-motion for Accessible Animation
Use prefers-reduced-motion to reduce animation safely with CSS, JavaScript, and Motion.dev, plus testing tips and WCAG guidance.
Should You Switch from npm to pnpm?
Should you switch from npm to pnpm? Compare dependency isolation, disk savings, workspaces, and pnpm 11 build-script approvals.
Removing Native Element Styling with CSS all: unset
Use all: unset to strip native element styling in CSS, reset buttons and form controls, and restore focus-visible accessiblity.
How to Detect When a Browser Tab Becomes Inactive
Use the Page Visibility API to detect when a browser tab becomes inactive. Pause polling, media, and analytics with visibilitychange.
Chrome Extension Manifest V3 Explained
Manifest V3 explained: service workers, declarativeNetRequest, chrome.action, Offscreen API, and why MV2 background pages and remote code were removed.
React Compiler vs Manual Memoization
React Compiler vs manual memoization: see when React.memo, useMemo, and useCallback are automatic, and when manual control still matters.
An Introduction to Agentic Browsers
Agentic browsers are reshaping web apps. See how they differ from Selenium, why semantic HTML matters, and the security risks developers must design for.
Removing Unused Files and Dependencies with Knip
Knip finds unused files, exports, and dependencies in JavaScript and TypeScript projects, with auto-fix and CI cleanup.
How to Persist Form State in the Browser
Persist form state in the browser with localStorage, sessionStorage, or IndexedDB. See how to autosave drafts, restore fields, and clear data safely.
A Complete Guide to Git Stash
Git stash commands, pop vs apply, conflict handling, untracked files, and best practices for saving and restoring work without committing.
Background Tasks in the Browser with the Scheduler API
Use the Scheduler API to prioritize main-thread work with scheduler.postTask() and scheduler.yield(), plus support checks and fallbacks.
Smooth Scrolling with CSS scroll-behavior
Use CSS scroll-behavior: smooth for anchor links, fix fixed header overlap with scroll-margin-top, and keep motion accessible.
Managing Package Managers with Node Corepack
Node Corepack explains package manager version pinning with Yarn and pnpm, plus Node.js 25 changes, CI setup, Docker, and offline use.
How to Reset the WordPress Admin Password
Reset a WordPress admin password with dashboard, lost password, WP-CLI, or phpMyAdmin methods, plus recovery and security steps.
A Simple Introduction to Design Tokens
Design tokens explained: what they are, how primitive and semantic tokens differ, and how CSS variables and Style Dictionary fit in.
Best Practices for Working with Svelte
Svelte 5 best practices for $state, $derived, context, and SvelteKit data loading, plus tips for keyed each blocks and modern syntax.
Using PlanetScale for Scalable MySQL Databases
PlanetScale for scalable MySQL databases: Vitess-based scaling, database branching, deploy requests, and non-blocking schema migrations.
How to Fix EACCES: Permission Denied in npm
Fix npm EACCES permission denied errors on macOS and Linux with nvm, a user-owned global prefix, or npx instead of sudo.
Keeping Context Across Async Calls in Node.js
Keep request IDs, user IDs, and tenant data across async calls in Node.js with AsyncLocalStorage. See how to use run() and getStore().
Vike as an Alternative to Next.js and Nuxt
Vike vs Next.js and Nuxt: see how this Vite meta-framework handles SSR, SSG, SPA, and deployment flexibility for modern apps.
Tips for Porting an Express App to Hono
Porting an Express app to Hono? See key differences in routing, middleware, body parsing, error handling, and incremental migration.