From the OpenReplay Blog
Charts.css: Building Charts with Pure CSS
Charts.css uses pure CSS and semantic HTML tables to build bar, line, and pie charts with no JavaScript, plus accessible data markup.
How to Organize CSS in Modern Web Projects
Organize CSS with cascade layers, design tokens, CSS Modules, and shallow nesting for maintainable modern web projects.
Detecting Touch Devices with JavaScript
Detect touch devices in JavaScript with maxTouchPoints, Pointer Events, and CSS pointer media queries for hybrid devices and current input type.
The State of On-Device AI in the Browser
On-device AI in the browser explained: Chrome built-in APIs, Transformers.js, ONNX Runtime Web, WebGPU, WebNN, and hybrid fallbacks.
Creative Tricks with the GitHub Contributions Graph
Customize your GitHub contributions graph with SVG, a snake animation, and auto-updating profile README stats cards using GitHub Actions.
Val Town: Serverless JavaScript in the Browser
Val Town is a browser-based platform for serverless JavaScript and TypeScript, with vals, Deno runtime, SQLite, blob storage, email, and OpenAI.
Understanding Database Transactions
Database transactions, ACID, isolation levels, and MVCC explained with practical guidance for reliable concurrency and rollback handling.
Bringing Tailwind CSS to React Native with NativeWind
NativeWind brings Tailwind CSS styling to React Native with className support, dark mode, variants, setup, and key limitations.
OpenCode: A Terminal-First AI Coding Agent
OpenCode is a terminal-first open-source AI coding agent with bring-your-own-provider support, Plan/Build modes, and LSP, MCP, and custom commands.
Free Stock Photo Resources for Developers
Free stock photo resources for developers, with license details, API access, attribution rules, and reuse limits for Unsplash, Pexels, Pixabay, Openverse, and more.
Building Data-Driven Apps with React Admin
React Admin architecture explained: dataProvider methods, CRUD views, authentication, and reusable list and edit screens for backend-agnostic apps.
Fetching Data from APIs in Node.js
Use Node.js fetch for API requests, POST bodies, timeouts, and error handling. See when to use undici Pool or Axios instead.
How to Debug CORS Errors in the Browser
Debug CORS errors in the browser with DevTools, console messages, and preflight OPTIONS checks. Spot mixed content, TLS, and credential issues fast.
Add WebGPU Effects to Your UI with Shaders.com
Shaders.com adds WebGPU shader effects to React, Vue, Svelte, and Solid with 90+ composable presets, a visual editor, and fallbacks for browser support.
Type-Safe Event Emitters in TypeScript
Type-safe event emitters in TypeScript: use event maps, a generic emitter, or Node.js EventEmitter to catch typos and payload mismatches at compile time.
Links vs Forms in HTTP Requests
Links vs forms in HTTP requests: when to use <a>, GET forms, POST forms, and why method=link is invalid HTML.
How to Detect Online and Offline Status in JavaScript
Detect online and offline status in JavaScript with navigator.onLine, online/offline events, and fetch-based connectivity checks.
Popular JavaScript Game Engines Compared
Compare Phaser, Babylon.js, PlayCanvas, Excalibur, and melonJS to choose the right JavaScript game engine for 2D and 3D browser games.
Blending Images with CSS cross-fade()
CSS cross-fade() blends images in one declaration. See percentage weights, legacy -webkit syntax, @supports fallbacks, and browser support.
Secure Coding for JavaScript Developers
Secure JavaScript coding practices for browser apps: prevent DOM XSS, avoid eval(), use CSP, protect tokens, and harden postMessage and dependencies.
Converting Images to Base64 with Canvas
Convert images to Base64 with Canvas: use toDataURL vs toBlob, handle PNG/JPEG/WebP support, and avoid tainted canvas CORS errors.
Low-Latency Browser Communication with WebTransport
WebTransport for browsers: compare WebSockets, datagrams, and streams for low-latency HTTP/3 messaging without head-of-line blocking.
5 Git Dotfiles Every Developer Should Know
5 essential Git dotfiles explained: .gitconfig, .gitignore, .gitattributes, .git-blame-ignore-revs, and .mailmap for cleaner workflows.
What's New in TypeScript 6.0
TypeScript 6.0 changes defaults, deprecates legacy options, and adds ES2025 support, Temporal types, and migration tips before TypeScript 7.0.