Link Collection
Explore every link across issues, then narrow by search text, category, tag, or Link Week.
Prefer browsing by issue? VisitWeekly Links Archive.
Showing 204 of 204 links.
The Emoji Series
The golden rule of customizable select
Creating memorable web experiences with modern CSS
MapKit JS 6
Storied Colors: The stories behind colors
Quake rendered in CSS
The Emoji Series: Interview with Apple emoji designer Ollie Wagner
Building a real-world blog with Astro
ESLint Plugin Unicorn provides 300+ rules for better TypeScript
Compile Zod schemas into zero-overhead validators
Calvin and Hobbes and the price of integrity
Bubbles: community-ranked independent blogs
Introducing the MDN MCP server
The scope of CSS @function
TypeScript 7.0 RC
Experimental shared-memory threads for JavaScriptCore
You don't need 'navigation' in navigation labels
Ending responsive images
Taken: What your browser knows about you
Vite 8.1
Astro 7.0
What are Git worktrees and why should I use them?
TanStack Start: a mental model for Next.js developers
PACT: Anonymous Credentials for the Web
Wiggly range slider with CSS
Grid lanes and accessibility
Improving card patterns with anchor positioning
Everything you need to know about sourcemaps
Making Graphics Like It's 1993
CSS @function deep dive
CSS gap rules for grid and flex
Animate between pages using CSS view transitions
Scrubbable staggered animation with CSS @function
WWDC26: Rediscover the HTML select element
WWDC26: Learn CSS Grid Lanes
Answers for myths and pushback around accessibility
The Field Guide to Grid Lanes
nsafs: Use NSA as cloud storage
πfs: Use pi as file storage
Modern engineering values
Doing nothing at work
HN Comments: Doing nothing at work
Frontend engineering archetypes
How TypeScript infers type variables
Cleaning up after AI rockstar developers
Claude Fable 5 and Claude Mythos 5
iOS 27 features we didn't see on stage
News from WWDC26: WebKit in Safari 27 beta
Content-aware heading levels
VoidZero Joins Cloudflare
Identify AI written content
Your recursion is lying to you
Your debounce is lying to you
Your throttling is lying to you
The Notebook: A History of Thinking on Paper
Threema: Swiss secure messaging app
Words of Type: Terms used in typography
New to the Web Platform in May 2026
Front-End's Missing Metric: The Total Blocking Time Window
The Unreasonable Effectiveness of Checklists
Odysseus: self-hosted AI workspace
Build collaborative apps with Hocuspocus
How to Evaluate an npm Package in 2026
Opt-in install-scripts policy in npm
TypeScript tips everyone should know
Intentionally blocking rendering with JavaScript
Why does tsgo use so much memory?
Julia Evans moving from Tailwind to CSS
Tailwind and the Femininity of CSS
The problem with HTML reset buttons
CSS Database: What's next for CSS?
Project Hail Mary star map
My Experience Using Kagi Search With Low Vision
GitHub faces a fight for its survival at Microsoft
Google's Antigravity Bait and Switch
Entire: Git History for AI Agent Sessions
Magic: The Gathering: Fun 40
Magic: The Gathering: The Danger Room
Classic rock, Mario Kart, and why we can't agree on Tailwind
We've made the world too complicated
HN Comments: We've made the world too complicated
State of AI 2026 Results
Accessibility for Everyone by Laura Kalbag
Better fluid sizing with round()
A few ways of specifying per-theme colours in only CSS
Cross-Document View Transitions: The Gotchas Nobody Mentions
Julia Evans moving from Tailwind to CSS
Tailwind and the Femininity of CSS
The problem with HTML reset buttons
CSS Database: What’s next for CSS?
Project Hail Mary star map
My Experience Using Kagi Search With Low Vision
GitHub faces a fight for its survival at Microsoft
Google's Antigravity Bait and Switch
Entire: Git History for AI Agent Sessions
Magic: The Gathering: Fun 40
Magic: The Gathering: The Danger Room
Classic rock, Mario Kart, and why we can't agree on Tailwind
We've made the world too complicated
HN Comments: We've made the world too complicated
State of AI 2026 Results
Accessibility for Everyone by Laura Kalbag
Better fluid sizing with round()
A few ways of specifying per-theme colours in only CSS
Cross-Document View Transitions: The Gotchas Nobody Mentions
Software engineering may no longer be a lifetime career
HN Comments: Software engineering may no longer be a lifetime career
JavaScript Decompiler
VS Code Agents
DMA Choice Screens increase Firefox market share
Zulip open-source team chat
How GitHub improved Issues navigation performance
Mark Erikson's thoughts on AI and the future of software development
Learning Software Architecture
HN Comments: Learning Software Architecture
Untools: Thinking tools
Rolldown 1.0
33 JS Concepts
Features of the Web Platform influenced by libraries
Nanotags, a Web Component library as a React alternative
Replacing boolean flags with option objects
Anime.js, animation library
Type-safe forms with Formisch
Auditable JavaScript with WAICT
Protecting the open web from AI crawl threats
Escaping cascade layers with !important
Design QA with Playwright screenshots
Practical guide to ARIA roles
Multi-stroke text effect in CSS
Proton Meet encrypted video conferencing
Browser 3D physics with CrashCat
Mozilla's opposition to Chrome's Prompt API
You are not your job
Media query range syntax
Avoiding notch bugs with CSS safe-area insets
Chrome's 4 GB AI model download raises privacy and consent concerns
Mozilla pushes back on Google's Prompt API plans
Jake Archibald on browser AI and the Prompt API
Scroll-driven animations
Announcing TypeScript 7.0 Beta
The end of responsive images
Compositing and blending
CSS recently in all browsers
Cursor Camp
Laws of UX
Thread on X (via xcancel)
Typography with container queries
Building a layout without breakpoints
Keyboard sound visualization
Artemis image gallery
AI and hiring
Bonsai styles
Tim Cook’s impeccable timing
Details that make interfaces feel better
The vertical codebase
Why I don’t chain everything in JavaScript anymore
The scope of TypeScript type guards and assertion functions
Build with React, run on Salesforce
HTML and CSS support in email clients
MJML for generating email HTML
OKLCH colors in VS Code
Squash and stretch
SVG filters guide: getting started with the basics
OKLCHanger
Container query typography systems
Uses for nested promises
Hanging promises for control flow
Parse, don’t validate TypeScript
The Intl API: the best browser API you’re not using
JSON Alexander
DaVinci Resolve Photo
MDN front-end deep dive
Concepts
Charkoal
Git commands before reading code
Škoda DuoBell
Top ten Figma betrayals
Monosketch
WireText
Emdash
State of AI 2026 survey
Alternatives to the !important keyword
CSS subgrid is super good
What to know in JavaScript: 2026 edition
Making emojis and icons screen reader accessible
Axios compromised on npm – malicious versions drop remote access trojan
Custom property editors in Optimizely CMS 13
Input font
Monaspace case study
Less but better – Dieter Rams poster
Three pillars of JavaScript bloat
Preloading images
Signal: the push-pull based algorithm
FireBun: Node to Bun for 5x throughput
Knip
Test IDs are an a11y smell
k6 open source
CodingFont
Announcing TypeScript 6.0
The great CSS expansion
Scroll-driven corner shape animations
Awesome macOS
Why so many control rooms were seafoam green