From the OpenReplay Blog
Choosing a JavaScript Templating Engine
Compare EJS, Handlebars, Pug, and Nunjucks for Node.js server-side HTML rendering, with syntax examples, use cases, and security tips.
Five Sass Features You Can Replace with CSS
Five Sass features you can replace with modern CSS: custom properties, nesting, color-mix(), @layer, and @property for everyday styling.
How to Embed Video in React
Embed video in React with HTML5 video for self-hosted files, YouTube iframes, autoplay fixes, responsive sizing, and when to use ReactPlayer.
Recording Audio in the Browser with Web Audio API
Web Audio API recording in the browser: capture microphone input with getUserMedia, process it if needed, and encode it with MediaRecorder.
Email Obfuscation Techniques for the Web
Email obfuscation techniques for the web: compare HTML entity encoding, JavaScript, CSS to avoid, contact forms, and Cloudflare protections.
Modern SQLite Features You Might Be Missing
Modern SQLite features explained: JSONB, STRICT tables, RETURNING, WASM with OPFS, and WAL mode for better performance and concurrency.
Using es-toolkit for Everyday JavaScript Utilities
es-toolkit offers typed, tree-shakeable JavaScript utilities as a lean Lodash alternative, with smaller bundles and a migration path from Lodash.
Creating a Pure CSS Tooltip
Build a pure CSS tooltip with ::after, data-tooltip, and opacity transitions, plus focus-visible support and key accessibility limits.
What Axios Still Gives You Over Fetch
Axios vs Fetch: see where Axios still wins with interceptors, automatic HTTP error handling, shared instances, upload progress, and timeouts.
A Practical Overview of Kubernetes
Kubernetes overview of architecture, Pods, Deployments, Services, Ingress, and ConfigMaps for running and scaling web apps across a cluster.
Automatic Skeleton Screen Generation with boneyard
boneyard-js automatically generates skeleton loaders from real component layouts at dev time, with responsive .bones.json files and Vite support.
How to Lint Your CSS with Stylelint
Stylelint CSS linting setup, config, and commands for catching errors, enforcing rules, and integrating with Prettier and CI.
A New Way to Browse npm Packages with npmx
npmx streamlines npm package research with side-by-side comparison, bundle size, module format, dependencies, and vulnerability checks.
Add Reusable Capabilities to AI Agents with skills.sh
skills.sh adds reusable AI agent skills for coding workflows, with SKILL.md, progressive disclosure, CLI install, and MCP comparisons.
The Current State of JavaScript Bundlers
JavaScript bundlers in 2026: how Webpack, Vite, Turbopack, Rspack, esbuild, Rollup, and Parcel compare for modern frontend builds.
How to Deploy Next.js Outside Vercel with OpenNext
Deploy Next.js outside Vercel with self-hosting or OpenNext on AWS and Cloudflare. Compare Node.js, Docker, and the new Adapter API.
Creating a Copy Button for Code Blocks
Build a copy button for code blocks with the Clipboard API, using textContent, try/catch feedback, and accessible aria-labels.
Styling Ctrl+F Results with ::search-text
Style browser find-in-page highlights with ::search-text and :current. Covers CSS support, allowed properties, and Chromium-only limitations.
A Simple Defense Against npm Supply Chain Attacks
Block npm supply chain attacks with ignore-scripts=true, min-release-age, and CI checks for new install scripts before they run.
Creative Ways to Style Lists with CSS
Style lists with CSS using semantic HTML, ::marker, ::before, counters, and @counter-style for custom bullets and numbering with accessibility in mind.
Creating a Custom Post Type in WordPress
Create a WordPress custom post type with register_post_type, show_in_rest, plugin-based setup, and the right templates for archives and singles.
Preventing Path Traversal Attacks in Node.js
Prevent path traversal attacks in Node.js with safe path.resolve checks, path.sep containment, and ID-based file lookup instead of user input.
How to Copy API Requests from the Network Tab
Copy API requests from the Network tab in Chrome, Edge, or Firefox with cURL, fetch, and HAR export to replay and debug errors.
Flexible Object Creation with the JavaScript Builder Pattern
JavaScript Builder Pattern examples for step-by-step object creation, fluent method chaining, validation, defaults, and safer API request builders.