The browser is the wrong medium for local-first 🫠 Act accordingly. (I don't think we can fix browsers unfortunately)
Daniel Norman
@norman.life
building software and writing about it Currently working on @radicle.dev and @ipfs.tech local-first software, bicycles, motorbikes, woodworking, fixing,and making stuff https://norman.life https://agencymatters.xyz
UPDATE: Bitchat is now mirrored on @radicle.dev — censorship-resistant, peer-to-peer code hosting: iOS/macOS: rad:z2v9tRJz1oknFAqCSY5W5c76nVvm6 Android: rad:z347HbE1F4c77DVLvsPe2ApoEEw6f Clone it. Seed it. Keep it alive. 👇
3rd year at @localfirstconf.com What keeps me coming back isn't the talks -- it's that the same faces keep showing up, and they're slowly turning into friends Feels less like a conference, more like a movement working to elevate user agency with software
2026 @localfirstconf.com is truly one of the few places that unite disparate communities—open source, LLMs, p2p, interface design, standards—behind a shared value: user agency and empowerment. How refreshing to witness the openness and curiosity everyone brings to the discussion.
Two tools I recently learned about for sandboxing agents without needing a full VM nono.sh agent-safehouse.dev
Agent Safehouse
Sandbox your LLM coding agents on macOS. Kernel-level enforcement via sandbox-exec — deny-first, composable, zero dependencies.
agent-safehouse.dev
So let me get this right, the European Parliament has already rejected the mass surveillance of chats twice, but suddenly an emergency vote passes (during European summer!) that it should be voted on for the third time? What’s the most charitable interpretation?
Unfortunately not going to make it to @localfirstconf.com this year, but have a couple tickets now that aren’t going to be used. If you’d like to go but couldn’t afford tickets give me a shout!
We shipped content addressing to millions of users, then spent ~10 years pretending the spec already existed. 😅 Well, billions of CIDs later, it's finally real: the official CID spec is live on the @ipfs.tech specs. specs.ipfs.tech/cid/ Thanks @lidel.org and @robin.berjon.com
CID (Content IDentifier)
Self-describing content-addressed identifiers for distributed systems
specs.ipfs.tech
The future is now! - Dial keys, not IPs, thanks to Iroh - Fetch hashes, not URLs, thanks to DASL - Build on shared records, not siloed databases, thanks to the AT Protocol
We just released the first stable version of iroh, v1.0! Read about it: www.iroh.computer/blog/v1 We're super proud of where we landed with iroh's 1.0. Since version 0.35 it feels like we've entirely replaced the "engine underneath". Are you a fellow key-dialer? Come tell us how you use iroh!
A new blog post is out. This time I try to provide some evidence that most programming languages already make a distinction between floats and integers when they work with JSON: vmx.cx/cgi-bin/blog... Supporting GitHub repo: github.com/vmx/json-flo...
JSON, floats and native types | vmx - the blllog.
vmx.cx
This week we have released @iroh.computer 1.0. As part of the release we also publish language support for python, swift, kotlin and javascript. Read more about it here: iroh.computer/blog/iroh-la... These are bindings to the 1.0 rust api, so they will *remain compatible* as we evolve the core.
iroh
less net work for networks
iroh.computer
@support.bsky.team It seems like there's a problem with our bluesky profile for Radicle when accessed via the domain, It's showing up as "invalid handle" Can you help? bsky.app/profile/radi... bsky.app/profile/did:...
bsky.app
Radicle Garden now supports custom domains That means full sovereignty, zero lock-in. radicle.garden youtu.be/KDbajeSTtjk
Custom Domains on Radicle Garden
YouTube video by Radicle
youtu.be
It just dawned on me that "firm"ware is someplace between software and hardware.
Great thread 🧵
@zooko2.bsky.social @b5.bsky.social @robin.berjon.com Say I have a 50GB video file and I know what the last 49.99GB are going to be but not the very first part. Can I precompute the right side of the BLAKE3 tree and finalize the BDASL CID once I'm ready with the header?
Some thoughts of mine that nobody asked for on the EU's fight with Apple and my worries related to Mythos and Fable. lucumr.pocoo.org/2026/6/10/ga...
Gaslighting Openness
Control is safety. Openness is danger.
lucumr.pocoo.org
Plant Your Seeds in the Radicle Garden 👩🌾 Radicle Garden provides always-on, hosted Radicle nodes to help continuously serve you and the Radicle Network. Check out the post, written by @yorgos.net.gr 🌱 👇 radicle.dev/2026/06/02/a...
Plant Your Seeds in the Radicle Garden
Sovereign code infrastructure.
radicle.dev
This has been a long time in the making: a proposal on adding floats support to ATProto vmx.cx/cgi-bin/blog... If you prefer code or a demo, you can jump right into the proof of concept: github.com/vmx/floats-o...
Floats on ATProto | vmx - the blllog.
vmx.cx
OpenTrackr, a free to use Torrent tracker, serves tens of millions of users and handles ~200K connections per second on commodity hardware. It runs the open source erdgeist.org/arts/softwar...
sometimes i bring things to claudes and am just like 'do u like this'
Bro Took ''2-3 Years Dagestan'' Seriously (it changed my LIFE forever) https://www.youtube.com/watch?v=mYZclrCFiFs
youtube.com
We have moved! Our main domain and AT Protocol handle changed from radicle.xyz to radicle.dev. Read more at radicle.dev/2026/04/23/d...
Are you ready to dazzle, bedazzle, and be dazzled? Because this coming Thursday is DASLing Group day! We're getting: • New video primitives MUXL & S2PA from @iame.li • The Radworks local-first app launcher from @norman.life • And more! Don't miss out! luma.com/yv4v1lba
DASLing Group · Luma
DASLing is a series of working sessions for the people who are implementing or specifying DASL tech. Part of the IPFS Project. 💎 Agenda: Video primitives…
luma.com
right now the astronauts are calling houston because the computer on the spaceship is running two instances of microsoft outlook and they can't figure out why. nasa is about to remote into the computer