Shared links
Things I read and found worth passing on, shared via NewsBlur.
December 2021
- Once Upon Unsubscribe. Or, How I Improved The Way We Manage Subscriptions
- Free browser groovebox: tahti is surprisingly powerful Elektron-inspired groovemaker
- Web3 is going just great
- ECMAScript Proposals Overview
- The Gap between UX/Design and Development: The Design Engineer
- Dating advice for guys
- Ain’t no party like a third party
- My First 5 Minutes On A Server; Or, Essential Security for Linux Servers
- An Inconsistent Truth: Next.js and Type Safety
- Why Electron is a Necessary Evil
November 2021
- SolidJS · Reactive Javascript Library
- Modern PHP Cheat Sheet
- NVIDIA Research's GauGAN AI Art Demo Responds to Words
- Svelte Cubed
- ★ Apple’s New Self Service Repair Program
- A Guide To Modern CSS Colors
- Want to be great? Know a lot
- Cloudflare Pages Goes Full Stack
- Does ES6 make JavaScript frameworks obsolete?
- Ruby vs Python comes down to the for loop
- Useful React Hooks That You Can Use In Your Projects
- From Good To Great In Dashboard Design: Research, Decluttering And Data Viz
- Using Flutter to build a native-looking desktop app for macOS and Windows
- Let's talk about Native HTML Tabs
- Linux on the M1, with GPU acceleration
- React Router v6
- Complex Forms Made Simple
- Developer Tools secrets that shouldn’t be secrets
- Introducing the layer based SVG engine
- Next.js 12
- Rust and JavaScript, sitting in a tree (Next.js 12)
- Trojan Source: Invisible Vulnerabilities
- Evaluating Clever CSS Solutions
- RSS is wonderful
- Git from the inside out
October 2021
- Material Design 3
- Software Architecture Patterns: 5 min read
- Flip flop
- How to deliver a project in 4 easy steps
- Open secrets about Hacker News
- The Codeless CTO
-
"Dune" (the movie), annotated - by Max Read
with a lot of spoilers
- A Deep Dive Into object-fit And background-size In CSS
- Project Healthy Minds’ Guide for Healthy Minds
- Cloudflare Tunnel for Content Teams
- Media Queries Level 4: Media Query Range Contexts
- 100 Bytes of CSS to look great everywhere
- New WebKit Features in Safari 15
-
The CSS-in-React Landscape
nice overview
- Natively Format JavaScript Dates and Times
- Some Typography Links VIII
- Predictions for the Future of Music
- Stop Calling Everything AI, Machine-Learning Pioneer Says
-
A Simple But Effective Mental Health Routine For Programmers
taking care of your health - mental and physical - is always important
- We Analyzed 425,909 Favicons
- “Dark Mode” vs “Inverted”
- Code quality: a concern for businesses, bottom lines, and empathetic programmers
- Crawler Hints Update: Cloudflare Supports IndexNow and Announces General Availability
- Tunnel: Cloudflare’s Newest Homeowner
- AWS is playing chess, Cloudflare is playing Go - Eating the Cloud from Outside In
- What every software engineer should know about search
- Conditional border-radius and three future CSS features
- How I built a modern website in 2021
- Smart CSS Solutions For Common UI Challenges
- Preview Local Projects with Cloudflare Tunnel
- How to win at CORS
- Hoppscotch is an open source Postman alternative
- Useful React APIs For Building Flexible Components With TypeScript
- Offboarding: Saying goodbye with grace
- An alternative frontend to Medium
- TypeScript Tricks I wish I knew when I learned TypeScript
- Replacing docker with podman on macOS (and Linux)
- Do Dev Careers Really Die At 35?
- Atropos — Stunning touch-friendly 3D parallax hover effects
- I keep making things out of checkboxes
- React Internals Part One: Basic Rendering
- The State Of Web Scraping in 2021
- What happened on the Internet during the Facebook outage
- DOM Treemap DevTools Extension
- What is the best comment in source code you have ever encountered?
- 20 Things I've Learned in my 20 Years as a Software Engineer
- What's new with the Windows Subsystem for Linux on Windows 11
-
Google Search no longer supports Internet Explorer 11
let it die!
- Rubocop: Custom Cops for Custom Needs
- Deathloop — UI in videogames
- an architecture that makes and keeps Chrome fast for the long term
- A self-parking car in 500 lines of code
- My Challenge to the Web Performance Community
- Windows 11: The Ars Technica review
- Announcing Cloudflare R2 Storage: Rapid and Reliable Object Storage, minus the egress fees
- Serverless Live Streaming with Cloudflare Stream
- Understanding How Facebook Disappeared from the Internet
- Conditional Border Radius In CSS
- Tiny Helpers
- Defining the WHAT and WHY of Design Principles
- Pros and Cons
- Dark Mode Rises
-
Enabling IPv6 Support for GitHub Pages
finally IPv6 also for GH Pages 🎉
September 2021
- Explore your JS dependencies with Lighthouse Treemap
- Using SWR React Hooks With Next.js’ Incremental Static Regeneration (ISR)
- How We Made Bracket Pair Colorization 10,000x Faster In Visual Studio Code
- How We Build Micro Frontends With Lattice
- A list of games for bored (and curious) designers
- Is Web Scraping Legal?
- Proposal to merge YJIT - Ruby master
- Creating Generative Art with PHP — Ben Gillbanks
- A framework for software quality (no surprises)
- Rebuilding A Large E-Commerce Website With Next.js (Case Study)
- Partytown: Run Third-Party Scripts off the Main Thread in a Web Worker
- Product Design Basics
- The Mom Test - How to talk to customers. A Summary
- Reading Code is a Skill
- 2006: Dwarf Fortress
- Getting Your `head` Straight: A New CSS Performance Diagnostics Snippet
- Be careful what you copy: Invisibly inserting usernames into text with Zero-Width Characters
-
Twitter's div Soup and Uglyfied CSS, Explained
TLDR; the soup is generated by React Native for web
- Motion One — WAAPI Powered Animation Library
- HTTP/3 From A To Z
-
★ The iPhones 13
good conclusion for the iPhone 13 models
- In Quest of Search
- Mistakes I've made in AWS
- Instagram Ruined Photography for Me
- 2021 Scroll Survey Report
- The Future of CSS: Cascade Layers (CSS @layer)
- Designing Beautiful Shadows in CSS
- Don’t attach tooltips to document.body
- Support Import Maps in any browser with es-module-shims
- The World of CSS Transforms
- Ruby is Still a Diamond.
- Learn to say No
- Adding more people to a project
- A/A Testing: How I increased conversions 300% by doing absolutely nothing
- An attempt to answer the question, “If software engineering is in demand, why is it so hard to get a software engineering job?”
-
The Best VGA DOS Games. Period.
I'd add some. Like Syndicate, Lemmings, and prob. some more
- ES2022 feature: class static initialization blocks
- Interactive Learning Tools For Front-End Developers
- How to Talk to People
- Crafting Organic Patterns With Voronoi Tessellations
- Multiple Accounts and Git
- Why Electron apps are fine
- State Management In Next.js
August 2021
- Group Chat, Group Stress
- How much does Spotify pay per stream? Streaming payouts comparison
- Key data structures and their roles in RenderingNG
- Vector? Raster? Why Not Both!
- Software Development Waste
- Why are hyperlinks blue?
- The Mathematics of 2048: Optimal Play with Markov Decision Processes
- From Create-React-App to Next
- React usePrevious Hook
- Modern web apps without JavaScript bundling or transpiling
- Image2Lego: Customized LEGO® Set Generation from Images
- canistilluse.com - Jim Nielsen’s Blog
- HTML is Not a Programming Language?
- CSS accent-color
- Highlights from Git 2.33
- Rebase considered harmful
- Stay alert
- HTTP/3 Core Concepts (Part 1)
- Next.js 11.1
- Static vs. Dynamic vs. Jamstack: Where's The Line?
- Nodejs Security - OWASP Cheat Sheet Series
- The Politics of Choosing a Tech Stack: Thoughts on Overbuilding and Underplanning
- Speeding up Webamp's music visualizer with WebAssembly
- An Old Hacker's Tips On Staying Employed
- Bloom Filters - Much, much more than a space efficient hashmap!
- Global Temperature Over My Lifetime
- Migrating millions of users to Auth0 without downtime
- Vue 3.2 Released
- JavaScript needs more helper functions for iteration (map, filter, etc.) – where should we put them?
- You should turn off autofill in your password manager
- Fix Seeing “0” in Your JSX Code
- Frustrating Design Patterns: Disabled Buttons
-
Shopify engineers on replacing Sass
I should have a look into vanilla-extract, looks usable
- Mine Captcha
- Using console.log() debugging in Visual Studio Code
- CCC meldet keine Sicherheitslücken mehr an CDU
- How To Build Resilient JavaScript UIs
-
The Ultimate Guide to Software Project Estimation
estimations are always hard
- Node `timers/promises` for browser and server
- Refactoring CSS: Strategy, Regression Testing And Maintenance (Part 2)
- Drum Synthesis in JavaScript
- Migrating Facebook to MySQL 8.0
July 2021
- Helvetica® Now Variable
- ES2021 features!
- Frustrating Design Patterns: Broken Filters
- Maintaining End-To-End Quality With Visual Testing
- Execute ES Modules on the CLI
- “For developers, Apple’s Safari is crap and outdated”
- How I Built a Cross-Platform Desktop Application with Svelte, Redis, and Rust
- Simple monorepos via npm workspaces and TypeScript project references
- RenderingNG — Ready for the next generation of web content
- Rendering 1M+ Particles
- Images are hard.
- Prevent unwanted Layout Shifts caused by Scrollbars with the scrollbar-gutter CSS property
- JavaScript: Hostnames as self-executing fetches
- gridless.design
- Reliable, Deliverable, Self-Hosted Email
- Delta Variant: Everything You Need to Know
- How to Write a Git Commit Message
-
Do nothing
> Me: spend 2 minutes pondering how to politely suggest a better method of asynchonous communication. exactly this. If you want something, don't just say "Hi" - say what you want. This already saves a lot of time
- TypeScript and native ESM on Node.js
- The Large, Small, and Dynamic Viewports
- Detecting Hover-Capable Devices
- Software estimation is hard. Do it anyway.
- Neuralink and the Brain's Magical Future — Wait But Why
-
Kaspersky Password Manager: All your passwords are belong to us
with good explanation about different RNG generators and why the one Kaspersky is (was) using is bad
- Redesigning NewsBlur on the web, iOS, and Android
- Using HSL Colors In CSS
- How to Start Liking Running
- What's new in ES2021
-
Explaining blockchains to developers
nice overview how blockchains work
-
Carrier injects 'SMS AD' into Google verification code
Great example why 2FA with SMS is bad
- YAGNI exceptions
- What are reddit's favorite books?
- Whatever Happened to UI Affordances?
June 2021
- Tips for Better Signup / Login UX
- Visions of the Future
- How a Docker footgun led to a vandal deleting NewsBlur’s MongoDB database
- Temporal: getting started with JavaScript’s new date time API
- Nice nginx features for operators
- Image To Text Conversion With React And Tesseract.js (OCR)
- DuckDuckGo Continues to Grow
- Why Is It OK to Be Mean to the Ugly?
- CSS @supports rules to target only Firefox / Safari / Chromium
- It haunts us
-
React Ruined Web Development
some thoughts about modern frontend web development
- A Complete Guide To Accessibility Tooling
- WebSockets for fun and profit
- Media Queries in Times of @container
- A text-based HTTP client in your browser
- When Then Zen
- Modern Python Developer's Toolkit
-
target=blank
remember the basics
- Equal Columns With Flexbox: It’s More Complicated Than You Might Think
- Implementing Private Fields for JavaScript
- The Plan for React 18
- The Art of Design Spec'ing
- Introducing Astro: Ship Less JavaScript
- The First Images NASA’s Juno Took As It Sailed by Ganymede
- Angular Leading Practices
- Links on Accessibility
- Chrome extension devs get hit up incessantly with monetization proposals
- How to optimize ORDER BY RANDOM()
-
KeyboardCleanTool
alternative to turning of the Macbook while cleaning your keyboard
- Principles for user-centered front-end development
- Engaging Focus Rings
- Beginner JavaScript Notes + Reference
-
You might as well timestamp it
long used pattern: use timestamp instead of boolean to store switches
- Clever vs Insightful Code
- Front-End Testing is For Everyone
- A guide to the Modern Minimal UI style
- Testing in the Twenties
May 2021
- The magic of keeping a clean Git history
- Finally understanding PNG
- What’s New In CSS?
- The 5 Rules of ARIA
- CSS Container Queries: Use-Cases And Migration Strategies
- When Do Programmers Retire? Is 35 the End?
- The Button Cheat Sheet
- Modern Javascript: Everything you missed over the last 10 years by Sandro Turriate
- Amnesia
-
Google AMP is dead! AMP pages no longer get preferential treatment in Google search
finally 🎉
- New – AWS App Runner: From Code to a Scalable, Secure Web Application in Minutes
- DevTools for CSS layouts 2021 edition
- Creating Stylesheet Feature Flags With Sass !default
- A love letter to HTML & CSS
- How We Improved Our Core Web Vitals (Case Study)
-
Birthday Picker
UX about date pickers - esp birthday pickers - is always hard.
- History of RSpec
- Enhancing Photorealism Enhancement
- React Native for Windows + macOS
- You Can Label a JavaScript `if` Statement
- Babel is used by millions, so why are we running out of money?
- Lazy loading JavaScript using IntersectionObserver
- Smooth Scrolling Sticky ScrollSpy Navigation, with CSS fixed backgrounds
- Custom State Pseudo-Classes in Chrome
- Links on Typography
- How we use Web Components at GitHub
- 5 React Architecture Best Practices for 2021
- The Kindle Lock Screen Can Now Display Book Covers
- CSS Hell - To Hell with bad CSS!
- Scroll-Linked Animations with CSS Scroll-Timeline (CSS Café)
- Bootstrap 5
- How often do people actually copy/paste from Stack Overflow? Now we know
- CSS tips and tricks (you won’t see in most tutorials)
- Create a color theme with CSS Relative Color Syntax, CSS color-mix(), and CSS color-contrast()
- A first look at CQFill, a Polyfill for CSS Container Queries
- A Beginner’s Guide To Proxies in JavaScript
- Spending money on Twitch
- Accessibility in Design Systems
April 2021
- SponsorBlock - Skip over YouTube Sponsors
- How to deal with pushback to your initiatives
- $70 3D printed Manual Espresso Machine
- Web Interface Handbook
- CSS Smooth Scroll
-
My current HTML boilerplate
Good basic boilerplate with good explanations
-
The Endless Acid Banger
in browser 303-303-909 acid music created by an algorithm which shuffles things from time to time
-
Volumio - The Audiophile Music Player
can be installed on a Raspberry Pi
-
Apple TV+ Original Content Quality
I really like the Apple TV+ content so far. But yes - way less content than the other services
- Screw it, I'll host it myself
-
Take your first steps with Rust
An introduction into Rust from Microsoft
-
Tips to Get Faster Code Reviews
I like the idea of "Gangsta merges" - prob. a pattern to have in mind to avoid the all the review overhead for very tiny changes
- Comparing the New Generation of Build Tools
- JavaScript Temporal API- A Fix for the Date API
- How Facebook encodes your videos
- Design Systems 101
- Sass Guidelines improvements
- Going Headless: Use Cases And What It’s Good For
- Don’t Lose Your Head: Evaluating Headless
-
A Complete Guide To HTML Email
Coding Emails in 2021 is still way more annoying than the usual browser fight
-
An awesome list of usable landing page templates
everyone hates same, but everyone uses them
- Style Pseudo-elements with Javascript Using Custom Properties
- Illegal prime number
- Scroll-Linked Animations with CSS Scroll-Timeline (CSS Conf Colombia)
-
Reasons I use the git cherry-pick command
same for me - I don't use it often. But sometimes it really saves you lot of hassle
- Loki · Visual Regression Testing for Storybook
- Jina – an easier way to build neural search on the cloud
- Crystal goes 1.0
- Rethinking the JavaScript ternary operator
- An open source design & prototyping platform for cross-domain teams
-
Oatly: The New Coke
"Putting 12oz of Oatly into your latte and adjusting for the higher GI of maltose means adding almost a tablespoon of table sugar to your drink."
- You shouldn't use your office laptop for side-projects
- CSS Container Queries: A First Look + Demo
- Good Programmers
- Accessible front-end components: claims vs reality
March 2021
- GraphQL IDEs you should know about
- The world's first video game in a font!
- How the Web Audio API is used for browser fingerprinting
- Comparing Svelte and React
- SQLite is not a toy database
-
Ghost 4.0
I still haven't tried it :-/
- A Complete Guide To Accessible Front-End Components
- Simply Explained
- Dropping Support For IE11 Is Progressive Enhancement · The Ethically-Trained Programmer
- Migrating Millions of Concurrent Websockets to Envoy
-
It’s High Time to Replace JPEG With a Next-Generation Image Codec
Nice comparison of alternatives for JPEG
-
A Mind Is Born - 256byte C64 demo
Impressive what you can squeeze in 256bytes while a modern website takes so much more
- In Praise of the Unambiguous Click Menu
- Three important things you should know about CSS :is()
- The Mobile Performance Inequality Gap, 2021
- Indiana Jones and the Last Crusade EGA/VGA comparison
- Debugging Layout Shifts
- Ways to Debug Jest Tests in Terminal
- SWR — React Hooks library for data fetching
- Digging Into CSS Logical Properties
- Take ownership of your live streams with Owncast
-
Finding Mona Lisa in the Game of Life — with JAX » ¬
It's impressive how much thoughts and time some people invest in Game of Life
- How Web Components Are Used at GitHub and Salesforce – The New Stack
- Maximally optimizing image loading for the web in 2021
- A visual guide to SSH tunnels
- Drop-in CSS transitions with transition.css
- Formatting a Date in JavaScript with Intl.DateTimeFormat
- Convert a BlurHash to a CSS background with blurhash-to-css
- The EFF: ‘Google’s FLoC Is a Terrible Idea’
- The Future of CSS: Scroll-Linked Animations with @scroll-timeline (Part 2)
- Photo
-
Fuckin' user interface design, I swear
nice - and true - rant about button placement.
- Speed is the killer feature
- Nature 150 Interactive
-
Flameshot – powerful (yet simple) screenshot software
Screenshot utility for Linux. On macOS I use Monosnap, on Windows ShareX
- JavaScript performance beyond bundle size
- Super fast npm install on Github Actions
February 2021
- Material Design Text Fields Are Badly Designed
- CSS transitions and hover animations, an interactive guide
-
The Future of Web Software Is HTML-over-WebSockets
at least for some apps it may be a good approach - and it's not a "either / or" since I guess it can be both Websockets and JS in one app
- Exposure Models
- Diving into the ::before and ::after Pseudo-Elements / Coder’s Block
- Stop using icon fonts
- Modules, monoliths, and microservices
-
Cleanup Docker
some hygienic tasks to de-clutter you machines
- Before You memo()
- The Future of CSS: Scroll-Linked Animations (Part 1)
- Design Engineering - Snook.ca
- Debugging layout repaint issues triggered by CSS Transition
- An Interactive Guide to CSS Transitions
- Advanced Git Features You Didn’t Know You Needed
- Some Zsh Tricks
- Pixar in a Box: the art of storytellin
- Front-of-the-front-end and back-of-the-front-end web development
- Disable client-side React with Next JS
- code-server — Run VS Code on any machine anywhere and access it in the browser
- Product Design Resources
- Is CSS float deprecated?
- SmolCSS - Minimal snippets for modern CSS layouts and components
- The web didn’t change; you did
- Why I'm losing faith in UX
- Why Wasn't Ruby 3 Faster?
- Making GitHub’s new homepage fast and performant
- Some Typography Blog Posts I’ve Bookmarked and Read Lately
-
Some React Blog Posts I’ve Bookmarked and Read Lately
some really good reads for React devs
- Can you make a basic web app without googling? I can't
-
AWS Cheat Sheets - Tutorials Dojo
AWS services are a jungle, nice to have an overview
- Disqus, the dark commenting system
-
What to put in a technical resume
I guess it's not just for Google
- 2020 JavaScript Rising Stars
- Steepen the Curve
- The state of Go
- A theory about PHP
- Building docker images the proper way
- How to Build Good Software
- LEGO® White Noise
- Easily include Blurhash placeholders in your React projects with react-blurhash
-
What’s new in ES2021
happy to see the logical assignment operators coming to JS
- Tao of React – Software Design, Architecture & Best Practices
- Don't use functions as callbacks unless they're designed for it
January 2021
- How to avoid layout shifts caused by web fonts – Simon Hearne
-
How to be clear – gilest.org
Prob. not just for writing, but for communicating in general
- Servers: cool once again
- :focus-visible Is Here
- Form Validation: You want :not(:focus):invalid, not :invalid
- The Minimum Content Size In CSS Grid
- Building a DIY Stream Deck (Mini Macro Keyboard)
- Monorepo
-
Why Tailwind Isn't for Me
that post assembles lot of points why I feel Tailwind is also not for me. But I still have to try it to figure out for my own
- CSS is awesome: A dark/light mode switch with preference detection in 15 lines of CSS
- Front-End Performance Checklist 2021
- Photo
- Tech Stacks and Website Longevity
- Add scroll margin to all elements which can be targeted
- CSS Frameworks, hype and dogmatism
-
The styled-components happy path
personally I don't like styled components too much. But a nice overview and guide is always good to have
- Welcoming Open Web Docs to the MDN family
-
Servers: Cool Once Again
sometimes it does not need a full PWA to have a fast frontend
- Hush: Noiseless Browsing for Safari
- The Productivity Guide - With Examples that Work
- Pair CAPTCHAing
- How We Improved SmashingMag Performance
- How to Record Screen Actions as a Puppeteer Script
- Why webcams aren’t good enough
- CORS Visualized
- Life of a Netflix Partner Engineer -The case of the extra 40 ms
- Comprehensive (language-agnostic) guidelines on naming variables & functions
- My Favourite DevTool Features
- Creating a Signal account
- Alt vs Figcaption
- The complete guide to CSS media queries
- Guide to Advanced CSS Selectors
- Design Principles For The Web
- Responsible Web Applications
- Using Emoji as the Mouse Cursor on a Webpage
-
The terminal, the console and the shell
Nice explanation what is what
- 2020 Game
- PETAL – the end-to-end web stack
- Progressive Web Apps in 2021
- A brief history of Responsive Web Design
- containerd development with Linux and multipass
- Generative blob characters using SVG tutorial
- React Server Components
- Sticky CSS Grid Items
-
Gravitricity
really simple idea how to 'store' energy and release it when needed
- Nested Media Queries
- Looping over Arrays: for vs. for-in vs. .forEach() vs. for-of
- Steam's login method is kinda interesting
- The Art of Building Real-life Components
- 10 Next.js Tips You Might Not Know!
- The future of CSS: Higher Level Custom Properties to control multiple declarations
-
A practical introduction to `jq` (and more)
recently used jq a bit. Powerful tool
- What I Use Now Instead Of Google