Thomas Steiner :chrome:
tomayac@toot.cafe
<p>Developer Relations Engineer at Google, focused on Web AI, WebAssembly, and Project Fugu 🐡. Dad-of-3. Alum of Université de Lyon (Postdoc), Universitat Politècnica de Catalunya (PhD), Karlsruhe Institute of Technology (MA).</p>
Posts
-
View post
Not a manifesto: https://longlivetheweb.org/not-a-manifesto/. Philip Jägenstedt&#39;s thoughts on how great the Web is. I fully agree. We may not mess this up!
-
View post
Sending out #DevOpsHugs 🫂 to everyone, including myself. Just updated tomayac.com to PHP Version 8.5.4! See for yourself, here&#39;s my `phpinfo()`: https://bit.ly/tomayac-phpinfo. What version are you on?
-
View post
WebKit Features for Safari 27.1: https://webkit.org/blog/18486/webkit-features-for-safari-27-1/. This is an interesting post. Rather than say &quot;here are the Viewport Segment and the Device Posture APIs, here&#39;s how to use them&quot;, it asks whether these APIs solve the use cases people want to realize.
-
View post
On my way to #w3cTPAC with a Chromium build with the entirety of the #CrossOriginStorage API: * `navigator.crossOriginStorage.getFileHandle()` * `crossoriginstorage` attribute for HTML * `cross-origin-storage()` URL request modifier for CSS * `crossOriginStorage` import attribute for JS * `crossOriginStorage` `RequestInit` option for `fetch()` * Strawman `browser.crossOriginStorage.*` for extensions * `chrome://settings/content/crossOriginStorage` Settings * DevTools Try: https://github.com/toma...
-
View post
Getting my TOTP data out of Twilio's Authy app thanks to the GDPR: https://blog.tomayac.com/2026/10/17/getting-my-totp-data-out-of-twilios-authy-app-thanks-to-the-gdpr/. New blog post in which I document how I used the sledgehammer 🔨 that is #GDPR to get my #TOTP #2FA 🔐 data out of #Authy and built myself a TOTP Vault PWA.
-
View post
Introducing the Safari MCP server for web developers: https://webkit.org/blog/18136/introducing-the-safari-mcp-server-for-web-developers/. This is a very welcome addition!
-
View post
👀 Look, ma! The Cross-Origin Storage extension running on Firefox! If you dare, install it via `about:debugging` from https://github.com/web-ai-community/cross-origin-storage-extension. Else, just wait for it to be approved on the Firefox Add-on Store. More background on #CrossOriginStorage: https://github.com/WICG/cross-origin-storage. (FYI: @firefoxwebdevs and @krosylight)
-
View post
Started an Awesome Cross-Origin Storage list: https://github.com/tomayac/awesome-cross-origin-storage/ 😎. Transformers.js, WebLLM, wllama, Flutter, Emscripten, Nuxt and Vite plugins, and a bunch of demos… #Awesome #CrossOriginStorage
-
View post
Super useful CSS proposal: `flex-wrap: balance`: https://github.com/bfgeek/flex-wrap-balance/blob/main/README.md#flex-wrapbalance-explainer. (The images in the Explainer make immediately clear why you almost certainly want this.) TAG review: https://github.com/w3ctag/design-reviews/issues/1227. ⚖️
-
View post
Better browser caching with the `No-Vary-Search` HTTP header: https://csswizardry.com/2026/05/better-browser-caching-with-no-vary-search/. Fantastic article by @csswizardry.
-
View post
Fantastic tutorial with inline interactive demos for the `safe-area-inset-*` environment variables: https://polypane.app/blog/using-safe-area-inset-to-build-mobile-safe-layouts/. Never ever have your site content covered by a notch or camera hole.
-
View post
Cursed browser: A web browser with no rendering engine—the VLM reads the HTML and hallucinates the page: https://github.com/scosman/cursed_browser. 😂 The results according to the screenshots in the `README` are surprisingly close to the original.
-
View post
Interesting DOM localization proposal by Mozilla: https://github.com/mozilla/explainers/blob/main/dom-localization.md. In your HTML: `&lt;link rel=&quot;localization&quot; src=&quot;resource.mf&quot; /&gt;` In the `resource.mf` file: `greeting = Welcome, {$userName}.` In your: HTML: `&lt;h1 l10n-id=&quot;greeting&quot; l10n-args=&quot;userName: John&quot;&gt;&lt;/h1&gt;` Rendered DOM: `&lt;h1 l10n-id=&quot;greeting&quot;...
-
View post
The BlinkOn 21 conference is in the books. If you want to catch up on some of the amazing talks, check out the full playlist: https://youtube.com/playlist?list=PL9ioqAuyl6UIc-S8EuPjqkNvsMMmL1flZ&amp;si=kNcz4wJi1MhWZX4N. I&#39;m mostly involved in the work on Web AI https://youtu.be/q1iK35I9TPU?si=jiZdwoPXJAcha4tm myself. #BlinkOn #BlinkOn21
-
View post
You’re about to feel the AI money squeeze: https://www.theverge.com/ai-artificial-intelligence/917380/ai-monetization-anthropic-openai-token-economics-revenue (💰 paywall). Very good article by The Verge on the AI free ride being over.
-
View post
How to Use Transformers.js in a Chrome Extension: https://huggingface.co/blog/transformersjs-chrome-extension. Good technical report by Nico Martin from Hugging Face 🤗.
-
View post
`apfel`, the free AI already on your Mac: macOS Tahoe ships with a 3B parameter LLM. `apfel` gives you CLI access with one `brew install`. No model downloads, no API keys, no configuration needed, just works: https://apfel.franzai.com/. This is just using the Foundation Models framework: https://developer.apple.com/documentation/foundationmodels.
-
View post
So, what exactly did Apple break in the EU 🇪🇺? A new blog post in which I analyze the current situation for Home Screen Web Apps on iOS 17.4 in the European Union. https://blog.tomayac.com/2024/02/so-what-exactly-did-apple-break-in-the-eu.md/ #Apple #iOS #DMA #PWA #EuropeanUnion
-
View post
Everyone who came out to mourn Navalny today, who put down flowers, who chanted &quot;Нет войне&quot;, and who wasn&#39;t afraid because Navalny wasn&#39;t afraid is a hero. ✊ #StandWithUkraine 🇺🇦 #StopPutin 🛑
-
View post
On the Chrome team, we have an interesting new origin trial for you to try in your apps: the Proofreader API: https://developer.chrome.com/docs/ai/proofreader-api. ❌ tyop → ✅ typo ```js const proofreader = await Proofreader.create({ expectedInputLanguages: [&#39;en&#39;], }); const proofreadResult = await proofreader.proofread( &#39;PLease tryt his API and let us knwo how it foes!&#39;, ); ``` It&#39;s powered by Gemini Nano internally and part of Chrome&#39;s #B...
-
View post
Introducing a new spam policy for &quot;back button hijacking&quot;: https://developers.google.com/search/blog/2026/04/back-button-hijacking. If you mess with the back 🔙 button, it&#39;s not the growth hack you think it is. I&#39;ve seen unnamed news sites do this when you navigate to an article page, want to go back to where you came from, but then the back history gets hijacked and you&#39;re suddenly on the news site&#39;s main landing page.
-
View post
📢 The slides of Thomas Nattestad&#39;s and my #WasmIO24 talk on 👉 #WebAssembly at Google 👈 are available at https://docs.google.com/presentation/d/1bnYntCeekIev8hZnizixvLPUV7ljfJ2hNO6vBOcnXlE/edit?usp=sharing. In the talk, we showed a lot of examples of how Google uses #Wasm in its products, creates tooling for Wasm, and contributes to Wasm&#39;s standardization. For questions, catch either of us at the #wasmIO conference.
-
View post
Adobe native apps modify your `hosts` file to see from the Web if its software is installed: https://www.osnews.com/story/144737/adobe-secretly-modifies-your-hosts-file-for-the-stupidest-reason/. LinkedIn scans for traces of installed browser extensions: https://browsergate.eu/how-it-works/. Regular people outside of our tech bubble here on Mastodon have no idea any of this is happening, or even technically feasible.
-
View post
Base64 Is Fast Now, Actually: https://samthor.au/2026/base64-is-fast/. The tl;DR is that you should really use `{from, to}Base64()` (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/fromBase64, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/toBase64) if you can, and only deliver a polyfill for older browser.
-
View post
If AI helps with rediscovering HTTP content negotiation (#conneg), I&#39;m all here for it: https://cra.mr/optimizing-content-for-agents: &quot;The implementation today is simple: content negotiation. When a request comes in with Accept: text/markdown, you can confidently assume you have an agent. That’s your hook, and now it’s just up to you how you optimize it.&quot;—blog post by David Cramer Section 12 of HTTP: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-negotiation.
-
View post
Under the hood of MDN&#39;s new frontend: https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/. How MDN switched from React to Lit.
-
View post
The Microsoft Edge team (and in extension the #PWA team at Google Chrome) is looking for feedback on developer preferences when it comes to Web Install: - declaratively using the `&lt;install&gt;` element (https://github.com/WICG/install-element) - imperatively using the `navigator.install()` API (https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/WebInstall%2Fexplainer.md) You can provide your feedback on the GitHub Issue: https://github.com/WICG/install-element/issues/23.
-
View post
This is a fantastic Easter egg story when launching the UNIX `man` command at 00:30 o&#39;clock: https://unix.stackexchange.com/questions/405783/why-does-man-print-gimme-gimme-gimme-at-0030. 🪩
-
View post
Know how sometimes the warning emoji ⚠️ renders black and white, and sometimes as a proper colored emoji? In theory, you can control this with the variation selectors `U+FE0E` or `U+FE0F`, but in practice, it often doesn&#39;t work. As of Chrome 131, you can now _actually_ control the behavior thanks to the new `font-variant-emoji` CSS property! Here&#39;s a demo that shows the effect of `normal` (the current unpredictable default), `emoji`, and `text`: https://font-variant-emoji.glitch...
-
View post
The Virtual Keyboard API ⌨️ Is broken where it matters most: https://zouhir.org/blog/virtual-keyboard-api/. Fantastic blog post by Zouhir Chahoud that goes into where it hurts: no support by Safari and Firefox, buggy support by Chrome, but Zouhir created very actionable bug reports that you should star ⭐ if you care. (I wrote about the API some years ago: https://developer.chrome.com/docs/web-platform/virtual-keyboard.)