Issue #26

Behind the scenes, React Native Web has entered maintenance-only mode. While this may come as a surprise (to us as well), it has been a silent shift driven by several factors: Zalando moving toward React Strict DOM in 2025, Nicolas Gallagher—the creator of React Native Web—pivoting to work on React Strict DOM, and Software Mansion alluding to React Native Web having “no major features on the horizon” in their 2026 predictions blog post.
If you’re sitting there thinking, what the f^&* is React Strict DOM? let’s take a step back.
The way React Native Web works is by providing browser-compatible implementations of core React Native primitives, mapping components to their closest HTML equivalents. Because of this, your React Native app can run on the web.
Now, React Strict DOM does the opposite: it allows you to write strict HTML and strict CSS. Essentially, it’s a library you install and set up. Meta (previously Facebook) used it to render components on both the web and native platforms. Here’s what the strict HTML API looks like:

Then, very strictly—like a dress code at a private school—you can style your button using the strict CSS API:

So if you’ve been building apps for both web and mobile, you’re probably used to working in React Native and then bridging to the web—maybe with Tamagui, Unistyles, or Uniwind. This is the opposite: it’s web-centric, and it does require a fairly involved, multi-step setup to get working.
It’s also important to note that React Native itself is moving closer and closer to web and native parity. Recent updates (starting with versions 0.82 and 0.83) introduce native support for Intersection Observer, Resize Observer, and Element Nodes (which let you reference, measure, and observe native views: layout, visibility, size, hierarchy in a standardised way).
So don’t go rewriting your entire application just yet—though this may be one to keep an eye on over the coming months to see how things evolve. Who knows, we might all end up being web developers again… if AI doesn’t beat us to it.
👉 React Strict DOM

I know you can vibe-code a photo gallery in thirty minutes—although, why vibe-code a photo gallery when someone else has already “vibed” it for you?
Zimme Zoom—not to be mistaken for Gimme Zoom, or Jimmie Zoom (who was a good uncle of mine)—is a collection of image-related React components by @kulcsar_rudolf. Essentially, what you get is a Gallery component, plus the sub-components that make up that gallery—like the viewer and the carousel:

You can install it in two seconds—no multi-step, hours-long setup—and it’s very straightforward to use.

It also comes with a neat Storybook where you can explore all of the components. Now, with great ease of implementation comes a fair amount of frustration around customisation. As of now, from what we’ve understood by playing around with it and reading the docs, customisation—particularly styling the photo viewer—is somewhat lacking.
This is more of a plug-and-play solution if you want something quick and easy so you can head home early on a Friday. However, if you’re looking for something that can be customized and styled exactly to your needs, Zimme Zoom is probably not for you at the moment.
👉 Zimme Zoom

Consider the snippet below. After one tap, what does it show?

And bonus: what single change makes it show 3?
** Answer incoming ** 🥁
Answer: It shows 1. All three setN(n + 1) calls close over the same n (0), and React batches them. Then the “make it show 3” tweak:

