IPs as identifiers aren’t great: in a world of both CGNAT (more shared IPs) and a ton of sketchy residential proxies, they’ve become poor proxies for identity of a “thing”.
There's ~four of us trying to reproduce this right now, using Astro and Remix, and cannot at all.
An important note: React-based frameworks tend to use camelCase attributes vs. hyphen-case (which is the output) in components: including the icon library being used here. Something during the build process is not converting them to hyphen-case.
* This is all deployed via the Pages Build system; no local builds at all.
* Someone else on the team has an Astro example stood up with the specific unplugin-icons library: https://astro-svg.pages.dev/ - cannot reproduce the invalid SVG attributes.
We're going to continue investigating but don't see this as widespread and don't yet have any other reports. That there is a _difference_ between the direct deploy vs. using Pages Builds is a problem, though. We've also asked the Astro folks to understand if there's something up here as well.
> The fact that D1 still doesn't support replication is an indication to me that it has been deprioritized, likely with other newer and less used products, while the infrastructure updates are dealt with.
D1 is definitely not deprioritized. We're heads down on replication, and it's important for us to get it right. Takes time!
> What a nightmare! Now your application code spills into your database and our initial goal of simplifying application development is nothing but a long-forgotten dream. All of that for what? To save a few milliseconds to display a web page.
I think "a few milliseconds" vastly understates this: if you want to run your application closer to users, even just across the US, each query is (at least) 70ms just to get over the network and back again.
"Application code spills into your database" was a bad thing when you wrote one language (say, Java, or PHP) and another language (PSQL/TSQL/etc) for your "stored procedures", but that's not what most modern databases are advocating for.
Instead, and not unlike something like React Server Components (RSC), you can choose whether to run code close to the user or closer to the DB (for transactions) in the same language as your application, because it's still part of your application code. This is the model that Durable Objects[1], our coordinated storage service, uses.
Disclaimer: I work on D1 & Durable Objects at Cloudflare, so I'm likely to be called biased here, but it's not like we haven't a) thought about this deeply and b) actually use D1 and Durable Objects to build distributed systems at Cloudflare.
> High schools in Australia have electronics classes.
They do? None of those I know (high school 2000 - 2005) in Perth did electronics. We had the usual woodworking/metalworking/art/photography electives, plus drama & music, but no electronics. We also had extremely sub-par computing classes, with no option for a T.E.E level (i.e. contributes to your University entrance score) computing class whatsoever.
> Try googling novocaine - guess what, you won't find this in the first page of results. Good luck with it. I'm sure it may be one awesome piece of software, but the name is just dumb.
A lot of web projects are "un-googleable", especially when they are first kicking off. Django would be a good example of this—searching for "Django" would often return results about Django Reinhardt, a jazz musician, instead of the web framework.
I think it's a fair assumption to say that an interested programmer might think to append github[1] or audio[2] to their search, in which case the result is in the top 3.