Aleksandr Hovhannisyan
How to Split Stems for Free
Remote Code Execution with LLM Agents
Cache-Busting Assets in Eleventy
In Memory of Em
Making Windows 11 Usable
How to Correctly Install the Framework 13 Bezel
How to Wipe a Drive Without Removing It
How to Open and Close HTML Dialogs
How to Import and Export WSL Distros
Tag, You're It
To Parse an Int
Syntax Highlighting with Prism.js and markdown-it
2024 in Review
A Tale of Two Routes
CLI Cheat Sheet for Videos
Performant Game Loops in JavaScript
Useful Bash Aliases
Access Windows Files from WSL
Get the IP Address of a Linux Machine
I Moved to Cloudflare
Eleventy Images Just Got Better
An Introduction to Unicode
Virtual Templates in Eleventy
Creating Perfect Font Fallbacks in CSS
Hearing Silence
My First DIY Laptop Upgrade
(Don't Fear) Mutation
2023 in Review
The Perfect Theme Switch Component
Naturalized
Interactive HTML Code Demos in Eleventy
Class Fields vs. Methods in JavaScript
Listening for Key Sequences in JavaScript
Detecting Nested Components in React with the Context API
An Interactive Guide to JavaScript Events
A Font-Face Faux Pas
Writing Better Documentation
Serializing HTML Form Data with JavaScript
The Cost of Tech Debt
Modular Arithmetic and the Diffie-Hellman Algorithm
Password Composition Rules Are Counter­productive
Tech Twitter Burnout
Creating an Accessible Image Carousel
Limiting Memory Usage in WSL2
A typeof Typo
Add Build Info to an 11ty Site
A Set of Useful 11ty Filters
Use Rems for Font Size to Respect User Preferences
Overzealous Destructuring
Changing the Locale in Chrome with Dev Tools
Gated Content, Broken Locks
How to Download and Optimize Google Fonts
Custom Markdown Components in 11ty
HTML Input Validation with JavaScript
Creating a Fluid Type Scale with CSS Clamp
Modern Techniques for Writing Better CSS
Managing Keyboard Focus for Load-More Buttons
Configuring Web Fonts in 11ty with Global Data
Optimizing Images with the 11ty Image Plugin
Add Comments to a Dev Blog with Netlify Functions and the GitHub API
Managing Complex State in React with useReducer
NFTs Are a Problem
Preventing Layout Shifts in Status Text with CSS Grid
Represent State with HTML Attributes, Not Class Names
Passing Object Arguments to Liquid Shortcodes in 11ty
Dynamically Importing Components with React.lazy
Automate Netlify Redirects in 11ty
Awaiting Multiple Promises with Promise.all
Cleaner Type Predicates with Derived Types
The 62.5% Font Size Trick
Don't Use a Fixed Line Height
11ty: The Good, the Bad, and the... Possum?
React, Iframes, and a Back-Navigation Bug
Make Atomic Git Commits
How to Format on Save with ESlint
CRLF vs. LF: Normalizing Line Endings in Git
Why Developers Should Write
Set a Width and Height on Images to Reduce Layout Shifts
Why You No Longer Enjoy Reading
Why I Don't Like Tailwind CSS
SVG Tutorial: How to Code SVG Icons by Hand
Creating a Vertical Rhythm with CSS Grid
Rest in Peace, Flash
Subtle Accessibility Failures (And How to Fix Them)
Be Careful with Async Functions that Return Booleans
Dynamic Tag Name Props in React and TypeScript
6 Ways to Undo Changes in Git
Does Web Performance Matter? It Depends.
Creating Aspect Ratios in CSS
Hesitation Is Defeat
JavaScript Promises: Practical Use Cases and Examples
Optimizing Images with WebP and Lazy Loading
Don't Mind the Leetcode Grind
An Introduction to HTTP Cookies
Semantic HTML: Building a More Accessible Web
How to Test Localhost on Mobile (with ngrok)
Add Comments to Jekyll with the GitHub Issues API
Binary for Beginners: The ABCs of 0s and 1s
Goodbye, GitHub Pages—Hello, Netlify
Is JavaScript Pass by Reference?
How to Add a Copy-to-Clipboard Button to Jekyll
Getting Started with Jekyll and GitHub Pages
Implementing a Finite State Machine in C++
Invulnerability Frames in Unity
Using WebP Images in Jekyll
Least Squares Fitting: How to Fit a Curve to Data
The Method of Least Squares
Outer Wilds: Stop and Smell the Pine Trees
Implementing a Trie in Python
Operating System Scheduling Algorithms
Hard Links and Soft Links
Learn to Code Without Wasting Time & Money