From the OpenReplay Blog
How to Back Up a WordPress Site
Back up a WordPress site with mysqldump, tar, cron, and rclone. Covers files, database, off-site storage, and restore testing.
Automatic Code Reviews with CODEOWNERS
Set up GitHub CODEOWNERS, avoid silent failures, and enforce code review with the right patterns, permissions, and branch protection.
Reviewing AI-Generated Code with Difftastic
Use Difftastic to review AI-generated code with structural diffs, install it in git, and isolate behavior changes from reformatting noise.
3 JavaScript Gotchas Explained
Three JavaScript gotchas explained: floating-point math, NaN checks, and await in loops, with the right fixes for each.
Fetching Data Inside React Server Components
Fetch data in React Server Components with async functions, understand Next.js 15/16 caching defaults, and avoid waterfalls with Promise.all.
Browser Tab Synchronization with BroadcastChannel
BroadcastChannel syncs tabs in real time with structured-clone messages, cleanup, fallback support, and practical patterns for auth, cart, and theme state.
Using Text Expanders for Git, PRs, and AI Prompts
Espanso snippets for Git, PRs, and AI prompts: use shell, clipboard, and cursor hints to build context-aware text expanders.
How to Animate display: none Without JavaScript Hacks
Animate display none with CSS using allow-discrete and @starting-style, plus dialog popover overlay handling and browser support notes.
A Practical Guide to TypeScript's satisfies Operator
TypeScript satisfies operator explained with config examples, narrow inference, and when to use it instead of as or a colon annotation.
JSPI Explained: A Better Bridge Between JavaScript and Wasm
JSPI bridges JavaScript and WebAssembly so synchronous Wasm can call Promise-based APIs like fetch, with Suspending and promising, plus browser support status.
Keep Your Mac Awake for Overnight Agent Runs With caffeinate
Use caffeinate on Mac to keep overnight Claude Code, Codex, or builds awake, verify assertions with pmset, and handle lid-closed limits.
5 Obsidian Tips for Better Note-Taking
Five Obsidian note-taking tips: MOCs, Dataview, Bases, Canvas, Mermaid, review dashboards, and Git syncing for reusable Markdown vaults.
Integration Tests vs End-to-End Tests
Integration tests vs end-to-end tests for web apps: clear definitions, JS tools, and when to use Vitest, MSW, Playwright, or Cypress.
How JavaScript Finally Learned to Clean Up After Itself
JavaScript Explicit Resource Management with using, await using, DisposableStack, and SuppressedError for deterministic cleanup of files, locks, sockets, and connections.
Common Relational Database Design Mistakes
Avoid common relational database design mistakes in Postgres and MySQL: enforce constraints, choose keys, index joins, and store timestamps correctly.
Handling Time Zones in JavaScript Without Losing Your Mind
Handle JavaScript time zones with UTC instants, IANA zone IDs, Intl.DateTimeFormat, Temporal, and DST-safe rules for storing and displaying dates.
The End of Dual CJS/ESM Builds in Node.js
Node.js now supports require(esm), making ESM-only the default for many libraries. See when to drop CJS, avoid top-level await, and migrate safely.
TypeScript Best Practices for Large Projects
TypeScript best practices for large projects: strict mode, noUncheckedIndexedAccess, exactOptionalPropertyTypes, generated types, runtime validation, and CI guardrails.
Using Bun's Built-In Redis Client
Bun built-in Redis client guide: connect, use typed commands, Pub/Sub, auto-pipelining, rate limiting, and when to switch to ioredis.
When to Use CSS if() vs Container Style Queries
Compare CSS if() vs container style queries: when to use each, key syntax traps, range syntax, and 2026 browser support.
How to Build a REST API with Fastify
Build a Fastify v5 REST API with Prisma, JSON Schema validation, plugins, decorators, hooks, and TypeBox typing for CRUD posts.
When You Don't Need a Component Library
Why utility CSS and headless primitives often beat full component libraries in 2026, with a checklist for when to use one.
10 JS Interview Questions and What They're Really Testing
10 JavaScript interview questions explained through hoisting, closures, this, the event loop, and coercion, with outputs and what they test.
WordPress Performance Optimization: A Practical Guide
Prioritize WordPress performance fixes: hosting and caching, image optimization, plugin discipline, CDN compression, and field data tracking.