292 private links
Build a web of trusted domains to avoid or detect AI slop
An app on the web performs better on many points. Definitely.
- distribution
- maintenance
- releases
- adoption (shareware funnel to get the desktop app running)
- PDFs only
- provide photos!
- booking online
- integrations (birthday, events, ...)
SEO is important for search engines and other services (TripAdvisor, Google Maps, Instagram). The majority of the users are using smartphones, so mobile-first is definitely a way to built these websites.
About the possibilities of the web
I came to this way of thinking by sheer accident. I was traditionally a desktop business app developer, and by the time I saw the writing on the wall, SPA frameworks were the dominant meta in front end. As I started getting contracts, I worked on one project with such a tight deadline that I simply had no time to bring a critical library into the cinematic React universe. So I just... wrote JS. I modified the DOM. And you know what? It was fine. Not only was it fine, it was easier. I wrote a little stream object in ~50 LoC to react to user inputs, and it worked flawlessly. I felt lied to. I thought making a web page interactive was an insanely difficult task only SPA framework authors were qualified to do? Yet here I was just... scripting the page.
The only cases to use framework is for project maintainability as I've found so far.
La bannière de cookies est vraiment quelque chose que les sites s'infligent eux-même et surtout à leurs utilisateurs.
The Linked Web Storage Protocol specification aims to provide applications with secure and permissioned access to externally stored data in an interoperable way.
Google can replace a web page with another view built with AI.
WebMCP is the new AMP
About the .pn domain name.
“Premium pricing keeps speculative bulk registration out and maintains namespace quality,” EnCirca CEO Tom Barrett said.
There is a story about this TLD: https://www.about.pn/
The author provides an history about the base, reset ,normalize and classless stylesheets.
The page itself is a demo of base.css, a classless stylesheet, and document itself.
Each topic is covered by a description, the rules and the relying css implementation. Each rule is well meant for accessibility such as "You should read a caption without having to scrol". It starts with the CSS Properties.
Use CSS properties for customization. There is the root style rules:
- Set customization options on the the root element for all elements
- Use native properties for font family and font size options.a
- For font size, CSS has font relative units to create variations from the root or parent value.
- For font family, it's useless to use custom property. Its value, a string value, can't create variations. Variation of font family would be by, if possible, using font variant alternates. a
- Use custom property for line height. This maintains unitless value while creating automatic variations for blocks. b
- Use custom property for pseudo content. This enables fallback trick for its native counterpart. c
- Use custom property for the others due to lack of native properties. d
- Prevent adjustments of font size orientation changes in iOS
- Remove padding and margin, use box model of border box, and inherit color and font on all elements.
The library defines carefully the font-family, font-size, line-height, line-length, color, styles, blocks, mixes and phrases.
A font family declaration is a set of typefaces to create safer designs. Using multiple typefaces requires a sound knowledge of type pairings: space, type (sans, serif, cursive), wight, width, style normal and italic, cases: smalls, caps and smapp caps, roles: caption, body and display.
Font-sizes are defined with the em unit and relative calculations based on a --font-scale value.
The line height is computed based on the element around it. For example the paragraph following a hgroup with a heading. It creates a cohesive design.
All line height are derived from a --line-height value.
To respect the support of dark and light mode, developers must use the light-dark() function. Prefer human-based color mdoels such as LCH or OKLCH. The primary color component is Hue. Lightness and Chroma creates variations. Variations for one hue is a monochromatic pallete; for 2 hues is diadic; for 3 hues is triadic; and so on. CSS can programmatically create a live pallete from one hue using calc(). A 90deg deviation creates a complementary scheme; a type of diadic.
The web is filled with unsemantic styles: the absence of styles, the misuse of styles, the lack of unique styles. This can be seen through the lens of base stylesheets, as of writing.
All components — blocks, mixes, and phrases of media and forms — should have unique styles.
Blocks define region in the HTML document. Subsections uses one _ for each nesting level.
Mixes use all-round borders to define the boundary of their content
Phrases is all about content and forms. They are inline content, so their block content is maintained within a line height. Each phrase is clearly identified
This project looks really good. It saves a webpage into a single .html file. It's portable, easy to use and perfect for backups.
See https://www.getsinglefile.com/
There is also a cli version of it: https://github.com/gildas-lormeau/single-file-cli
Monter une vidéo dans le navigateur. OK je prends :)
Ras le bol partagé
Things I already know, but are useful to share
It can be useful someday
Passer les PNG/JPEG qualité 90 à AVIF qualité 50 permet d'économiser au moins 75% de bande passante.
L'idée plus innovante est de compresser au préalable les ressources avant qu'elles soient utilisées.
[Précompresser avant de déployer] veut dire qu’on peut les compresser une seule fois, avec le niveau maximum, et demander à nginx de servir directement les fichiers pré-compressés. Zéro CPU à chaque requête, mais surtout un meilleur ratio au final, car on peut compresser plus fort.
En outre, Zopfli permet de compresser en .zip avec 3 à 8% d'efficacité en plus.
# Serve pre-compressed files generated at build time
gzip_static on;
brotli_static on; # nécessite libnginx-mod-http-brotli-static
# Fallback pour les contenus non pré-compressés
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css text/xml text/javascript
application/javascript application/json
application/xml image/svg+xml;
La compression Brotli permet de compresser à hauteur de 81% le HTML. La score des Web Core Vitals est passé de 70-85 à 99%.