Nextdns: like a pihole in the cloud

We’ve got a pihole set up at home, and it protects us from trackers and such when we browse by blocking DNS queries to known problematic hosts. It only does that while we’re at home, though (which, granted, has been a lot this year!).

NextDNS provides a similar sort of service in the cloud, with the same sort of rationale. They’ll give you 300,000 DNS queries per month for free, which doesn’t appear to be much. Our pihole puts us at more than 69,000 queries over the past day(!). Still, the service is only $20/year, which seems fairly reasonable.

Tracking down the surveillants

Martin Gundersen wrote My Phone Was Spying on Me, so I Tracked Down the Surveillants, in which he writes about about how apps which, in theory, shared some information for ads ended up with that information going to a company that sells information to law enforcement agencies.

Along these lines, it is notable that Apple is still planning to cripple the IDFA sometime in the iOS 14 cycle, which will make it a lot harder to track people across apps.

I am opposed to surveillance capitalism. I don’t think it’s necessary, and the potential is there for great harm.

New Tufte book

Edward Tufte has written a new book: Seeing with Fresh Eyes: Meaning, Space, Data, Truth. This is his latest in a beautiful, detailed series of books on information design.


Elder.js is a Svelte static site generator and web framework. Be interesting to compare this with SvelteKit, once SvelteKit is more available/done.


narration.studio is an in-browser tool for creating a voiceover narration by following a script. It automatically edits based on what you say when compared against the script. Very clever idea, and [it’s even open source](https://github.com/stevenwaterman/narration.studio.

  • 2021-06-09
    • Back on 2020-12-03, I came across Elder.js. Astro sounds like a similar idea, but framework agnostic and likely tuned for different and less complex cases. Still pretty cool that you can render your site to static HTML, mixing in JS when needed and hydrating the components as they’re used.