From the OpenReplay Blog
The Good and Bad of Using Markdown as a CMS
Weigh the real tradeoffs of Markdown as a CMS, covering Git workflows, MDX, Tina CMS, and when structured headless CMS tools serve content teams better.
Logging Requests with Node.js Middleware
Add structured HTTP request logging to Express using Morgan, Pino, and AsyncLocalStorage to track correlation IDs and keep sensitive data out of logs.
5 Security Features Modern Frameworks Give You for Free
Modern frameworks like Next.js, SvelteKit, and Django provide automatic XSS escaping, CSRF tokens, and server-side secret isolation as secure default behaviors.
Best JavaScript Libraries for Building Dashboards
Compare Chart.js, Apache ECharts, Recharts, AG Grid, and TanStack Table to choose the right JavaScript dashboard libraries for your analytics projects.
The New HTML Geolocation Element
The new geolocation element brings declarative location access to HTML, replacing navigator.geolocation callbacks with cleaner permission handling for users.
ResizeObserver vs Window Resize: When to Use Each
Compare ResizeObserver and the window resize event to choose the right tool for viewport changes, element size tracking, and CSS container queries.
How to Center Anything with Modern CSS
Center any element horizontally or vertically using CSS Flexbox, Grid, and auto margins by matching the right method to each layout context.
Building Terminal UIs with Charm
Build terminal UIs in Go using Bubble Tea, Lip Gloss, and Bubbles from the Charm ecosystem with composable Model, Update, View architecture.
AI Prompting Tips for Developers
Build reliable LLM integrations by applying structured outputs, few-shot prompting, and context engineering to make AI responses predictable in production.
Postgres Best Practices for Modern Web Apps
Improve PostgreSQL schema design, indexing strategies, connection pooling with PgBouncer, and safe migrations to build web apps that perform well in production.
How to Inspect and Edit Cookies in Chrome DevTools
Inspect, edit, and delete cookies in Chrome DevTools using the Application panel, Network panel headers, and cookie fields like HttpOnly, Secure, and SameSite.
How to Stream Data to the Browser with Fetch
Stream Fetch API responses incrementally using ReadableStream, TextDecoder, and AbortController to display progressive data before the full payload arrives.
5 Mobile Web Papercuts (and How to Fix Them)
Fix common mobile bugs using CSS viewport units, safe area variables, overscroll behavior, and proper touch target sizing for real device results.
Mocking API Calls in Vue Tests with Vitest
Two practical strategies for mocking API calls in Vue tests with Vitest are covered: module-level mocking and HTTP-layer interception using Mock Service Worker.
JavaScript Features You Should Be Using in 2026
Modern JavaScript features like Set methods, iterator helpers, array grouping, and Promise.try are stable and ready to simplify your production code today.
Access Local Web Apps Securely with Tailscale
Share local web apps securely with Tailscale Serve and Funnel across devices, without port forwarding, firewall rules, or unstable ngrok tunnels.
Run AI Models Directly in the Browser with Transformers.js
Run AI models directly in the browser using Transformers.js, ONNX Runtime, and WebAssembly for private, offline, low-latency inference without a backend server.
A Quick Introduction to RAG for Web Apps
RAG grounds LLM responses in your own data using vector embeddings, retrieval pipelines, and tools like LangChain, LlamaIndex, and pgvector for web apps.
The Interop Project Explained
The Interop Project coordinates browser vendors to fix cross-browser CSS and JavaScript inconsistencies using Web Platform Tests and shared focus areas.
Scan Your React Code for Anti-Patterns with React Doctor
React Doctor scans React codebases for prop drilling, dead code, and accessibility gaps, producing an actionable 0 to 100 code health score via CLI.
Claude Code Skills for Frontend Workflows
Build Claude Code skills to automate frontend workflows, enforce design system rules, and scaffold components with slash commands and structured instructions.
A Quick Guide to the Invoker Commands API
The Invoker Commands API lets you wire buttons to dialogs and popovers declaratively using commandfor and command attributes without extra JavaScript.
From Idea to App: 5 Next.js SaaS Starters
Compare five Next.js SaaS starters covering authentication, Stripe billing, and database setup to choose the right boilerplate for your next product.
Parsing Markdown Natively with Bun
Bun includes a native Markdown parser that converts Markdown to HTML, React elements, or custom output without extra packages or plugin configuration.