From the OpenReplay Blog
Free AI Learning Resources for Developers
Build real AI applications using free resources from Google, OpenAI, Hugging Face, and Anthropic covering APIs, agents, and generative AI development.
Meet Rspress: A Rust-Powered Site Generator
Rspress uses Rspack to build React and MDX documentation sites with fast builds, customizable themes, and static Markdown output for AI tools.
How to Parse Numbers in JavaScript
Compare parseInt, parseFloat, Number, and BigInt to convert strings to numbers in JavaScript and avoid the edge cases that cause silent bugs.
Working with Files Using the FileReader API
The FileReader API reads user-selected files asynchronously using events, encoding options, and data URLs, while modern Blob methods offer simpler alternatives.
A Look at AdonisJS for Node Development
Compare AdonisJS and Express for Node.js development, and see how Lucid ORM, VineJS validation, and end-to-end TypeScript support change backend workflows.
Best SVG Icon Libraries for Modern Web Apps
Compare the top SVG icon libraries including Lucide, Heroicons, Phosphor, and Tabler to choose the right fit for your modern web app project.
What Is Chrome DevTools MCP?
Chrome DevTools MCP gives AI agents live browser access to inspect console errors, network requests, and DOM state during active development sessions.
VS Code Planning Mode: Think Before You Code
VS Code Planning Mode separates GitHub Copilot analysis from code execution, helping developers review structured implementation plans before any files change.
Inside the AST: How Tools Understand Code
Abstract Syntax Trees power ESLint, Prettier, and Babel. See how parsers build traversable nodes that drive linting, formatting, and code transformation.
Getting Started with Valibot
Start validating runtime data in TypeScript with Valibot. Define schemas, infer types, and build composable pipelines while keeping your bundle minimal.
When Might You Need BigInt in JavaScript?
JavaScript BigInt solves silent precision loss for integers beyond the safe Number range, including large IDs and WebAssembly 64-bit values.
Setting Up a TypeScript App with Bun
Set up a TypeScript project with Bun, skip the build step, and run TypeScript files directly using a clean runtime and package manager workflow.
Turning Git Repos into LLM-Ready Text: A Quick Guide
Convert any Git repository into structured LLM-ready text using Gitingest, Repomix, or repo2txt, and feed filtered codebases into AI models without token waste.
Adding Animations with Tailwind CSS Plugins
Map your options for adding Tailwind CSS animations, from built-in utilities to plugins and v4 custom keyframes, with accessibility in mind.
Using the Battery Status API in Web Apps
The Battery Status API exposes battery level and charging state to JavaScript. Build adaptive web apps while navigating browser support and privacy constraints.
Safe User Input Handling in Node.js
Safe Node.js input handling with Zod, parameterized queries, and explicit arguments blocks SQL injection, prototype pollution, and mass assignment attacks.
A First Look at the HTML Sanitizer API
The HTML Sanitizer API brings XSS protection into the browser itself. Compare safe methods against DOMPurify fallbacks and configure allow lists effectively.
How to Find DOM Elements by Text
Query DOM elements by text using querySelector filtering, TreeWalker traversal, and XPath with document.evaluate to build reliable text-based element selection.
The Best CDNs for Modern Web Apps
Compare Cloudflare Workers, Fastly Instant Purge, AWS CloudFront, and Akamai Ion to choose the right CDN for your frontend architecture and edge logic needs.
Getting Started with Laravel Livewire
Build dynamic Laravel UIs with Livewire by writing PHP components and Blade templates that handle form validation and reactive DOM updates automatically.
Exploring the CSS random() Function
The CSS random() function generates native numeric values in stylesheets, replacing JavaScript for visual variation using syntax, caching keys, and fallbacks.
Styling Select Elements with Modern CSS
Style select elements with appearance none and base-select, apply clip-path and focus spans, and progressively enhance across browsers with modern CSS.
Real-Time UX with the htmx SSE Extension
Add real-time UI to htmx projects using the SSE extension, server-sent events, and HTML attributes alone, with no JavaScript framework required.
Why You Should Be Careful with `!` in TypeScript
The TypeScript non-null assertion operator silences the compiler without adding runtime protection, turning compile-time errors into hard-to-trace null crashes.