Obs.js – context-aware web performance for everyone
Obs.js reads a handful of browser signals (Navigator and Battery APIs) to infer connection strength, battery status, and device capability. It exposes…
Obs.js – context-aware web performance for everyone
Obs.js reads a handful of browser signals (Navigator and Battery APIs) to infer connection strength, battery status, and device capability. It exposes…
Low- and Mid-Tier Mobile for the Real World (2025)
It’s important to remember that ‘low-tier’ does not mean old. Likewise, ‘mid-tier’ does not mean ‘a flagship from 2018’. They are a device class in…
The threat to the open web is far more profound than just some platforms that are under siege. The most egregious harm is the way that the generosity…
Shubham Bose
Good UX is highly desired and once you get it right, it feels almost natural, intuitive. The current state of news UI assumes that the reader is an…
Zach Young
Templater snippets (for Obsidian)
Snippets I’ve written for the Templater Obsidian plugin.
I wanted to outline my take on “artificial intelligence” on this page as a more “pinned statement”, albeit non-exhaustive. While “A.I.” is a misnomer…
Raphaël Dardeau
De SPA à MPA : reprendre en main la performance
Avec une SPA, la performance dépend d’un temps d’exécution global de l’application, alors qu’avec une MPA, elle découle directement du travail réellement…
How did we end up threatening our kids’ lives with AI?
It used to be that encouraging children to self-harm, or producing sexualized imagery of children, were universally agreed upon as being amongst the…
Unsung heroes: Flickr’s URLs scheme
This might seem silly. The user interface of URLs? Who types in or edits URLs by hand? But keyboards are still the most efficient entry device. If…
A newbie's guide to self-hosting with YunoHost
Here is a four-part guide showing non-technical people how to get started self-hosting essential internet services with the YunoHost system.
Filter by year and month to see more archives.