Local Network Everything
Y'know when you type
google.com
and your computer sends you the website for Google? Imagine if your smartphone had a name—let's call your smartphone Piñata— and you could access all the files on your smartphone by typing—on your laptop, typing:
piñata.local/photos/myTenDollatLatte.png
Imagine if you wanted to share a website with someone and you could just open up the Notes app on your phone, write:
<h1>You won't BELIEVE what happened today</h1>
<p style="font-size: 24pt; background-color: red; color: white;">It was so wild that sending a text wouldn't sufficiently capture my anger so I made you this little website. Anyway, when I walked into work ...</p>
and then you could text your friend a link:
piñata.local/notes/drama.html
and, so long as your friend is on your WiFi, your friend would see:
Wait, what? My friend has to be on my wifi to see this? Why not just put it on the internet??
Idk. Why do anything at all? Because it's fun! Because local website are fast. Because having a website gated on being on the same WiFi is an interesting social provocation! This piñata.local/* URL is using a technology called mDNS. It works by creating little *.local addresses on you local WiFi network allowing easy networking between all the computers (laptops, phones, but also thermostats, cameras, thermometers, refrigerators, etc. etc.) on your local network.
Living in this universe we would have:
1. Local-first websites — the most local websites, it doesn't get more local than only sharing data when you're in the same room or building with each other
2. Security — your sharing files/data/apps across local WiFi. You can basically trust that whoever's on the network you know about. If you have an untrusted user on your password-protected WiFi you have way bigger issues than them being able to access piñata.local/photos/🌶️pics.zip
So, what would it take to have this new world? This local-networking our phones and laptops world?
Everything needs:
1. An mDNS daemon running on it
2. An agreed upon local DNS schema for all the objects in my life to share data(e.g. if my phone is piñata I should be able to just go to piñata.local, or if my camera is Nikon024 I should be able to go to nikon024.local to get my photos)
3. Software (website, mobile apps, desktop apps) that supports this natively so that you can write quick little programmable utilities and share things with friends/family/coworkers on your own network.
The gory details of current implementations:
Right now there are lots of bespoke open source solutions for IoT but those aren't user-friendly enough for the Local Network Everything world I'm dreaming of. On desktop operating systems: there's Bonjour on MacOS, Avahi on Linux, and Windows started supporting mDNS in 2022. Mobile implementations are spotty, so it would be pertinent to make the situation there, on non-iOS platforms, much better.