From the OpenReplay Blog
TypeScript in Node: The Practical Setup
Set up TypeScript in Node.js using ESM, tsc compilation, and native type-stripping to build production APIs and scripts with modern tooling.
How to Build a Minimal REST API in Node.js
Build a minimal REST API in Node.js using Express 5 with JSON parsing, proper status codes, and centralized error handling in about 80 lines of code.
A Quick Guide to Loading Indicators in Web Apps
Build better loading UX by choosing spinners, skeletons, or optimistic UI and implementing React Suspense boundaries with Next.js App Router loading states.
A Beginner's Guide to SQL Injection (And How to Prevent It)
SQL injection attacks exploit unsafe database queries. See how parameterized queries and least-privilege database accounts keep your application secure.
Immutable State the Easy Way: Understanding Immer
Immer applies JavaScript proxies to handle immutable state updates. See how Redux Toolkit uses Immer and avoid common draft mutation pitfalls.
DNS Basics Every Developer Should Know
DNS resolution, record types, TTL behavior, DNSSEC, DoH, and HTTPS records explained so developers can debug production failures with confidence.
Release Workflows Made Easy With Changesets
Build reliable npm release workflows using Changesets, GitHub Actions, and OIDC trusted publishing to automate monorepo versioning and changelog generation.
How Passwordless Login Works Under the Hood
How passkeys use public-key cryptography, WebAuthn flows, and FIDO2 origin binding to deliver phishing-resistant passwordless authentication on the web.
Beneath Frameworks: Trust the Web's Primitives
Evaluate the Popover API, View Transitions, Navigation API, and CSS primitives as framework alternatives using Baseline to guide safe adoption.
A Beginner's Guide to Remote Functions in SvelteKit
SvelteKit remote functions replace manual API endpoints with type-safe server calls. Compare query, form, command, and prerender types to choose correctly.
Refs Explained: How Frameworks Handle DOM Direct Access
DOM refs in React, Vue, Angular, and Svelte give you direct DOM access without breaking framework guarantees when declarative patterns fall short.
Why Devs Are Moving to TanStack Start from Next.js
Compare TanStack Start and Next.js across routing, server functions, and Vite integration to decide which React framework fits your team best.
How to Spot Database Queries That Hurt Your App's Performance
Trace slow database queries using query plans, slow query logs, and OpenTelemetry spans to identify N+1 problems, lock contention, and missing indexes.
Building a Custom File Upload Component for React
Build a custom React file upload component with drag and drop, validation, previews, and XHR progress tracking while keeping file inputs uncontrolled.
Tables Not Divs: A Simple API for Real Tabular Data
Build real data tables using the HTML table DOM API with native methods that avoid XSS risks and produce semantic, accessible markup by default.
How to Add Search to Your Website Without a Backend
Add client-side search to static and JAMstack sites using Pagefind, Lunr, Fuse.js, or Algolia without maintaining a backend server or database.
Practical Memoization Patterns in JavaScript
Memoize JavaScript functions safely by handling object references, async edge cases, cache eviction, and React useMemo without causing memory leaks or bugs.
Embedding YouTube Videos Without Slowing Down Your Site
YouTube iframes damage LCP and INP scores. The facade pattern loads click-to-play placeholders instead, cutting main thread work before user interaction occurs.
When Your Form Needs to Talk Back, Use the Output Element
The HTML output element displays live form results by linking inputs via the for attribute, the name attribute, and the HTMLOutputElement value property.
Checklist for Choosing a Web Form Builder
Evaluate form builders by integration model, WCAG support, GDPR data residency, webhook security, and validation rules to avoid costly migrations.
Smarter Package Updates With npm-check-updates
npm-check-updates helps you update package.json ranges, respect semver boundaries, and keep lockfiles in sync without breaking CI pipelines.
How to Find Security Gaps in Your App Using Strix
Strix uses autonomous AI agents to probe your application for broken access control, injection flaws, and business logic bugs before they reach production.
How to Get the Last Matching Array Value in JavaScript
Array findLast and findLastIndex methods let you retrieve the last matching element or its index without mutating your data or writing manual loops.
How to Build an Angular App via Google AI Studio
Build Angular apps fast using Google AI Studio Build mode, export to GitHub, and handle API key security with a proper backend proxy architecture.