Elektrine lite

← Feed

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

  • Post #3572035

    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!

  • Post #3572034

    👀 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)

  • Post #3572033

    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

  • Post #2407408

    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. ⚖️

  • Post #2384416

    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.

  • Post #2299291

    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.

  • Post #2259689

    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.

  • Post #2017662

    Interesting DOM localization proposal by Mozilla: https://github.com/mozilla/explainers/blob/main/dom-localization.md. In your HTML: `&amp;lt;link rel=&amp;quot;localization&amp;quot; src=&amp;quot;resource.mf&amp;quot; /&amp;gt;` In the `resource.mf` file: `greeting = Welcome, {$userName}.` In your: HTML: `&amp;lt;h1 l10n-id=&amp;quot;greeting&amp;quot; l10n-args=&amp;quot;userName: John&amp;quot;&amp;gt;&amp;lt;/h1&amp;gt;` Rendered DOM: `&amp;lt;h1 l10n-id=&amp;quot;greeting&amp;quot;...

  • Post #1949366

    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;amp;si=kNcz4wJi1MhWZX4N. I&amp;#39;m mostly involved in the work on Web AI https://youtu.be/q1iK35I9TPU?si=jiZdwoPXJAcha4tm myself. #BlinkOn #BlinkOn21

  • Post #1949365

    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.

  • Post #1949364

    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 🤗.

  • Post #1754480

    `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.

  • Post #1737288

    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

  • Post #1737279

    Everyone who came out to mourn Navalny today, who put down flowers, who chanted &amp;quot;Нет войне&amp;quot;, and who wasn&amp;#39;t afraid because Navalny wasn&amp;#39;t afraid is a hero. ✊ #StandWithUkraine 🇺🇦 #StopPutin 🛑

  • Post #1430451

    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: [&amp;#39;en&amp;#39;], }); const proofreadResult = await proofreader.proofread( &amp;#39;PLease tryt his API and let us knwo how it foes!&amp;#39;, ); ``` It&amp;#39;s powered by Gemini Nano internally and part of Chrome&amp;#39;s #B...

  • Post #1287033

    Introducing a new spam policy for &amp;quot;back button hijacking&amp;quot;: https://developers.google.com/search/blog/2026/04/back-button-hijacking. If you mess with the back 🔙 button, it&amp;#39;s not the growth hack you think it is. I&amp;#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&amp;#39;re suddenly on the news site&amp;#39;s main landing page.

  • Post #1136735

    📢 The slides of Thomas Nattestad&amp;#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&amp;#39;s standardization. For questions, catch either of us at the #wasmIO conference.

  • Post #1100762

    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.

  • Post #1100760

    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.

  • Post #1100756

    If AI helps with rediscovering HTTP content negotiation (#conneg), I&amp;#39;m all here for it: https://cra.mr/optimizing-content-for-agents: &amp;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.&amp;quot;—blog post by David Cramer Section 12 of HTTP: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-negotiation.

  • Post #1020364

    Under the hood of MDN&amp;#39;s new frontend: https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/. How MDN switched from React to Lit.

  • Post #1006302

    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 `&amp;lt;install&amp;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.

  • Post #954886

    This is a fantastic Easter egg story when launching the UNIX `man` command at 00:30 o&amp;#39;clock: https://unix.stackexchange.com/questions/405783/why-does-man-print-gimme-gimme-gimme-at-0030. 🪩

  • Post #954884

    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&amp;#39;t work. As of Chrome 131, you can now _actually_ control the behavior thanks to the new `font-variant-emoji` CSS property! Here&amp;#39;s a demo that shows the effect of `normal` (the current unpredictable default), `emoji`, and `text`: https://font-variant-emoji.glitch...

  • Post #923429

    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.)

  • Post #920422

    I know many of you have been waiting for this: Intent to Ship: `SharedWorker` on Android: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69c49b14.050a0220.2ec94.0888.GAE%40google.com. The `SharedWorker` interface represents a specific kind of worker that can be *accessed* from several browsing contexts, such as multiple windows or iframes: https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker. Chrome on Android has been the odd one out, but it&amp;#39;s finally joining Safari...

  • Post #920421

    Sendspin: Music Experience Protocol: https://www.sendspin-audio.com/. Listen, control, and see your music in every room with Sendspin, an open standard for the complete music listening experience. There&amp;#39;s a demo on the page, and the spec (https://www.sendspin-audio.com/spec) is surprisingly readable. I was especially interested in how the syncing works. (via @balloob) #HomeAssistant #MusicAssistant

  • Post #920420

    🤗 Transformers.js v4 released: https://huggingface.co/blog/transformersjs-v4. See some of the amazing demos: https://huggingface.co/collections/webml-community/transformersjs-v4-demos. Congratulations to the entire team! 👏

  • Post #920419

    Try the Built-in AI extension to get access to browser APIs like… 🧠`LanguageModel` (aka. Prompt API) 🗜️`Summarizer` ✍️`Writer` 📝`Rewriter` 💡`LanguageDetector` 🗯️`Translator` If your browser supports an API natively, it will use it. Otherwise, the extension injects a polyfill into the page that either uses… 🤗 a local model using Transformers.js ☁️ or a cloud model using any of Gemini, Firebase AI Logic, or OpenAI …as the AI backend. 🛍️ Install from the Chrome Web Store: https://chromewebstore.goo...

  • Post #920418

    Home Solar: https://xkcd.com/3226/ #xkcd