Sign in

Rowan Merewood

@rowan.fyi
857 followers 1.3K following 891 posts

It's rowan.fyi #DevRel with #Chrome at #Google We should improve the web somewhat. 🦣 mastodon.social/@rowan_m 🐙 github.com/rowan-m 👔 linkedin.com/in/rowanmerewood 🧵 threads.com/@rowan_m

PostsRepliesMedia
Rowan Merewood @rowan.fyi · 5h
Nice and light, of course, as behind the scenes it's all just CSS gradients and translates. Poke around the code here: github.com/rowan-m/rowa...
github.com
000
Rowan Merewood @rowan.fyi · 5h
Ages since I made an #opticalIllusion demo, but luckily I saw a video from the master @akiyoshikitaoka.bsky.social and needed an interactive web version. For a little Friday fun you can drag that square back and forth and I promise, hand on heart, it never changes colour. rowan.fyi/made/lightne...
121
Rowan Merewood @rowan.fyi · 11h
Have your agent talk to my agent, darling. We'll work something out. Ciao, babe - let's do lunch! 🍸
010
Rowan Merewood @rowan.fyi · 23h
Getting into the latest #SlowHorses and I love the recurring theme that River Cartwright is just a chronically awful spy. Genuinely causes more problems than he solves.
020
Rowan Merewood @rowan.fyi · 01/10/2026
And with some late night bug fixing, #Nimbye correctly handles accounts with a different PDA or App view, e.g. Blacksky. Thank you @elvedin.officialawesome.com ! Now to see if I can speed up that sync process even more...
000
Rowan Merewood @rowan.fyi · 30/09/2026
Ok, updated! It's working with my test account and, in theory, should work with any PDS / AppView combination.
110
Rowan Merewood @rowan.fyi · 30/09/2026
My gut feeling here is that I'm not properly handling accounts on a different PDS, e.g. Blacksky. Looks like I need to create some test accounts!
100
Rowan Merewood @rowan.fyi · 30/09/2026
Investigating! Do you see an error in the browser console at all?
100
Rowan Merewood @rowan.fyi · 30/09/2026
Living in London this evening.
Simon & Garfunkel - Sounds of Sirens.
020
Reposted by Rowan Merewood
Sanho Tree @sanho.bsky.social · 30/09/2026
Google and Apple immediately update their maps.
392472544
Rowan Merewood @rowan.fyi · 30/09/2026
Always check your project name before launch! Anyway, ByeSky (at least my instance) is now #Nimbye. Same functionality, better pun, 100% fewer naming conflicts, and hopefully not offensive. 🤞 (Also my first solid use of @atproto.com `api` + `oauth-client-browser` for a real app!)
nimbye.web.app
Nimbye — Clean up who you follow on Bluesky
Spot inactive, muted, or one-way Bluesky accounts. Score by real interactions, lock favourites, and unfollow in bulk.
031
Reposted by Rowan Merewood
London Web Standards @londonwebstandards.org · 30/09/2026
There are still tickets available for this
015
Reposted by Rowan Merewood
Jhey ʕ·ᴥ· ʔ @jhey.dev · 29/09/2026
trans<form>er
81194
Rowan Merewood @rowan.fyi · 30/09/2026
The default "SUBMIT" text would work for this guy. 😁
121
Reposted by Rowan Merewood
Josh W. Comeau @joshwcomeau.com · 29/09/2026
I was recently introduced to straw.page, a maximalist Geocities-inspired drag-and-drop website builder. Apparently it's most popular with Gen Z, and it makes me so glad to know this sort of spirit lives on. 😄 🧵 A few examples in-thread.
straw.page
Straw.Page
Straw.Page is the world's simplest website builder. Create unique websites from your mobile device.
68914
Rowan Merewood @rowan.fyi · 29/09/2026
Works of art, every single one. 💖
010
Rowan Merewood @rowan.fyi · 29/09/2026
I'll be honest, I often just sit there pressing the shuffle button until I find ones I like and bookmark them. rowan.fyi/made/strange-attraction//…
I'm not sure I can describe it. It's like the memory of a form. It almost feels three dimensional, but not quite.
010
Rowan Merewood @rowan.fyi · 29/09/2026
I think the updated name is a) unique b) not accidentally deeply offensive to anyone 😅
nimbye.web.app
Nimbye — Clean up who you follow on Bluesky
Spot inactive, muted, or one-way Bluesky accounts. Score by real interactions, lock favourites, and unfollow in bulk.
010
Reposted by Rowan Merewood
Rick Viscomi @rviscomi.dev · 29/09/2026
v0.0.191 of Modern Web Guidance is out and it's a big one! *16* new guides covering: web components by @castastrophe.bsky.social Cross-Origin Storage by @tomayac.com security by @rowan.fyi UI and PWA by @jamessw.com and @sturobson.com Wasm by @sbc100.bsky.social github.com/GoogleChrome...
accessible-web-components: Make custom elements accessible by default, setting roles and ARIA state via the ElementInternals ARIA mixin, managing focus with delegatesFocus, and keeping ARIA relationships within a single shadow root.
custom-elements: Define, register, and manage the lifecycle of autonomous custom elements, covering constructor rules, lifecycle callbacks, upgrade timing, attribute/property reflection, and naming conventions.
form-associated-custom-elements: Make a custom control participate natively in forms with formAssociated and ElementInternals, submitting its own value, integrating with constraint validation, and reacting to reset, disable, and state-restore.
prerendering-custom-elements: Server-render a custom element, then hydrate it in place without re-rendering or a flash of unstyled content.
shadow-dom: Encapsulate a component's DOM and styles with Shadow DOM, construct the tree efficiently with HTML templates, and project consumer content with slots.
styling-web-components: Style across the shadow boundary with :host selectors, inherited and custom properties for theming, ::slotted and ::part, and cascade layers and container queries inside components.
web-components: Orientation and cross-cutting principles for authoring and using Web Components, covering Custom Elements, Shadow DOM, templates and slots, Declarative Shadow DOM, styling across the shadow boundary, Form-Associated Custom Elements, and accessibility requirements. Use this guide when building reusable UI components, design systems, or server-rendered custom elements.
avoid-redundant-large-asset-downloads: Avoid re-downloading and re-storing large shared assets, such as AI models, Wasm modules, or fully-bundled JavaScript libraries, that a visitor's browser may already hold from an unrelated site.
load-shared-resources-declaratively: Serve popular, unmodified scripts, stylesheets, and JavaScript modules from a shared cross-origin cache using markup or import syntax alone, witho…New Guides
migrate-web-app-origin: Transfer an installed web app to a new origin while preserving user configuration and OS-level shortcuts.
local-network-access: Access resources on a user's local network or loopback interface from a public web application.
trusted-types: Help prevent DOM-based XSS attacks by ensuring all untrusted content is sanitized before being inserted into the page.
responsive-table: Build a data table that presents tabular data with proper header semantics, and remains readable and navigable on small screens and with assistive technologies.
spatial-navigation: Implement accessible spatial navigation using arrow keys that works correctly in different layout modes (grid etc)
cpp-on-the-web: Compile C/C++ to WebAssembly using Emscripten

