# Documentation ## Documentation Sets - [UpWeb](https://upweb.dev/llms-full.txt): Weekly web dev insights delivered free to your inbox ## UpWeb - Posts - [GPT-5.6 helped me ship the 1.0 I'd abandoned for two years](https://upweb.dev/posts/gpt-5-6-keyecho-1-0): How I brought KeyEcho back after two years, migrated it to Tauri 2, and rebuilt its Rust audio path from 1184 ns to 43.5 ns per cached lookup. - [I Open-Sourced KeyEcho: Fast-Responsive Keyboard Sounds with Every Keystroke Using Tauri](https://upweb.dev/posts/open-sourced-keyecho): TL;DR: I've recently open-sourced KeyEcho , an application that listens to keyboard events locally and plays pleasant typing sounds. Built with Tauri and Rust, it is cross-platform, lightweight, and designed for fast keystroke response. Thi - [How to Securely Send a Request When Closing Tabs](https://upweb.dev/posts/send-request-closing-tabs): Learn how to securely send requests when closing browser tabs. Master sendBeacon API, fetch with keepalive, and different data formats. Ensure reliable data transmission without blocking page unload events. - [7 Advanced CSS Color Properties Every Developer Should Know](https://upweb.dev/posts/css-color-properties-guide): Master advanced CSS color techniques: color() function, accent-color, currentColor, color-mix(), wide gamut colors, interpolation spaces, and forced-colors media query for modern web design. - [The Secrets of the delete Operator in JavaScript](https://upweb.dev/posts/javascript-delete-operator): Complete guide to JavaScript delete operator. Learn what can be deleted, own properties vs inherited properties, non-configurable properties, array elements, and best practices for safe object manipulation. - [8 Advanced CSS Typography Properties Every Developer Should Know](https://upweb.dev/posts/css-typography-properties-guide): Master CSS typography techniques: font-variant, initial-letter, font-variant-numeric, font-display, line-clamp, font-palette, text-wrap, and hanging-punctuation for better web typography. - [HTML Script Element Attributes: async vs. defer vs. type=module](https://upweb.dev/posts/html-script-element-attributes): Complete guide to HTML script element attributes: async vs defer vs type=module. Learn how script loading affects page performance, parsing behavior, and DOMContentLoaded events. Master modern JavaScript module loading techniques. - [8 CSS Interaction Properties Every Developer Should Know](https://upweb.dev/posts/css-interaction-properties-guide): Explore advanced CSS properties for better user interactions: Scroll Snap, overscroll-behavior, scrollbar-gutter, overflow-anchor, touch-action, scroll-timeline, view-timeline, and View Transition API - [How to Create a Type to Retrieve All Keys of an Object in TypeScript](https://upweb.dev/posts/typescript-deep-object-keys): Create a TypeScript utility type to extract all nested object keys recursively. Learn advanced TypeScript techniques for deep object key retrieval with practical examples. - [How to Create DOM Elements from HTML Strings (Multiple Methods)](https://upweb.dev/posts/create-dom-elements-html-strings): Learn 3 methods to create DOM elements from HTML strings in JavaScript. Master insertAdjacentHTML, DOMParser, and createContextualFragment. Compare performance and security considerations for each approach. - [The Differences Between "export default xx" and "export {xx as default}"](https://upweb.dev/posts/javascript-export-default-differences): Master JavaScript module exports: export default vs export {xx as default} differences. Learn live bindings vs value exports, hoisting behavior, and best practices for ES6 modules with practical examples. - [How to Get a Perfect Deep Copy in JavaScript?](https://upweb.dev/posts/perfect-deep-copy): Master perfect deep copy implementation in JavaScript. Learn WeakMap for circular references, Object.getOwnPropertyDescriptors for property preservation, and Reflect.ownKeys for complete object cloning. Complete guide with examples. - [How to Get a Perfect Deep Equal in JavaScript](https://upweb.dev/posts/perfect-deep-equal): Build a perfect deep equal function in JavaScript. Learn to handle circular references, different data types, and edge cases. Compare with React shallow equal implementation and understand performance implications. - [7 Differences Between Arrow Functions and Traditional Functions](https://upweb.dev/posts/between-arrow-functions): Discover 7 key differences between arrow functions and traditional functions in JavaScript. Learn about arguments object, this binding, constructor usage, hoisting, and when to use each function type for better code practices. - [Memory Management Every Developer Should Know](https://upweb.dev/posts/programming-memory-management): Complete guide to memory management in programming: stack vs heap allocation, garbage collection strategies, and how different programming languages handle memory management. - [How to Build a React Hook That Handles Sequential Requests](https://upweb.dev/posts/sequential-request-react-hook): Build a React Hook for sequential API requests that cancels previous requests automatically. Improve performance and user experience with this custom hook implementation. - [Build Your Own React.js in 400 Lines of Code](https://upweb.dev/posts/build-react-400-lines): Build your own React.js implementation in 400 lines of code. Learn React internals including JSX, Fiber architecture, concurrent mode, and useState hook. Complete tutorial with working examples and performance insights. - [How Server-Sent Events (SSE) Work](https://upweb.dev/posts/server-sent-events-guide): Complete guide to Server-Sent Events (SSE) for real-time web communication. Learn SSE implementation, benefits, use cases, and how it compares to WebSockets and polling. - [7 Advanced CSS Layout Properties Every Developer Should Know](https://upweb.dev/posts/css-layout-properties-guide): Master modern CSS layout techniques: Writing Modes, Logical Properties, Dynamic Viewport Units, Media Queries Range, @container queries, Anchor Positioning, and Break Rules for responsive design. - [Difference Between new Function() and new function() in JavaScript](https://upweb.dev/posts/javascript-new-function-differences): Understanding the key differences between new Function() and new function() in JavaScript. Learn about dynamic function creation, global scope behavior, and constructor patterns. - [How to Build a React Hook That Handles Sequential Requests](https://upweb.dev/posts/build-sequential-request-react-hook): Build a React Hook for sequential API requests that automatically cancels previous requests. Learn to implement request cancellation with AbortController, improve performance, and enhance user experience with practical examples. - [The Differences Between Object, {}, and object in TypeScript](https://upweb.dev/posts/typescript-object-types-differences): Master TypeScript object types: Object, {}, and object explained. Learn the differences, use cases, and type safety implications. Complete guide with examples for better TypeScript development. - [Ditch dotenv - Node.js Now Natively Supports .env File](https://upweb.dev/posts/nodejs-native-env-file-support): Replace dotenv with Node.js native .env file support. Learn --env-file flag, process.loadEnvFile(), and util.parseEnv() methods. Master environment variable management without external dependencies. - [How to Control the Number of Concurrent Promises in JavaScript](https://upweb.dev/posts/control-concurrent-promises): Learn how to control concurrent Promise execution in JavaScript. Build a zero-dependency Promise limiter to manage API request concurrency. Prevent overwhelming servers and respect rate limits with this lightweight solution. - [How Server-Sent Events (SSE) Work](https://upweb.dev/posts/server-sent-events-tutorial): Complete guide to Server-Sent Events (SSE) for real-time web communication. Learn SSE implementation, benefits, use cases, and how it compares to WebSockets and polling. - [Type Systems in Programming Languages](https://upweb.dev/posts/programming-type-systems): Complete guide to type systems in programming: static vs dynamic typing, strong vs weak typing, and how different programming languages implement type checking for better code safety. - [How to Annul Promises in JavaScript](https://upweb.dev/posts/cancel-promises-javascript): Learn how to cancel JavaScript Promises using Promise.withResolvers and AbortController. Complete guide with practical examples for creating cancelable async tasks. - [The Secrets of JavaScript Object Property Order](https://upweb.dev/posts/javascript-object-property-order): Master JavaScript object property ordering rules. Learn how Object.keys(), for...in loops, and property creation order affect object iteration. Understand integer keys, string keys, and Symbol properties with examples. - [Understanding the infer Keyword in TypeScript](https://upweb.dev/posts/typescript-infer-keyword): Master TypeScript infer keyword for advanced type manipulation. Learn conditional types, utility types like ReturnType and Parameters, with practical examples and use cases. - [Why to Avoid Default Exports in JavaScript Modules](https://upweb.dev/posts/avoid-default-exports-javascript): Learn why to avoid default exports in JavaScript modules. Discover the problems with discoverability, refactoring, and naming conventions. Get practical alternatives and best practices for better code maintainability. - [How to Commit Multiline Messages in git commit](https://upweb.dev/posts/commit-multiline-messages): Learn multiple ways to write multiline Git commit messages. Master git commit with -m flag, temporary files, and printf commands. Improve your Git workflow with proper commit message formatting techniques. - [4 Quick Commands to Find Things in Linux](https://upweb.dev/posts/linux-find-commands): Learn how to use which, whereis, locate, and find to search files and directories in Linux. - [How does HTTPS work](https://upweb.dev/posts/how-https-works): Complete guide to how HTTPS works. Learn SSL/TLS handshake, certificate validation, encryption algorithms, and security mechanisms. Understand the difference between HTTP and HTTPS for better web security. - [Creating a React Hook for Rotating Images at Any Angle](https://upweb.dev/posts/react-image-rotation-hook): Build a React hook for image rotation with aspect ratio preservation. Learn canvas manipulation, rotation calculations, and maintaining image quality. Complete implementation with TypeScript and practical examples. - [7 Lesser-Known HTML Attributes to Enhance User Experience](https://upweb.dev/posts/html-attributes-guide): Discover 7 hidden HTML attributes that improve web usability: enterkeyhint, ordered list attributes, decoding, loading, crossorigin, disablepictureinpicture, and integrity for better user experience. - [How React Router Work in 40 Lines of Code](https://upweb.dev/posts/react-router-internals): Build a React Router clone in just 40 lines of code. Learn how React Router works internally using popstate events, history API, and React hooks for client-side routing. - [Ditch Git Checkout - Use Git Switch and Git Restore Instead](https://upweb.dev/posts/git-switch-restore-commands): Replace git checkout with modern git switch and git restore commands. Learn the differences, benefits, and practical examples for better Git workflow management. - [12 Quick Tips for Writing Clean Code](https://upweb.dev/posts/clean-code-tips): Discover the Top 12 Tips for Clean and Maintainable Code