Updated the animated-select-picker guide to advise using standard value attributes on <option> elements to ensure standard form submission behavior.
Updated the branded-select-styling guide to emphasize retaining standard value attributes on <option> elements to preserve default form submission behaviors.
Updated the custom-select-picker-layouts guide with guidance on using :open::picker(select) selectors, customizing the ::checkmark pseudo-element, wrapping <selectedcontent> in a <button>, and managing keyboard navigation and accessibility constraints for grid layouts.
Updated the rich-media-picker guide to clarify that standard value attributes should be maintained on <option> elements to preserve form submission functionality.
Updated the out-of-order-html-streaming guide to document the full suite of static and streaming DOM insertion methods, detailing built-in sanitizer behaviors, WritableStream integration, and processing instruction marker practices.
Updated the sanitize-untrusted-html guide to detail node manipulation patterns using Document.parseHTML() to avoid mutation XSS, explain child preservation rules via replaceWithChildrenElements, and provide aligned DOMPurify fallback configurations.
Updated…Removed the prevent-text-wrapping guide.

HTML processing instructions: Added Chrome 150 and Edge 150 support in out-of-order-html-streaming.

A four-column table titled "Benchmark Evaluations" comparing unguided versus guided pass rates across 132 tasks and 1,124 assertions.

Row 1: codex_cli (gpt-5.6-sol) achieved a 59% unguided pass rate and an 81% guided pass rate, an uplift of +22 percentage points.

Row 2: claude_code (claude-sonnet-5) achieved a 54% unguided pass rate and an 87% guided pass rate, an uplift of +33 percentage points.

Row 3: antigravity (gemini-3.8-flash-medium) achieved a 65% unguided pass rate and a 91% guided pass rate, an uplift of +26 percentage points.
12310
Rowan Merewood @rowan.fyi · 29/09/2026
Ooh, I made the beginner error of failing to check if someone already used the ByeSky name 🫣 Time for a quick rebrand... suggestions welcome.
110
Rowan Merewood @rowan.fyi · 29/09/2026
Excellent! There's a lot more handling of rate limits now, and presumably that was the culprit.
000
Rowan Merewood @rowan.fyi · 28/09/2026
Following way too many people on Bluesky? Want to clean that up? Of course you do. ByeSky gives you a whole heap of configurable options and an easily scannable interface for sorting and unfollowing. I'm calling this v1 so give me your feature requests, feedback, and bugs!
bye-sky.web.app
ByeSky — Clean up who you follow on Bluesky
Spot inactive, muted, or one-way Bluesky accounts. Score by real interactions, lock favourites, and unfollow in bulk.
021
Rowan Merewood @rowan.fyi · 27/09/2026
After all, why not? Why shouldn't I keep going back to old projects if I think they're neat? rowan.fyi/made/strange-attraction//…
Psychedelic snail shell. Acid house escargot.
1130
Rowan Merewood @rowan.fyi · 27/09/2026
I ordered a coffee-based cocktail and the bartender said, "It's a hot cocktail, so you know." I didn't expect that to mean that they had a little furnace at the bar that was heating a poker up until it glowed whereupon they stuck it into the drink and everything caught fire. Delightful.
110
Rowan Merewood @rowan.fyi · 27/09/2026
So it does 😮 I suspect this says more about either my eyesight, reading comprehension, or state of mind.
100
Rowan Merewood @rowan.fyi · 27/09/2026
Forgot the link. Probably the brain worms. fractious-deep.web.app/?x=-1.190064…
fractious-deep.web.app
Fractious
Explore infinite fractals in the Mandelbrot set. Discover beautiful downloadable images and share locations with friends—all with simple, fun controls.
000
Rowan Merewood @rowan.fyi · 27/09/2026
You must post additional #fractals.
Neon green glowing crawling chaos extends dark tendrils down from the sky.
110
Rowan Merewood @rowan.fyi · 27/09/2026
I never thought of scoring my own or anyone else's emoji usage by how violent and intense it was.
110
Rowan Merewood @rowan.fyi · 27/09/2026
I licycled your post.
010
Rowan Merewood @rowan.fyi · 27/09/2026
Code red: read code!
020
Rowan Merewood @rowan.fyi · 26/09/2026
Someone at the meetup reminded me about Fractint, so obviously I'm going to have to fire up DosBox and try that again. Fond memories of waiting to see if I'd picked the right spot or just got a black screen.
010
Rowan Merewood @rowan.fyi · 25/09/2026
All the encouragement I need to keep going on it 😁
010
Rowan Merewood @rowan.fyi · 25/09/2026
I mean, I will talk about this anywhere someone will let me 😁 but this whole evening is really enjoyable. So many passion projects.
000
Rowan Merewood @rowan.fyi · 25/09/2026
Thank you @feelingof.london for joining my enthusiastic exploration of the #Mandelbrot Set #fractal. You can see all the bonus locations linked in the deck here! What locations would you name? And let me know about bugs and feature requests.
docs.google.com
Let's get fractious
Let’s get Fractious It’s rowan.fyi
361
Rowan Merewood @rowan.fyi · 25/09/2026
Weird, I still haven't seen this on mine, but I'll keep digging. Maybe I still need to space the calls out a bit more.
110
Rowan Merewood @rowan.fyi · 24/09/2026
Hot off the press, bye-sky.web.app now has the lock option along with a bunch of other additions and clean up.
bye-sky.web.app
ByeSky — Bluesky Followings Cleanup
111
Rowan Merewood @rowan.fyi · 21/09/2026
I like it. It's not a social network if you don't socialise.
010
Rowan Merewood @rowan.fyi · 20/09/2026
Oh, I really like the detail here. I feel like I'm just using tmux at a really basic level and that session switching pop-up seems really helpful for helping me switch things up to a more powerful configuration.
110
Reposted by Rowan Merewood
daniel wraith @danielroe.dev · 19/09/2026
don't be nice.
roe.dev
Don't be nice
Sometimes, it's more important to be good than it is to be nice.
41734250
Reposted by Rowan Merewood
Kieran Healy @kjhealy.co · 19/09/2026
I assume that when whoever is making it IPOs they will reveal the full lineup implied by the existence of Tilly Norwood.
Grid of logic gate options as Venn diagrams of Tilly Norwood, Tilly Orwood, Tilly Andwood, Tilly Xorwood, Tilly Nandwood, and Tilly Xnandwood
16627121
Rowan Merewood @rowan.fyi · 19/09/2026
Link for this specific point if you want to spare the GPU cycles fractious-deep.web.app/?x=-0.753424…
fractious-deep.web.app
Fractious
Explore infinite fractals in the Mandelbrot set. Discover beautiful downloadable images and share locations with friends—all with simple, fun controls.
000
Rowan Merewood @rowan.fyi · 19/09/2026
I get to do a demo of #fractious at @feelingof.london this week which has me in an incredibly productive mood. So, I've fixed a major performance issue, cleaned up the UI, and spent the mandatory hour or so picking out a screenshot. Maybe see you on Friday?
Let's start with the standard part of the description, it's a web app - your standard window furniture, yadda yadda. However, the controls are somehow both slick and playful. Chunky Fisher-Price buttons on an Aston Martin. Very minimal though in order to save space for this ridiculous deep zoom into the Mandelbrot fractal. A weird glowing magenta Mandala, strange cosmic ropes wrapping a center point with the classic Mandelbrot outline just about visible.
130
Rowan Merewood @rowan.fyi · 19/09/2026
The plot thickens!
A photograph of a poster in what looks like some kind of bar or restaurant. It's been expertly edited, I mean you need a keen trained eye to spot this, to obscure some of the words on the poster. It now reads, "Due to recent events BIGFOOT no longer permitted on the Patio". And us, patio is in title case. Why I cannot say. Is patio actually some kind of brand name, like band aid or hoover? Anyway, I'm getting off track.
040
Rowan Merewood @rowan.fyi · 18/09/2026
This is so much fun! 🧲😗🤌
010
Reposted by Rowan Merewood
Otto Ojala @ottoojala.com · 04/09/2026
This has already brought me so much joy, thanks to everyone who's signed the guestbook so far <3 Or if it's just one person who's written all these, thank you! :'--)
2133
Rowan Merewood @rowan.fyi · 18/09/2026
You're going to have to wait a long time to conclusively say if it *never* touches one of the animals.
020
Reposted by Rowan Merewood
Ben Schwarz @benschwarz.bsky.social · 16/09/2026
Google started shipping ad metrics in CrUX overnight, so I’ve added them to Calibre's free Core Web Vitals tool. First look at the Independent: ads take up 20% of the screen, 7.25s of CPU and 5.1MB of data per page. 88% of their readers are on phones. calibreapp.com/tools/core-w...
Calibre's Core Web Vitals report for independent.co.uk showing new advertising metrics from Chrome User Experience Report. Total network usage by ads is 5.10 MB and total CPU usage by ads is 7.25 seconds at the 75th percentile, with the CPU figure trending upward over the last three months.
1104
Rowan Merewood @rowan.fyi · 15/09/2026
Ooooh, so it is! TIL.
000
Reposted by Rowan Merewood
Glenn Gabe @glenngabe.bsky.social · 15/09/2026
Every site owner running ads (especially a lot of ads) should run this TODAY :) -> Google debuts ‘ad detection tool,’ letting marketers better assess ad experiences in Chrome "We’ve all encountered overwhelming ad experiences on the web,”...
digiday.com
Google debuts 'ad detection tool,' letting marketers better assess ad experiences in Chrome
Google's new tool is geared to help paid-for media teams, both on the buy- and sell-side, better assess audiences' ad-load experiences.
183
Rowan Merewood @rowan.fyi · 15/09/2026
I couldn't immediately see a way to view these on mobile, but switching to desktop mode does give me the side navigation.
100